Для иллюстрации предположим,
следующий фрагмент из письма клиента, в котором использованы некоторые из тех
же элементов, которые применяются в счете на покупку:
<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.