+ <!-- case expression -->
+ <xsd:complexType name="caseexpr">
+ <xsd:sequence>
+ <!-- case expression: -->
+ <xsd:group ref="expression" minOccurs="1" maxOccurs="1" />
+ <!-- match -->
+ <xsd:group ref="fields" minOccurs="1" maxOccurs="unbounded" />
+ <xsd:choice>
+ <xsd:element ref="switch" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:choice>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="optional" />
+ </xsd:complexType>
+
+ <!-- switch expression -->
+ <xsd:complexType name="switchexpr">
+ <xsd:sequence>
+ <!-- switch(expression) -->
+ <xsd:group ref="expression" minOccurs="1" maxOccurs="1" />
+ <xsd:choice>
+ <!-- bitcase expression - bit test -->
+ <xsd:element name="bitcase" type="caseexpr" minOccurs="1" maxOccurs="unbounded" />
+ </xsd:choice>
+ <!-- default: -->
+ <xsd:group ref="fields" minOccurs="0" maxOccurs="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+
+ <xsd:element name="switch" type="switchexpr" />
+