[1] URI と IRI と XML と、それを構成する文字と文字コードについて。
頭痛気味の方は読まないほうがいいかもしれません。
[25] URI が値であるはずの属性、例えば xmlns
属性の値に非 URI 文字、例えば "
とか あ
とかが含まれていることは十分ありえます。
[2] そのようなときの対処法は、標準的には
%
,
#
, [
,
]
を除外したもの) を UTF-8 で符号化する。%
を使った所謂
URI符号化 (URI Escape) する。と処理します。この結果を実際の処理 (URI で参照された資源の入手など) に使用します。
[26] XML 本体のシステム識別子では、泥沼的な修正の結果、 システム識別子の値は「URI 参照」ではなく「URI 参照に変換されるもの」であるから問題はない、 XML 処理器は URI 参照に変換して処理せよ、ということになっています。 (詳しくは ../ (>>10)]- を参照。)
[27] XML 名前空間には、 1.0 にも 1.1 にも特に言及はありません。 1.0 だけなら 1.1 で IRI を使うようにしているからなし崩し的にどんな文字でもありにしたがっているのかなあと邪推できますが、 1.1 にも書いてないのですから単なる間抜けでしょう。
ただ、名前空間名の URI//比較は単純な文字列比較ですから、 URI としての妥当性も気にせずにとにかく1文字1文字チェックすればいいんだ、 という立場かもしれません。
[28] >>27 の後半が正しいとしたら、識別子性のために URI を利用しておきながら傲慢な態度ですね。
[30] XML 名前空間 1.1 最終版では、 IRI の仕様がまだ確定していないから実装はどんな文字も受けるけるようにというようなことが書いてあります。一方で利用者は IRI 仕様が確定するまで URI を使うようにすすめられています。 (名無しさん)