XSD-komplexa typer med blandad innehåll

Kombinerade komplexa typer kan innehålla egenskaper, element och text.

Kombinerad komplex typ

XML-element, "letter", innehåller text och andra element:

<letter>
Kära Mr.<name>John Smith</name>.
Din order <orderid>1032</orderid>
kommer att skickas den <shipdate>2001-07-13</shipdate>.
</letter>

Följande schema deklarerar detta "letter"-element:

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

Kommentar:För att göra det möjligt för tecken data att dyka upp mellan "letter"-elementens underelement måste egenskapen "mixed" sättas till "true". Etiketten "<xs:sequence>" (name, orderid och shipdate) innebär att de definierade elementen måste visas i följd i "letter"-elementet.

Vi kan också ge ett namn till elementet "complexType" och låta "letter"-elementets "type"-egenskap hänvisa till detta namn (på detta sätt kan flera element hänvisa till samma komplexa typ):

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