default namespace = "http://www.w3.org/2000/svg"
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"


## 
##     SVG 1.1 Conditional Processing Module
##     file: svg-conditional.rng
## 
##     This is SVG, a language for describing two-dimensional graphics in XML.
##     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
## 
##     $Id: svg-conditional.rng,v 1.1 2003/07/15 07:11:10 dean Exp $
##   

## 
##     Conditional Processing
## 
##         switch
## 
##     This module declares markup to provide support for conditional processing.
##   

## 
##     Datatypes
##   
[ xml:lang = "en" ]
grammar {
  ExtensionList.datatype = xsd:string
  FeatureList.datatype = xsd:string
  a:documentation [ "\x{a}" ~ "    SVG.Conditional.attrib\x{a}" ~ "  " ]
  SVG.Conditional.extra.attrib = empty
  SVG.Conditional.attrib &=
    attribute requiredFeatures { FeatureList.datatype }?,
    attribute requiredExtensions { ExtensionList.datatype }?,
    attribute systemLanguage { LanguageCodes.datatype }?,
    SVG.Conditional.extra.attrib
  a:documentation [ "\x{a}" ~ "    SVG.Conditional.class\x{a}" ~ "  " ]
  SVG.Conditional.extra.class = notAllowed
  SVG.Conditional.class |= switch | SVG.Conditional.extra.class
  a:documentation [ "\x{a}" ~ "    switch: Switch Element\x{a}" ~ "  " ]
  SVG.switch.content =
    SVG.Description.class*,
    (svg
     | g
     | use
     | \text
     | SVG.Animation.class
     | SVG.Conditional.class
     | SVG.Image.class
     | SVG.Shape.class
     | SVG.Hyperlink.class
     | SVG.Extensibility.class)*
  switch = element switch { attlist.switch, SVG.switch.content }
  attlist.switch &=
    SVG.Core.attrib,
    SVG.Conditional.attrib,
    SVG.Style.attrib,
    SVG.Presentation.attrib,
    SVG.GraphicalEvents.attrib,
    SVG.External.attrib,
    attribute transform { TransformList.datatype }?
}
