[2] リテラルの意味は実は明確には書かれていません。 XML の属性値として使う場合の説明で引用符が実際に表す値の一部でないことが言及されていたり、
processing-instruction()
の引数として使う場合に対象名を表すことが述べられていたりしますが、
一次式として使う場合にそれが引用符を除いた部分と同じ文字列を表していることは明記されていません。
[3] EBNF では使用している引用符を除く任意の文字を引用符の間に書けるとされています >>1。
XPath 1.0 仕様書が EBNF の定義として参照する XML 1.0 第1版によれば、その場合認められるのはXMLの文字であり、
すなわち Char
に含まれる Unicode の多くの文字となります。ほとんどの制御文字とサロゲート領域の符号位置は使えません。
また Unicode の互換性文字の利用は勧められていません。