Un élément complexe vide ne peut pas avoir le contenu, seuls les attributs.
Éléments vides complexes
Un élément XML vide:
<product prodid="1345" />
Le "product" élément ci - dessus n'a pas de contenu du tout. Pour définir un type sans contenu, nous devons définir un type qui permet aux éléments de son contenu, mais nous ne déclare pas réellement tous les éléments, 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. Les signaux d'éléments complexContent que nous avons l'intention de restreindre ou d'étendre le modèle de contenu d'un type complexe, et la restriction de nombre entier déclare un attribut, mais ne présentent aucun contenu d'élément.
Cependant, il est possible de déclarer le "product" élément 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 à l'élément complexType un nom, et laisser le "product" élément un attribut de type qui fait référence au nom du complexType (si vous utilisez cette méthode, plusieurs éléments peuvent se référer au même type complexe):
<xs:element name="product" type="prodtype"/>
<xs:complexType name="prodtype">
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>