Éléments vides XSD
Un élément complexe vide ne peut pas avoir de contenu, uniquement des attributs.
Éléments vides complexes
Un élément XML vide :
<product prodid="1345" />
L'élément "produit" ci-dessus n'a aucun contenu. Pour définir un type sans contenu, nous devons définir un type qui autorise les éléments dans son contenu, mais nous ne déclarons aucun élément, comme ceci :
<xs:element name="product">
<xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:integer">
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:element>
Dans l'exemple ci-dessus, nous définissons un type complexe avec un contenu complexe. L'élément complexContent signale que nous avons l'intention de restreindre ou d'étendre le modèle de contenu d'un type complexe, et la restriction de integer déclare un attribut mais n'introduit aucun contenu d'élément.
Cependant, il est possible de déclarer l'élément "produit" de manière plus compacte, comme ceci :
<xs:element name="product">
<xs:complexType>
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>
</xs:element>
Ou vous pouvez donner un nom à l'élément complexType, et laisser l'élément "product" avoir un attribut type qui fait référence au nom du complexType (si vous utilisez cette méthode, plusieurs éléments peuvent faire référence au même type complexe) :
<xs:element name="product" type="prodtype"/>
<xs:complexType name="prodtype">
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>