Перевод рекомендации W3C - XML Schema Part 0. Выполнил Г.Е. Берман


Перевод рекомендации W3C - XML Schema Part 0. Выполнил Г.Е. Берман
3.3 Глобальные объявления вместо локальных
Другой стиль, применяемый при
условии, что все названия элементов уникальны в пределах пространства имен,
заключается в создании схем, в которых все элементы будут глобальными. Это
подобно эффекту использованию <!ELEMENT> в DTD. Ниже, в примере, мы изменили
оригинал po1.xsd таким
образом, что все элементы объявлены глобально. Обратите внимание, в этом
примере мы опустили атрибуты elementFormDefault и attributeFormDefault, чтобы подчеркнуть, что их значения
являются ненужными, когда объявляются только глобальные элементы и атрибуты.
Измененная версия po1.xsd,
использующая только объявления глобальных элементов
<schema xmlns=”http://www.w3.org/2001/XMLSchema”
xmlns:po=”http://www.example.com/PO1”
targetNamespace=”http://www.example.com/PO1”>
<element name=”purchaseOrder” type=”po:PurchaseOrderType”/>
<element name=”shipTo” type=”po:USAddress”/>
<element name=”billTo” type=”po:USAddress”/>
<element name=”comment” type=”string”/>
<element name=”name” type=”string”/>
<element name=”street” type=”string”/>
<complexType name=”PurchaseOrderType”>
<sequence>
<element ref=”po:shipTo”/>
<element ref=”po:billTo”/>
<element ref=”po:comment” minOccurs=”0”/>
<!-- etc. -->
</sequence>
</complexType>
<complexType name=”USAddress”>
<sequence>
<element ref=”po:name”/>
<element ref=”po:street”/>
<!-- etc. -->
</sequence>
</complexType>
<!-- etc -->
</schema>
Данная «глобальная» версия po1.xsd проверит
правильность примера документа po2.xml, которая, как мы
писали ранее, является также правильной схемой и может применяться вместо
«квалифицированной» версии po1.xsd. 
Другими словами, оба подхода, применяемые в схемах, могут быть
использованы для проверки правильности одного и того же документа с одним и тем
же пространством имен по умолчанию. Таким образом, в одном отношении эти два
подхода схемы подобны, хотя в другом важном отношении они различны. Когда все
элементы объявлены глобально, нет возможности использовать преимущества
локальных имен. В схеме Вы можете объявить только один глобальный элемент с
именем "title".
Однако можно локально объявить один элемент с именем "title", который имеет строковый тип, и
является подэлементом "book". В той же самой схеме (целевом пространстве имен) можно
объявить и второй элемент с именем "title", который является перечислением
значений "Mr Mrs Ms".

#bn {display:block;}
#bt {display:block;}
содержание | 2 | Amway форум
Используются технологии uCoz