XSD prázdné prvky
Prázdný komplexní prvek nemůže mít obsah, pouze atributy.
Komplexní prázdné prvky
Prázdný prvek XML:
<product prodid="1345" />
Výše uvedený prvek „produkt“ nemá vůbec žádný obsah. Abychom mohli definovat typ bez obsahu, musíme definovat typ, který povoluje prvky ve svém obsahu, ale ve skutečnosti nedeklarujeme žádné prvky, jako je tento:
<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>
Ve výše uvedeném příkladu definujeme komplexní typ se složitým obsahem. Element complexContent signalizuje, že hodláme omezit nebo rozšířit model obsahu komplexního typu a omezení celého čísla deklaruje jeden atribut, ale nezavádí žádný obsah prvku.
Je však možné deklarovat prvek „produkt“ kompaktněji, například takto:
<xs:element name="product">
<xs:complexType>
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>
</xs:element>
Nebo můžete prvku complexType pojmenovat a nechat prvek „product“ mít atribut typu, který odkazuje na název complexType (pokud použijete tuto metodu, několik prvků může odkazovat na stejný komplexní typ):
<xs:element name="product" type="prodtype"/>
<xs:complexType name="prodtype">
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>