XSD-komplexe Typen mit gemischtem Inhalt

Kombinierte komplexe Typen können Attribute, Elemente und Text enthalten.

Kombinierter komplexer Typ

Das XML-Element, "letter", enthält Text und andere Elemente:

<letter>
Sehr geehrter Herr <name>John Smith</name>.
Ihre Bestellung <orderid>1032</orderid>
wird am <shipdate>2001-07-13</shipdate> versendet.
</letter>

Der folgende Schema definiert dieses "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>

Anmerkung:Um zu gewährleisten, dass Zeichendaten zwischen den Unterlementen von "letter" erscheinen können, muss das Attribut "mixed" auf "true" gesetzt werden. Der <xs:sequence>-Tag (name, orderid und shipdate) bedeutet, dass die definierten Elemente in der Reihenfolge innerhalb des "letter"-Elements auftreten müssen.

Wir können auch einen Namen für das Element "complexType" vergeben und die "letter"-Attributtyp-Eigenschaft auf diesen Namen verweisen (dieser Weg ermöglicht es, dass mehrere Elemente denselben komplexen Typ referenzieren können):

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