Пространство имен

Поскольку возможно существование множества схем, поэтому во избежание совпадения имен тэгов в XML вводятся пространства имен тэгов, используемых для хранения словарей XML - наборов определений типов данных и структур, ис­пользуемых для различных целей. В большой организации может быть полезно определить стандартизированное XML-представление для основных дел объектов, таких как адреса, номера товаров, коды клиентов и т.п., и держать их в общем хранилище. Полезны и определения более высокого уровня, описывающие такие документы, как заказы, заявления на отпуск и т. п., для совместногоиспользования их обычно объединяют в группы.

Пространство имени указывается перед именем тэга: <namespace:tag/>. Пространство имен может быть подключено в любом тэге документа XML, напр.: <ntb:notebook xmlns:ntb = «http://some.firm.com/2003/ntbml»>. В качестве имени пространства имен рекомендовано указывать некоторый URL. Но это вовсе не означает, что описание пространства имен находится по данному адресу. Данный сайт может вообще не существовать, никаких обращений по этому адресу не будет. Использование URL рекомендовано лишь для того, чтобы обеспечить уникальность именования пространств имен. Поэтому в отношении пространств имен важно иметь в виду, что:

– строка в определении пространства имен является только строкой. Да, эти строки выглядят как URL, но ими не являются. Вы можете определить xmlns:addr="mike", и это также будет работать;

только одно важно в отношении строки пространства имен: она должна быть уникальной; вот почему большинство пространств имен выглядят как URL;

XML-парсер не обращается к http://www.zyx.com/books/, чтобы найти схему, он просто использует этот текст как строку. Это несколько сбивает с толку, но именно так работают пространства имен.

Если пространство имен явно не указывается для тэга, то используется пространство имен по умолчанию. Это пространство имен можно переопределить:

<ntb:notebook xmlns:ntb = «http://some.firm.com/2003/ntbml»

xmlns = «http://another.firm.com/xmlns»>.

Если XML-схема содержит определения, состоящие из более чем одного пространства имен XML, существует потенциальная возможность конфликтов имен. В двух пространствах имен одно и то же имя может представлять две совершен­но разные структуры XML или два разных типа данных. Во избежание неодно­значности на типы данных и структуры XML можно ссылаться при помощи уточненных имен, используя технологию, похожую на уточнение имен столб­цов в SQL.

Каждому пространству имен, заданному в заголовке схемы, может быть присвоен префикс, который далее в документе используется для уточнения ссылок на элементы из этого пространства имен. В примерах этой главы, чтобы не загромождать их лишней информацией, мы не использовали префиксов. Вот заголовок схемы и фрагмент тела схемы, в котором основное пространство имен XML-схемы, поддерживаемое W3C, и пространство имен компании идентифи­цируются префиксами:

<schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:corp=:"http://www.mycompany.com/schemas/purchasing">

<complexType name="purchaseOrderType">

<element name="orderDate" type="xsd:date" />

<element name="billAddr" type="corp:custAddrType" />

<element name="shipAddr" type="corp:custAddrType" />

<element name="repNums" type="corp:repListType" nillable="true" />

В этом примере пространство имен компании идентифицируется префиксом corp, а основное пространство имен XML - префиксом xsd. Все ссылки на типы данных уточняются одним из этих префиксов, благодаря чему они абсолютно однозначны.








Дата добавления: 2015-02-03; просмотров: 1040;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.