QNames

QName

[5] Architecture Working Group - DCText/2006-05-24 http://dublincore.org/architecturewiki/DCText/2006-05-24#head-92c7403ab06a67dab964cd2c6091cf25f8428e72 (名無しさん 2006-06-04 07:45:30 +00:00)

[6] XML Attribute Value Namespace Expansion ( 版) http://www.w3.org/1999/03/31-XMLNamespace-values

QName (のようなもの) の様々な構文と用法

[48] URLの省略も参照。

XML の名前

[7] XML名前空間では、要素名属性名QName を使います。

接頭辞
XML名前空間 1.0 NCName または XML名前空間 1.1 NCName (省略可能)
局所名
XML名前空間 1.0 NCName または XML名前空間 1.1 NCName
名前空間束縛
xmlns 属性
既定名前空間
要素名: 利用可能、属性名: 常に null名前空間
解釈
展開名 (名前空間名局所名の組)

[8] NCName の定義に用いられているのは XML 1.0 または XML 1.1 の定義ですが、 そのリンク先は最新版になっています。引用文献には XML 1.0XML 1.1 も日付付きで掲載されていますが、どのような意図なのかは不明です。

[9] RDF/XMLWebDAV のように、XML名前空間を採用する仕様のなかには名前空間名局所名を連結して展開URI として扱うものもあります。

仕様書

定義

[31]

IRI参照名前で認められない文字を含み得ますし、 しばしば長くて不便なので、展開名を直接XML文書要素属性名前として使うことはしません。 代わりに修飾名を使います。[定義: 修飾名 (しゅうしょくめい) (qualified name) 名前空間解釈の対象となる名前です。] この仕様書に適合する文書では、 要素名属性名修飾名として出現します。 構文的には、修飾名は接頭辞付き名か非接頭辞付き名です。 XML Namespaces

属性値

XSLT 1.0 属性値

[10] XSLT ではいくつかの属性値QName を使っています。 QName の定義は XML名前空間 1.0 の最新版にリンクされていますが、 引用文献として示されているのは第1版で、どういう意図なのかは不明です。

要素の定義の書式では「qname」と書かれています。

接頭辞
XML名前空間 1.0 NCName (省略可能)
局所名
XML名前空間 1.0 NCName
名前空間束縛
XPathデータ・モデル名前空間節点 (≒ xmlns 属性)
既定名前空間
常に null名前空間
解釈
展開名 (名前空間URI局所名の組)

[11] なお、 XSLT では XPath も多用しています。

[21] 同様の QName を属性値 (の一部分) 採用している仕様:

XHTML m12n 1.1 QName/QNames

[17] XHTML m12n 1.1 では属性型として QNameQNames が定義されています (後者は前者の間隔分離並び)。

XML名前空間 1.0修飾名であると述べながらも、正式な定義は XML Schema 1.0 最新版の QName の定義を見よとリンクされています。 ただし、引用文献に挙げられているのは XML Schema 1.0 第2版です。

CURIE

[15] CURIEW3C XHTML2 WG などが提唱する URI (実際には IRI) の短縮記述方式です。単独の仕様書の案が出版されている他、 XHTML2 WG の色々な仕様書でも独自に定義されています。

IRI の混乱に何も学んでいないというわけです。

[18] XHTML m12n 1.1DTD実装XML Schema 実装には「placeholder」 などと称して CURIE 系のデータ型の定義が含まれています。どちらもかなり緩い定義になっています。

DTD は厳密に記述できないからだとしても、 XML Schema で厳密になってないのはなんででしょう。 面倒だからですかね。

[16] RDFa の定義によると:

接頭辞
XML名前空間 1.0 第1版 NCName または空文字列 (省略可能)
局所名
相対IRI参照
名前空間束縛
xmlns 属性
既定名前空間
キーワード用
解釈
RFC 3987 IRI参照 (または bnode 識別子またはキーワード)

COLON が含まれていないものを「無接頭辞」と呼び、 CURIE を使う仕様が定義するキーワードのために予約されていますが、 RDFa では使っていません。

COLON があり、名前空間接頭辞を含まないものを「既定接頭辞」 と呼び、 CURIE を使う仕様が定義する名前空間に関連付けられます。 RDFa では http://www.w3.org/1999/xhtml/vocab# とされています。

名前空間接頭辞_ の場合、 RDF空白ノード (bnode) の識別子であるとみなされます。

それ以外の場合、名前空間接頭辞から解決して得た名前空間URI局所名の部分を連結した IRI参照とみなされます。

なお、 URI (的なもの) が使える場面でも CURIE を使うため、「[」と「]」 で括った安全CURIEという書式も定義されています。

CSS や選択子

[30] CSS スタイル・シート選択子ではCSS修飾名が使われています。

式言語等

XPath 1.0

[12] XPath 1.0 では節点試験関数名変数名QName を使います。 QName の定義は XML名前空間 1.0 の最新版にリンクされていますが、 引用文献として示されているのは第1版で、どういう意図なのかは不明です。

[13] 関数名変数名としての QName の処理が規定されていない気がするのですが・・・。
接頭辞
XML名前空間 1.0 NCName (省略可能)
局所名
XML名前空間 1.0 NCName
名前空間束縛
xmlns 属性
既定名前空間
常に null名前空間
解釈
展開名 (名前空間URI局所名の組)

[20] FSL という RDF 用の XPath 風言語があって、そこでも QName が使われているのですが、 RDF なので展開名ではなく、展開URI を表すものと解釈されます。

XPointer

[14] XPointer では scheme の名前に QName を使います。 QName の定義は XML名前空間 1.0 の最新版にリンクされており、 引用文献は年号が示されているもののやはり最新版にリンクされています。どういう意図なのかは不明です。

接頭辞
XML名前空間 1.0 NCName (省略可能)
局所名
XML名前空間 1.0 NCName
名前空間束縛
XPointer 名前空間束縛文脈
既定名前空間
W3C 勧告用に予約
解釈
名前空間名局所部分の組

SPARQL

[19] SPQRQL では IRI参照の略記法として「接頭辞名」を規定しています。

接頭辞
独自定義 (空文字列可能)
局所名
独自定義 (空文字列可能)
名前空間束縛
PREFIX キーワード
既定名前空間
N/A
解釈
IRI参照

接頭辞名とは別に、名前空間接頭辞に当たる部分に「_」 を使うことによって空白節点を表現する構文もあります。

TODO

XPath 2.0/XQuery 1.0, XML Schema, ...、展開URI展開名EQName

[22] Basic Data Types – SVG Tiny 1.2 ( 版) http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/types.html#DataTypeQName

[23] OWL 2 Web Ontology Language Structural Specification and Functional-Style Syntax ( 版) http://www.w3.org/TR/2009/REC-owl2-syntax-20091027/#IRIs

[24] XQuery 1.0 and XPath 2.0 Formal Semantics (Second Edition) ( ( 版)) http://www.w3.org/TR/2010/REC-xquery-semantics-20101214/#id-expanded-qnames

[25] XQuery 1.0 and XPath 2.0 Data Model (XDM) (Second Edition) ( ( 版)) http://www.w3.org/TR/2010/REC-xpath-datamodel-20101214/#qnames-and-notations

[26] XQuery 1.0: An XML Query Language (Second Edition) ( ( 版)) http://www.w3.org/TR/2010/REC-xquery-20101214/#dt-qname

[27] XQuery 1.0 and XPath 2.0 Functions and Operators (Second Edition) ( ( 版)) http://www.w3.org/TR/2010/REC-xpath-functions-20101214/#QName-funcs

[28] XML Path Language (XPath) 2.0 (Second Edition) ( ( 版)) http://www.w3.org/TR/2010/REC-xpath20-20101214/#dt-qname

[29] Efficient XML Interchange (EXI) Format 1.0 ( ( 版)) http://www.w3.org/TR/2011/REC-exi-20110310/#key-qname

[32] W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes ( ( 版)) http://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/#QName

[33] PROV-XML: The PROV XML Schema ( ( 版)) http://www.w3.org/TR/2013/NOTE-prov-xml-20130430/#identifier-conventions

[34] PROV-N: The Provenance Notation ( ( 版)) http://www.w3.org/TR/2013/REC-prov-n-20130430/#dfn-qualifiedName

[35] XQuery 3.0: An XML Query Language ( ( 版)) http://www.w3.org/TR/xquery-30/#dt-qname

[36] XML Path Language (XPath) 3.0 ( ( 版)) http://www.w3.org/TR/xpath-30/#dt-qname

[37] XQuery and XPath Data Model 3.0 ( ( 版)) http://www.w3.org/TR/xpath-datamodel-3/#qnames-and-notations

[38] XPath and XQuery Functions and Operators 3.0 ( ( 版)) http://www.w3.org/TR/xpath-functions-3/#QName-constructors

[39] XPath and XQuery Functions and Operators 3.0 ( ( 版)) http://www.w3.org/TR/xpath-functions-3/#QName-constructors

[40] OASIS Open Document Format for Office Applications (OpenDocument) Version 1.2 - Part 1: OpenDocument Schema ( 版) http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#a18_3_19namespacedToken

A namespaced token is an [xmlschema-2] QName that matches the definition of PrefixedName in §4 of [xml-names].

[41] Fix #143: make getElementsByTagName match on qualified name · whatwg/dom@7fd852a ( 版) https://github.com/whatwg/dom/commit/7fd852ae910e6798373f32f655670f14c4fe5a20

[42] Add missing dependency for qualified element name (vkatsikaros著, ) https://github.com/w3c/webdriver/commit/c53efd5fdb6dc581cec11db6540e2f07749b51ff

[43] XQuery 3.1: An XML Query Language () https://www.w3.org/TR/2017/REC-xquery-31-20170321/#dt-expanded-qname

[44] XML Path Language (XPath) 3.1 () https://www.w3.org/TR/2017/REC-xpath-31-20170321/#dt-qname

[45] XPath and XQuery Functions and Operators 3.1 () https://www.w3.org/TR/2017/REC-xpath-functions-31-20170321/#QName-funcs

[46] Use a single exception for name validation (annevk著, ) https://github.com/whatwg/dom/commit/61f40b0763e1c5aac94014b23fb37606e9e2caca

[47] XSL Transformations (XSLT) Version 3.0 () https://www.w3.org/TR/2017/REC-xslt-30-20170608/#qname

[49] SSML 1.0 say-as attribute values () https://www.w3.org/TR/2005/NOTE-ssml-sayas-20050526/#adef_interpret-as

[50] Editorial: clarify the definition of the class string of a platform o… (Ms2ger著, ) https://github.com/heycam/webidl/commit/72560be78bd0341681d6fbad2bda96fc940e04d7

[53] custom tag

[51] HTML要素概説
要素名
*:*
説明
本書では便宜上、文字 : が含まれる要素名*:* と表す。 >>52 実際に *:*要素名とするものではない。
注釈
  • [52] 要素名に文字 : を含み、 xmlns 属性などの形で Internet ExplorerXML名前空間の仕様に沿って HTML 以外の要素を埋め込んで利用することを企図したと思われるものは、 実際にその意図の通りに機能したか否かを問わず、 原則として本書の採録対象としない。
[54] HTML要素概説
要素名
*:*
日付
説明
W3C勧告となったXML名前空間では、 いくつかの方法で異なる名前空間に属する複数の語彙を混在させられた。 そのうちの1つは、 xmlns:* 属性を指定して名前空間接頭辞を宣言した上で、 その名前空間接頭辞: の後に名前空間に属する要素の名前を書く方法だった。 この方法で HTML 以外の要素を使う仕様、 この方法を使ったXHTML文書や、 それを意図した HTML文書も少なからず作られた。 XV1 WML2 >>56 >>55 XMS iXBRL FBML 現在も稀に残る。
出典
[60] HTML要素概説
要素名
*
日付
説明
W3C勧告となったXML名前空間では、 いくつかの方法で異なる名前空間に属する複数の語彙を混在させられた。 そのうちの1つは、 xmlns 属性を指定する方法だった。 この方法で HTML 以外の要素を使う仕様、 この方法を使ったXHTML文書もいくらか作られた。 XF20000406 MML2:Parsing XMS CEA2014Ae >>64
出典
注釈
  • [64] 本書ではそのような形の XML要素は採録対象外とした。
[57] HTML要素概説
要素名
*:*
日付
説明
W3C勧告となった RDF は、 head 内に rdf:RDF を書く方法を提示していた。また、将来の HTML 仕様の拡張も予告していた。 RDF>>58 ところがそれが実現することはなかった。
出典
[59] HTML要素概説
要素名
*:*
日付
説明
そこで RDFHTML文書で使いたいが、同時に HTML4XHTML 1.0DTD に対する妥当性も主張したい人々は、注釈rdf:RDF を含めるという奇行に走った。そのような文書が作られるだけでなく、 注釈の内容を解釈する実装も出現した。本末転倒である。 ブログシステムの出力などの形で現在も多く残る。
出典
RXH