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]
Смотрите также
- КЮРИ: Компактный URI
- Полное имя
Рекомендации
- ^ а б Уолш, Норман, изд. (17 марта 2004 г.). «Использование полных имен (QNames) в качестве идентификаторов в XML-контенте». W3.org. Консорциум World Wide Web. Получено 2018-06-12.
- ^ Брей, Тим; Холландер, Дэйв; Обыватель, Эндрю, ред. (14 января 1999 г.), «Пространства имен в XML», W3.org, Консорциум World Wide Web, получено 2018-06-12
- ^ Пространства имен в XML 1.0 (второе издание)
- ^ Пространства имен в XML 1.0 (второе издание)