XSD lege elementen
Een leeg complex element kan geen inhoud hebben, alleen attributen.
Complexe lege elementen
Een leeg XML-element:
<product prodid="1345" />
Het bovenstaande "product"-element heeft helemaal geen inhoud. Om een type zonder inhoud te definiëren, moeten we een type definiëren dat elementen in zijn inhoud toestaat, maar we declareren eigenlijk geen elementen, zoals deze:
<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>
In het bovenstaande voorbeeld definiëren we een complex type met een complexe inhoud. Het element complexContent geeft aan dat we van plan zijn het inhoudsmodel van een complex type te beperken of uit te breiden, en de beperking van integer declareert één attribuut maar introduceert geen elementinhoud.
Het is echter mogelijk om het element "product" compacter te declareren, zoals dit:
<xs:element name="product">
<xs:complexType>
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>
</xs:element>
Of u kunt het element complexType een naam geven en het element "product" een type-attribuut laten hebben dat verwijst naar de naam van het complexType (als u deze methode gebruikt, kunnen verschillende elementen naar hetzelfde complexe type verwijzen):
<xs:element name="product" type="prodtype"/>
<xs:complexType name="prodtype">
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>