Elemento complesso vuoto di XSD

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

Elemento complesso vuoto:

Un elemento XML vuoto:

<product prodid="1345" />

L'elemento "product" sopra non ha alcun contenuto. Per definire un tipo senza contenuto, dobbiamo dichiarare un tipo che possa contenere solo elementi nel suo contenuto, ma in realtà non dichiareremo alcun elemento, come ad esempio:

<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, abbiamo definito un tipo complesso con contenuto complesso. Il segnale fornito dall'elemento 'complexContent' è che intendiamo limitare o estendere il modello di contenuto di un tipo complesso, mentre la limitazione 'integer' dichiara un attributo ma non introduce alcun contenuto elementare.

Ma può anche essere dichiarato più compattamente questo elemento "product":

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

O puoi dare un nome a un elemento complexType, quindi imposta un tipo di attributo per l'elemento "product" e fa riferimento a questo complexType nome (attraverso questo metodo, diversi 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>