Elementi vuoti XSD
Un elemento complesso vuoto non può avere contenuti, solo attributi.
Elementi vuoti complessi
Un elemento XML vuoto:
<product prodid="1345" />
L'elemento "prodotto" sopra non ha alcun contenuto. Per definire un tipo senza contenuto, dobbiamo definire un tipo che consenta elementi nel suo contenuto, ma in realtà non dichiariamo alcun elemento, come questo:
<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>
Nell'esempio sopra, definiamo un tipo complesso con un contenuto complesso. L'elemento complexContent segnala che intendiamo limitare o estendere il modello di contenuto di un tipo complesso e la restrizione di integer dichiara un attributo ma non introduce alcun contenuto di elemento.
Tuttavia, è possibile dichiarare l'elemento "prodotto" in modo più compatto, in questo modo:
<xs:element name="product">
<xs:complexType>
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>
</xs:element>
Oppure puoi dare un nome all'elemento complexType e lasciare che l'elemento "product" abbia un attributo type che fa riferimento al nome del complexType (se usi questo metodo, più elementi possono fare riferimento allo stesso tipo complesso):
<xs:element name="product" type="prodtype"/>
<xs:complexType name="prodtype">
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>