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

редактировать
Метод предоставления уникальных элементов и атрибутов в XML-документе

Пространства имен XML используются для предоставления уникальных имен элементов и атрибуты в документе XML. Они определены в рекомендации W3C. Экземпляр XML может содержать имена элементов или атрибутов из более чем одного словаря XML. Если каждому словарю дано пространство имен , может быть разрешена неоднозначность между элементами или атрибутами с одинаковыми именами.

Простым примером может быть рассмотрение экземпляра XML, который содержит ссылки на клиента и заказанный продукт. И элемент клиента, и элемент продукта могут иметь дочерний элемент с именем id . Поэтому ссылки на элемент id будут неоднозначными; размещение их в разных пространствах имен устранит двусмысленность.

Содержание
  • 1 Имена пространств имен
  • 2 Объявление пространства имен
  • 3 Пространства имен в API и объектных моделях XML
  • 4 См. Также
  • 5 Ссылки
  • 6 Внешние ссылки
Имена пространств имен

Имя пространства имен - это универсальный идентификатор ресурса (URI). Обычно URI, выбранный для пространства имен данного словаря XML, описывает ресурс, находящийся под контролем автора или организации, определяющей словарь, например, URL для веб-сервера автора. Однако спецификация пространства имен не требует и не предлагает использовать URI пространства имен для извлечения информации; он просто обрабатывается анализатором XML как строка. Например, документ по адресу http://www.w3.org/1999/xhtml сам по себе не содержит кода. Он просто описывает пространство имен XHTML для читателей. Использование URI (например, «http://www.w3.org/1999/xhtml») для идентификации пространства имен, а не простой строки (например, «xhtml»), снижает вероятность того, что разные пространства имен используют повторяющиеся идентификаторы.

Хотя термин URI пространства имен широко распространен, в Рекомендации W3C он упоминается как имя пространства имен. Спецификация не является полностью предписывающей о точных правилах для имен пространств имен (в ней явно не говорится, что синтаксические анализаторы должны отклонять документы, в которых имя пространства имен не является допустимым унифицированным идентификатором ресурса ), а многие синтаксические анализаторы XML допускают любой символ строка, которая будет использоваться. В версии 1.1 рекомендации имя пространства имен становится интернационализированным идентификатором ресурса, который разрешает использование символов, отличных от ASCII, которые на практике уже были приняты почти всем программным обеспечением XML. Однако термин URI пространства имен сохраняется не только в популярном использовании, но и во многих других спецификациях W3C и других источников.

После публикации рекомендации по пространствам имен велись интенсивные дебаты о том, как следует обрабатывать относительный URI, причем некоторые активно утверждали, что его следует рассматривать просто как строку символов, а другие убежденно утверждали, что это следует быть преобразованным в абсолютный URI путем сопоставления его с базовым URI документа. Результатом дискуссии стало решение W3C о том, что относительные URI устарели.

Использование URI в форме URL в схеме http (например, http://www.w3.org / 1999 / xhtml ) является обычным явлением, несмотря на отсутствие каких-либо формальных отношений с протоколом HTTP. Спецификация пространств имен не говорит, что должно произойти, если такой URL разыменован (то есть, если программное обеспечение пытается получить документ из этого места). Некоторые пользователи соглашаются разместить документ RDDL в этом месте. В целом, однако, пользователи должны предполагать, что URI пространства имен - это просто имя, а не адрес документа в Интернете.

Объявление пространства имен

Пространство имен XML объявляется с использованием зарезервированного XML-атрибута xmlnsили xmlns: prefix, значение которого должно быть допустимым имя пространства имен.

Например, следующее объявление отображает префикс «xhtml:» в пространство имен XHTML:

xmlns: xhtml = "http://www.w3.org/1999/xhtml «

Любой элемент или атрибут, имя которого начинается с префикса« xhtml: », считается находящимся в пространстве имен XHTML, если он или его предок имеет указанное выше объявление пространства имен.

Также можно объявить пространство имен по умолчанию. Например:

xmlns="http://www.w3.org/1999/xhtml"

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

Если в области нет объявления пространства имен по умолчанию, имя пространства имен не имеет значения. В этом случае считается, что элемент без явного префикса пространства имен не находится ни в одном пространстве имен.

Атрибуты никогда не подчиняются пространству имен по умолчанию. Считается, что атрибут без явного префикса пространства имен не находится ни в каком пространстве имен.

Пространства имен в API и объектных моделях XML

В разных спецификациях использовались разные подходы к тому, как информация пространства имен представляется приложениям.

Практически все модели программирования позволяют извлекать имя элемента или узла атрибута как имя из трех частей: локальное имя, префикс пространства имен и URI пространства имен. Приложениям следует избегать придавать какое-либо значение выбору префикса, но информация предоставляется, потому что она может быть полезна для читателей. Имена считаются равными, если совпадают URI пространства имен и локальное имя.

Кроме того, большинство моделей предоставляют способ определения того, какие пространства имен были объявлены для данного элемента. Эта информация необходима, потому что некоторые словари XML допускают появление полных имен (содержащих префиксы пространств имен) в содержимом элементов или атрибутов, а также в их именах. Существует три основных способа предоставления этой информации:

  • В виде узлов атрибутов с именами «xmlns» или «xmlns: xxx», точно так же, как пространства имен записаны в исходном XML-документе. Это модель, представленная DOM.
  • как объявления пространств имен: отличные от атрибутов, но взаимно однозначно соответствующие соответствующим атрибутам в исходном XML-документе. Это модель, представленная JDOM.
  • В качестве привязок пространств имен в области видимости: в этой модели приложение может определить, какие пространства имен входят в область видимости для любого данного элемента, но не может определить, какие элементы содержат актуальные декларации. Это модель, используемая в XPath, XSLT и XQuery.
. См. Также
Ссылки
  1. ^Брей, Тим; Дэйв Холландер; Эндрю Лэйман; Ричард Тобин; Генри С. Томпсон (декабрь 2009 г.). «Пространства имен в XML 1.0». W3C. Проверено 9 октября 2010 г.
  2. ^«Временная шкала стандартов XML и семантической сети W3C» (PDF).
  3. ^Доддс, Ли (24 мая 2000 г.). "Весть из окопов". O'Reilly Media, Inc.
  4. ^Коннолли, Дэн (11 сентября 2000 г.), Пленарное решение W3C XML по относительным ссылкам на URI в объявлениях пространств имен
  5. ^Гарольд, Эллиотт Расти (20 февраля 2001 г.). «RDDL Me This: Что определяет URL-адрес пространства имен?». Архивировано из исходного 7 мая 2017 года.
  6. ^«Пространства имен в XML 1.0 (третье издание)». W3C. Проверено 28 апреля 2017 г.
Внешние ссылки
Последняя правка сделана 2021-06-22 06:40:54
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте