QName - QName

А QName, или же полное имя, это полное имя элемента, атрибута или идентификатора в XML документ. QName кратко связывает URI из Пространство имен XML с местное название элемента, атрибута или идентификатора в этом пространстве имен.[1] Чтобы создать эту ассоциацию, QName назначает локальному имени префикс что соответствует его пространству имен. В целом QName включает в себя URI пространства имен XML, префикс, а местное название.

В Консорциум World Wide Web представил соглашение QName в 1999 г. Технические характеристики «Пространства имен в XML».[1][2]

Цель

Поскольку ссылки URI могут быть длинными и содержать запрещенные символы для именования элементов / атрибутов, QNames используются для создания сопоставления между URI и префиксом пространства имен. Отображение позволяет сокращать URI, поэтому оно обеспечивает более удобный способ записи XML-документов (см. Пример ниже).

Формальное определение

QNames формально определены W3C как:[3]

   	QName	           ::=   PrefixedName | UnprefixedName   	PrefixedName	   ::=   Префикс ':' LocalPart   	UnprefixedName ::=   LocalPart   	Префикс	           ::=   NCName   	LocalPart ::=   NCName

NCName определяется следующим образом:

        NCName	           ::=   Имя - (Char* ':' Char*)  (* Имя XML без ":" *)        Имя	           ::=   NameStartChar (NameChar)*        NameStartChar	   ::=   ":" | [А-Я] | "_" | [а-я] | [#xC0-#xD6] | [#xD8-#xF6]                                  | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF]                                   | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF]                                  | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD]                                  | [#x10000-#xEFFFF]        NameChar ::=   NameStartChar | "-" | "." | [0-9]                                  | #xB7 | [#x0300-#x036F] | [#x203F-#х2040]        Char	           ::=   (* любой символ Unicode, исключая суррогатные блоки FFFE и FFFF. *)                                 #x9 | #xA | #xD | [#х20-#xD7FF]                                  | [#xE000-#xFFFD] | [#x10000-#x10FFFF]

При этом префикс используется как заполнитель для пространства имен, а LocalPart - как локальная часть квалифицированного имени. Локальная часть может быть именем атрибута или именем элемента.

Пример

  <?xml version='1.0'?>  <док xmlns: x ="http://example.com/ns/foo">    <x:p/>  </doc>

Во второй строке префикс «x» объявляется связанным с URI «http://example.com/ns/foo». Этот префикс может в дальнейшем использоваться как сокращение для этого пространства имен. Впоследствии тег «x: p» является допустимым QName, потому что он использует «x» как ссылку на пространство имен и «p» как локальную часть. Тег «doc» также является допустимым QName, но состоит только из локальной части.[4]

Смотрите также

Рекомендации

  1. ^ а б Уолш, Норман, изд. (17 марта 2004 г.). «Использование полных имен (QNames) в качестве идентификаторов в XML-контенте». W3.org. Консорциум World Wide Web. Получено 2018-06-12.
  2. ^ Брей, Тим; Холландер, Дэйв; Обыватель, Эндрю, ред. (14 января 1999 г.), «Пространства имен в XML», W3.org, Консорциум World Wide Web, получено 2018-06-12
  3. ^ Пространства имен в XML 1.0 (второе издание)
  4. ^ Пространства имен в XML 1.0 (второе издание)