XSD phần tử phức hợp có nội dung trộn

Loại phức hợp trộn lẫn có thể chứa thuộc tính, phần tử và văn bản.

Loại phức hợp có nội dung trộn lẫn

Phần tử XML, "letter", chứa văn bản và các phần tử khác:

<letter>
Kính gửi Mr.<name>John Smith</name>.
Đơn hàng của bạn <orderid>1032</orderid>
sẽ được gửi vào <shipdate>2001-07-13</shipdate>.
</letter>

Dưới đây là schema xác định phần tử "letter" này:

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

Ghi chú:Để cho dữ liệu ký tự có thể xuất hiện giữa các phần tử con của "letter", thuộc tính mixed phải được đặt là "true". Thẻ <xs:sequence> (name, orderid và shipdate) có nghĩa là các phần tử được định nghĩa phải xuất hiện theo thứ tự trong phần tử "letter".

Chúng ta cũng có thể đặt tên cho phần tử complexType và để thuộc tính type của phần tử "letter" tham chiếu đến tên này của complexType (bằng cách này, nhiều phần tử có thể tham chiếu đến cùng một loại phức hợp):

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