実体参照は名前空間URIとは関係無い

Safariの実体参照の扱いに関する話の続き的な話。static and distribution.のおお、忙しい...にある、

XHTML1.1として解釈していないのは間違いなく、さらにxmlns属性で参照されているはずのnamespaceを見に行っていないためエラーとなっている。

※註: エラーの内容は、"Entity 'trade' not defined."

という文について、ねこめしにっきのSafari は XML Namespace を参照しない?でCSSやDOM実装などからの言及がされてます。が、それよりも何よりも実体参照と名前空間URIとは何の関係も無いというだけで終了する話なのでは、という気がします。

XML文書で名前空間宣言が使われていなくても、文書型宣言(<!DOCTYPE ... >というやつ)が示す文書型定義DTDで実体が宣言されていれば実体参照は使えるし、逆にXML文書に文書型宣言が無ければ、いくら文書内の要素に名前空間宣言があったって、定義済みでない(&amp;, &lt;, &gt;, &quot;, &apos;以外の)実体参照は使えないです。

名前空間URIを利用してXML文書の文法スキーマを取得するという技術は、あるにはあります(RDDL)。しかしそれにしたって文法の検証に関連はしても、実体参照とは関係ないです。実体参照はDTDがあってこそ使える技なんです。

なので、「実体が定義されていない」というエラーについて「namespaceを見に行っていないためエラー」と言うのは、考えれば考えるほど、言わんとするところさえも不明です(自分にとっては)。yamさんが現在どう認識しているかはさておき、何か勘違いがあったのだろうと思います。