Qualified name (QName) の仕様

XML 文書内で名前空間 (namespace) を使用する際、qualified name を使用することになります。 下記 XML の "test" や "p:test2" は qualified name です。


<test xmlns="http://www.vividcode.info/test" xmlns:p="http://www.vividcode.info/p">
<p:test2>この要素は名前空間 URI "http://www.vividcode.info/p" に属する</p:test>
</test>
Qualified name に関しては 名前空間に関する W3C の文書中、Qualified name の項目 に説明があります。 Qualified name には、接頭辞付き名 (PrefixedName) と接頭辞無し名 (UnprefixedName) の 2 通りあり、接頭辞付きの場合は
Prefix:LocalPart
のように、コロン (:) で分けて接頭辞と局所名を書きます。 接頭辞無し名の場合は局所名のみ (コロンはない) です。

XML の仕様では要素名などにコロン (:) は何度出現しても良いことになっています (cf. W3C XML 仕様 - 名前に使用できる文字) が、qualified name の場合はコロン (:) は接頭辞と局所名を分けるためだけに使用され、つまり最大 1 回しか出現してはいけないことになっています。

変更メモ

  • はてぶコメントにて 「非接頭辞付き名」 よりは 「接頭辞無し名」 の方がわかりやすいとありましたので、変更しました。 PrefixedName および UnprefixedName が日本語で一般的にどう訳されているかわかればいいんですが・・・ (2009.09.22)