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>