Listing 1
<xs:element name="A" >
<xs:complexType>
<xs:sequence>
<xs:element name="B" type="xs:string" minOc
curs="0" maxOccurs="1" />
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="C" type="xs:string"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="D" type="xs:string"
minOccurs="1"
maxOccurs="unbounded"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
Listing 2
<xs:element name="A" >
<xs:complexType>
<xs:attributeGroup ref="AttrGroup"/>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="AttrGroup">
<xs:attribute name="a" type="xs:string" use="required"/>
<xs:attribute name="b" type="xs:string" use="optional"/>
<xs:attribute name="c" type="xs:string"
fixed="AttValue"/>
</xs:attributeGroup>
Listing 3
<xs:element name="A" >
<xs:complexType>
<xs:attribute name="a">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="x"/>
<xs:enumeration value="y"/>
<xs:enumeration value="z"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
Listing 4
<xs:element name="A" >
<xs:complexType>
<xs:attribute name="a" type="xs:NOTATION"/>
<xs:attribute name="b" type="xs:ID"/>
<xs:attribute name="c" type="xs:IDREF"/>
<xs:attribute name="d" type="xs:IDREFS"/>
<xs:attribute name="e" type="xs:ENTITY"/>
<xs:attribute name="f" type="xs:ENTITIES"/>
<xs:attribute name="g" type="xs:NMTOKEN"/>
<xs:attribute name="h" type="xs:NMTOKENS"/>
</xs:complexType>
</xs:element>