Комплексные типы XSD с mieszанным содержимым

Композитный тип с混合 содержимым может содержать атрибуты, элементы и текст.

Композитный тип с混合 содержимым

Элемент XML, "letter", содержит текст и другие элементы:

<letter>
Уважаемый господин <name>John Smith</name>.
Ваш заказ <orderid>1032</orderid>
будет отправлен 13 июля 2001 года <shipdate>2001-07-13</shipdate>.
</letter>

Следующий этот schema определяет этот элемент "letter":

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

Комментарий:Чтобы字符ные данные могли появляться между подэлементами "letter", атрибут mixed должен быть установлен в "true". Тег <xs:sequence> (name, orderid и shipdate) означает, что определяемые элементы должны появляться последовательно внутри элемента "letter".

Мы также можем дать имя элементу complexType и сделать, чтобы атрибут type элемента "letter" ссылался на это имя complexType (с помощью этого метода, несколько элементов могут ссылаться на один и тот же составной тип):

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