Il est possible de regrouper des éléments utilisés dans plusieurs définitions. On utilise alors l'instruction xsd:group
. Attention ! ! !
- aucun attribut ne doit être inclus dans un groupe
- le groupe est toujours de portée globale.
<xsd:element name="Librairie">
<xsd:complexType>
<xsd:sequence><xsd:element ref="publication" type="typePublication" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="typePublication">
<xsd:group ref="groupPublication">
</xsd:complexType>
<xsd:group name="groupPublication">
<xsd:sequence>
<xsd:element name="Titre" type="xsd:string"/>
<xsd:element name="Auteur" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="Date" type="xsd:string"/>
</xsd:sequence>
</xsd:group>