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

Так как имена элементов в XML не определены заранее, то по мере увеличения количества XML-документов возрастает вероятность возникновения конфликтов, когда два элемента из разных документов используют одно и то же имя для обозначения разных типов элементов. Поэтому возникает потребность определить область действия имен элементов в каждом конкретном документе. Для этих целей в спецификации XML был предложен механизм называющийся «пространство имен».

Рассмотрим два примера, в которых используются элементы с одинаковым именем:

<order>

<item>

<id>3123</id>

<name>Монитор</name>

</item>

</order>

<room>

<item>

<name>Парта</name>

<count>12</count>

</item>

</room>

При объединении элементов заказа в магазине и мебели в комнате в один документ может возникнуть конфликт имен элементов. Для разрешения этого конфликта нужно задать пространства имен для этих элементов. Для определения принадлежности элемента к определенному пространству имен используются префиксы:

<o:order>

<o:item>

<o:id>3123</o:id>

<o:name>Монитор</o:name>

</o:item>

</o:order>

<r:room>

<r:item>

<r:name>Парта</r:name>

<r:count>12</r:count>

</r:item>

</r:room>

Для каждого префикса необходимо задать ссылку на пространство имен, которое он представляет. Это можно сделать с помощью атрибута «xmlns»:

xmlns:o="https://www.mephi.ru/order"

Консорциум W3C рекомендует использовать в качестве идентификатора пространства имен унифицированные индикаторы ресурсов (Uniform Resource Indicators, URI), которые на практике обычно представлены строкой URL. При разборе XML-документа этот адрес не используется XML-процессором для поиска информации, однако обычно компании используют пространство имен как указатель на реальную веб-страницу, содержащую информацию об этом пространстве имен. Примером такого использования могут служить ссылки на пространство имен XSD схем документов: https://www.w3.org/2001/XMLSchema.

Следует отметить, что пространство имен обычно определяется в элементе самого высокого уровня, расширяя таким образом область своего действия на весь документ. Существует также механизма задания пространства имен, используемого по умолчанию. Область действия такого пространства имен распространяется на сам элемент и все его дочерние элементы. В приведенных ниже примерах используется, соответственно, задание пространства имен с помощью префикса и пространства имен по умолчанию:

<o:order xmlns:o="https://www.mephi.ru/order">

<o:item>

<o:id>3123</o:id>

<o:name>Монитор</o:name>

</o:item>

</o:order>

<room xmlns="https://www.mephi.ru/room>">

<item>

<name>Парта</name>

<count>12</count>

</item>

</room>

Дополнительную информацию по языку XML можно найти в соответствующем разделе сайта консорциума W3C: https://www.w3.org/XML/.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: