5.6 schemaLocation

XML Schema использует атрибуты schemaLocation и xsi:schemaLocation в трех случаях.

1. В экземпляре документа атрибут xsi:schemaLocation обеспечивает подсказки автора обработчику относительно местоположения документов схемы. Автор гарантирует, что эти документы схемы релевантны при проверке правильности содержания документа в пространстве имен основного пространства имен. Например, мы можем указать местоположение схемы Report  для обработчика квартального отчета:

Использование schemaLocation в квартальном отчете, 4Q99html.xml

<purchaseReport
   xmlns="http://www.example.com/Report"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.example.com/Report
   http://www.example.com/Report.xsd"
   period="P3M" periodEnding="1999-12-31">

 <!-- etc. -->

</purchaseReport>

Атрибут schemaLocation содержит пары значений. Первый член каждой пары – пространство имен. Второй член - пояснение первого. Он описывает, где найти соответствующий документ схемы. Присутствие этого пояснения не требуется, чтобы обработчик получил или использовал указанные документы схемы. Обработчик может использовать другие схемы, полученные любыми подходящими средствами, или вообще не использовать никакой схемы.

Схема не обязана иметь пространство имен (см. Раздел 3.4), и поэтому атрибут noNamespaceSchemaLocation, который используется для обеспечения подсказки, применяется для задания местоположений документов схемы, которые не имеют целевого пространства имен.

2. В схеме элемент include имеет требуемый атрибут schemaLocation, который содержит URI ссылку, идентифицирующую документ схемы. Это позволяет составить конечную, эффективную схему, объединяя объявления и определения включающих и включаемых схем. Например, в Разделе 4, определения типов Address, USAddress, UKAddress, USState (вместе с объявлениями их атрибутов и локальных элементов) из address.xsd , которые добавлены к объявлениям элементов purchaseOrder и comment, и определения типов PurchaseOrderType, Items и SKU (вместе с объявлениями их атрибутов и локальных элементов) из ipo.xsd, создают единую схему.

3. Также в схеме элемент import  имеет дополнительные атрибуты namespace и schemaLocation. В рассматриваемом контексте атрибут schemaLocation понимается как аналог xsi:schemaLocation в (1). Следовательно, это обеспечивает авторское пояснение обработчику относительно местоположения документа схемы. Авторские предписания снабжают обработчик требуемыми компонентами из пространства имен, заданного атрибутом namespace. Для того, чтобы импортировать компоненты, которые не находятся ни в каком целевом пространстве имен, элемент import  используется без атрибута namespace (с или без атрибута schemaLocation). Ссылки к компонентам, импортированным этим способом, не квалифицированы.

Отметим, что schemaLocation является только подсказкой, и некоторые обработчики и приложения могут иметь причины его не использовать. Например, редактор HTML может иметь встроенную HTML схему.

 

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