XSD monimutkainen tyhjä elementti

Tyhjät komposiittielementit eivät voi sisältää sisältöä, vaan ne voivat sisältää vain ominaisuuksia.

Komposiittinen tyhjä elementti:

Tyhjä XML-elementti:

<product prodid="1345" />

Yllä oleva "product"-elementti ei sisällä mitään sisältöä. Määrittääksemme tyhjän tyypin, meidän on määriteltävä tyyppi, joka voi sisältää vain elementtejä, mutta emme todellisuudessa määrittele minkään elementin sisältöä, kuten näin:

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

Yllä olevassa esimerkissä olemme määrittäneet komposiittityypin, jolla on komposiittinen sisältö. comprehensiveContent-elementin antama signaali on, että aiomme rajoittaa tai laajentaa tietyn komposiittityypin sisältömallia, ja integer-rajoitus ilmoittaa ominaisuudesta, mutta ei tuota minkään elementin sisältöä.

Mutta voit myös määritellä "product"-elementin tiiviimmin:

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

Tai sinun voi myös antaa nimen complexType-elementille ja asettaa "product"-elementille type-ominaisuuden ja viitata tähän complexType-nimeen (tällä tavalla useat elementit voivat viitata samaan komposiittityyppiin):

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