<xs:element name="Name">
<xs:complexType
>
<xs:attribute
name="lang" type="xs:string" use="required"/>
</xs:complexType
>
</xs:element>
Même chose, mais en plus long:
<xs:element name="Name">
<xs:complexType
>
<xs:simpleContent
>
<xs:extension
base="xs:string">
<xs:attribute
name="lang" type="xs:string" use="required"/>
</xs:extension
</xs:simpleContent
>
</xs:complexType
>
</xs:element>
<xs:element name="person">
<xs:complexType
>
<xs:attributeGroup
ref="attlist.person
"/>
</xs:complexType>
</xs:element>
La définition ci-dessus se réfère au groupe d’attributs défini ci-dessous:
<xs:attributeGroup
name="attlist.person
">
<xs:attribute name="name" use="required"/>
<xs:attribute name="gender">
<xs:simpleType>
<xs:restriction base="xs:token"
>
<xs:enumeration value="male"/>
<xs:enumeration value="female"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<!-- cont. à la page suivante ... -->
<xs:attribute name="type" default="mother">
<xs:simpleType>
<xs:restriction base="xs:token"
>
<xs:enumeration value="mother"/>
<xs:enumeration value="father"/>
<xs:enumeration value="boy"/>
<xs:enumeration value="girl"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="id" use="required" type="xs:ID"/>
</xs:attributeGroup
>