stringtranslate.com

QName

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

Консорциум Всемирной паутины представил соглашение 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  ::=  ":"  |  [ AZ ]  |  "_"  |  [ az ]  |  [ # 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- # x2040 ] Char  ::=  (* любой символ Unicode, за исключением суррогатных блоков FFFE и FFFF. *)  # x9 |  # xA |  # xD |  [ # x20- # xD7FF ]  |  [ # xE000- # xFFFD ]  |  [ # x10000- # x10FFFF ]

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

Пример

<?xml версия="1.0"?> <doc xmlns:x= "https://example.com/ns/foo" > <x:p/> </doc>  

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

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

Ссылки

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