2.5.2 Смешанное содержание

Конструкция схемы счета на покупку представлена элементами, которые содержат подэлементы. При этом только подэлементы самого нижнего уровня содержат символьные данные. XML Schema предусматривает конструкцию схем, в которых символьные данные могут появляться наряду с подэлементами, при этом они не ограничены только подэлементами самого нижнего уровня.

Для иллюстрации возьмем следующий фрагмент из письма клиента. В нем использован ряд элементов, которые применяются и в счете на покупку:

Отрывок из письма клиента

<letterBody> <salutation>Dear Mr.<name>Robert Smith</name>.</salutation> Your order of <quantity>1</quantity> <productName>Baby Monitor</productName> shipped from our warehouse on <shipDate>1999-05-21</shipDate>. .... </letterBody>

Обратите внимание на текст, представленный среди элементов. Специфика в том, что текст появляется между элементами salutation, quantity, productName и shipDate. Все они являются дочерними от letterBody. Текст располагается вокруг имен дочерних элементов. Следующий фрагмент схемы объявляет letterBody:

Отрывок схемы для письма клиента

<xsd:element name=”letterBody”>
 <xsd:complexType mixed=”true”>
  <xsd:sequence>
   <xsd:element name=”salutation”>
    <xsd:complexType mixed=”true”>
     <xsd:sequence>
      <xsd:element name=”name” type=”xsd:string”/>
     </xsd:sequence>
    </xsd:complexType>
   </xsd:element>
   <xsd:element name=”quantity” type=”xsd:positiveInteger”/>
   <xsd:element name=”productName” type=”xsd:string”/>
   <xsd:element name=”shipDate” type=”xsd:date” minOccurs=”0”/>
   <!-- etc. -->
  </xsd:sequence>
 </xsd:complexType>
</xsd:element>

Элементы, находящиеся в письме клиента объявлены, а их типы определены посредством использования конструкций элементов element и complexType,  как мы видели и ранее. Для того чтобы предоставить возможность символьным данным появиться между дочерними элементами letterBody используется атрибут mixed , установленный при определении типов равным true.

Отметим, что смешанная модель в XML Schema существенно отличается от  mixed модели в XML 1.0. В смешанной модели XML Schema порядок и количество дочерних элементов, появляющихся в экземпляре доумента должны согласовываться с порядком и количеством дочерних элементов, указанных в модели. Напротив, смешанная модель XML 1.0 может не содержать описание порядка и количества дочерних элементов, представленных в примере. Таким образом, XML Schema обеспечивает полную проверку правильности смешанных моделей в отличие от частичной проверки правильности экземпляра документа, обеспеченной в XML 1.0.

 

Сайт создан в системе uCoz