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. Следующий отрывок схемы объявляет 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.

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

 

Используются технологии uCoz