XSD-komplexa tomma element

En tom komplex element kan inte innehålla något, utan kan endast ha egenskaper.

En komplex tom element:

En tom XML-element:

<product prodid="1345" />

Det "product"-elementet innehåller ingenting. För att definiera en typ utan innehåll måste vi deklarera en typ som endast kan innehålla element, men vi kommer faktiskt inte att deklarera några element, till exempel så här:

<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>

I det tidigare exemplet definierade vi en komplex typ med komplex innehåll. Signalen från elementet comprehensiveContent är att vi vill begränsa eller utöka innehållet i en komplex typ, medan begränsningen integer deklarerar en egenskap utan att introducera något elementinnehåll.

Men det är också möjligt att deklarera "product"-elementet mer kompakt:

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

Eller kan du ge ett namn till ett complexType-element och sedan sätta en type-egenskap för elementet "product" och referera till detta complexType-namn (på detta sätt kan flera element referera till samma komplexa typ):

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