Jump to content

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

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

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

Имена пространств имен

[ редактировать ]

Имя пространства имен это универсальный идентификатор ресурса (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 документа. [3] Результатом дебатов стало решение W3C о том, что относительные URI устарели. [4]

Использование URI в форме URL-адресов в схеме http (например, http://www.w3.org/1999/xhtml ) является обычным явлением, несмотря на отсутствие какой-либо формальной связи с протоколом HTTP. Спецификация пространств имен не говорит, что должно произойти, если такой URL-адрес разыменован (то есть, если программное обеспечение попытается получить документ из этого места). Одним из соглашений, принятых некоторыми пользователями, является размещение документа RDDL в указанном месте. [5] Однако в целом пользователи должны исходить из того, что 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, если он или его предок имеет указанное выше объявление пространства имен по умолчанию.

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

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

Пространства имен в 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 (версия 1.2)» (PDF) .
  3. ^ Доддс, Ли (24 мая 2000 г.). «Вести из окопов» . О'Рейли Медиа, Инк.
  4. ^ Коннолли, Дэн (11 сентября 2000 г.), Пленарное решение W3C XML об относительных ссылках URI в объявлениях пространств имен
  5. ^ Гарольд, Эллиот Расти (20 февраля 2001 г.). «RDDL Me This: что находится по URL-адресу пространства имен?» . Архивировано из оригинала 7 мая 2017 года.
  6. ^ «Пространства имен в XML 1.0 (третье издание)» . W3C . Проверено 28 апреля 2017 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a5fd7ef71ac610192ac69835a13a742c__1712783700
URL1:https://arc.ask3.ru/arc/aa/a5/2c/a5fd7ef71ac610192ac69835a13a742c.html
Заголовок, (Title) документа по адресу, URL1:
XML namespace - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)