Gli ultimi tutorial di sviluppo web
 

Elementi vuoti XSD


Un elemento complesso vuoto non può avere contenuti, solo attributi.


Elementi vuoti complesse

Un elemento XML vuoto:

<product prodid="1345" />

Il "product" elemento sopra non ha contenuto affatto. Per definire un tipo senza contenuti, dobbiamo definire un tipo che consente elementi nel suo contenuto, ma in realtà non dichiarare tutti gli elementi, 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 precedente, definiamo un tipo complesso con contenuto complesso. I segnali elemento complexContent che intendiamo di restringere o estendere il modello di contenuto di tipo complesso, e la limitazione di numero intero dichiara un attributo, ma non introduce alcun contenuto elemento.

Tuttavia, è possibile dichiarare il "product" elemento più compatta, in questo modo:

<xs:element name="product">
  <xs:complexType>
    <xs:attribute name="prodid" type="xs:positiveInteger"/>
  </xs:complexType>
</xs:element>

Oppure si può dare l'elemento complexType un nome, e lasciare che il "product" elemento di avere un attributo type che si riferisce al nome del complexType (se si utilizza questo metodo, alcuni 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>