XSD monimutkaiset tyypit, joissa on sekamainen sisältö

Miksemminkä sisältöinen monimutkainen tyyppi voi sisältää ominaisuuksia, elementtejä ja tekstiä.

Miksemminkä sisältöinen monimutkainen tyyppi

XML-elementti, "letter", sisältää tekstiä ja muita elementtejä:

<letter>
Hyvä herra <name>John Smith</name>.
Tilauksesi <orderid>1032</orderid>
Toimitetaan <shipdate>2001-07-13</shipdate>.
</letter>

Seuraava schema määrittää tämän "letter"-elementin:

<xs:element name="letter">
  <xs:complexType mixed="true">
    <xs:sequence>
      <xs:element name="name" type="xs:string"/>
      <xs:element name="orderid" type="xs:positiveInteger"/>
      <xs:element name="shipdate" type="xs:date"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

Huomautus:Jotta merkkidata voi näkyä "letter"-elementin alielementtien välillä, mixed-ominaisuuden on oltava asetettuna "true". <xs:sequence>-elementti (name, orderid ja shipdate) tarkoittaa, että määritellyt elementit on näytettävä järjestyksessä "letter"-elementin sisällä.

Voimme myös antaa nimen complexType-elementille ja tehdä "letter"-elementin type-ominaisuuden viittaavan tähän nimeen (tällä tavalla useat elementit voivat viitata samaan monimutkaiseen tyyppiin):

<xs:element name="letter" type="lettertype"/>
<xs:complexType name="lettertype" mixed="true">
  <xs:sequence>
    <xs:element name="name" type="xs:string"/>
    <xs:element name="orderid" type="xs:positiveInteger"/>
    <xs:element name="shipdate" type="xs:date"/>
  </xs:sequence>
</xs:complexType>