Пространство имён (XML)

Пространство имён в XML (англ. XML namespace) — это стандарт, описывающий именованную группу имён элементов и атрибутов, служащую для обеспечения их уникальности в XML-документе.

В декабре 2009 года третья редакция стандарта получила статус рекомендации.

Все имена элементов в пределах пространства имён должны быть уникальны.

XML-документ может содержать имена элементов и атрибутов из нескольких словарей XML. В каждом словаре задано своё пространство имён — так разрешается проблема неоднозначности имён элементов и атрибутов.

Возьмём, например, простой XML, который содержит ссылки на покупателя и на заказанный продукт. И элементы покупателя, и элементы продукта могут содержать дочерний элемент «ID_number». Ссылки на элемент ID_number будут, таким образом, неоднозначны, у нас будут два одинаковых имени элемента, несущих разную смысловую нагрузку и так будет, пока мы не введём пространства имён для их различения.

Идентификатор (имя) пространства имён

[править | править код]

Идентификатор (имя) пространства имён (англ. namespace name) задаётся с помощью XML-атрибута xmlns, значение которого должно быть ссылкой URI.

Например:

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

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

В объявление можно также включить короткий префикс, которым будет однозначно идентифицироваться пространство имён каждого элемента, например:

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

Пространство имён XML не требует, чтобы был определён его словарь, хотя существует сложившаяся практика помещать DTD или XML Schema, определяющие точную структуру данных в контексте конкретного пространства имён.