XSD Complexe Typen met Gemengde Inhoud

Mixed composite types can contain attributes, elements, and text.

Composite type with mixed content

The XML element, "letter", contains text and other elements:

<letter>
Dear Mr.<name>John Smith</name>.
Your order <orderid>1032</orderid>
will be shipped on <shipdate>2001-07-13</shipdate>.
</letter>

The following schema declares this "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>

Note:To allow character data to appear between the subelements of "letter", the mixed attribute must be set to "true". The <xs:sequence> tag (name, orderid, and shipdate) means that the defined elements must appear in sequence within the "letter" element.

We can also give a name to the complexType element and let the type attribute of the "letter" element refer to this name of the complexType (this method allows several elements to refer to the same complex type):

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