[8] XML では、いくつかの公開識別子を指定した外部実体 (DTD) を参照することで、 HTML の名前付き文字参照が使えるようになります。
[2] 次の公開識別子が名前付き文字参照についての実体宣言を含む DTD として規定 >>1 されています。
[20] この一覧は >>21 の JSON ファイルの charrefs_pubids
にも含まれています。
[3] 利用者エージェントは、外部実体を取得 (retrieve) する時、 >>2 の公開識別子が指定されていれば、 HTML Standard に示された DTD に対応するものとして処理するべきです >>1。
[85] Firefox では、システム識別子が絶対URLでないと (URL scheme が含まれていないと) 公開識別子が文字参照の DTD のものだとしても、無視されるようです。 Chrome ではそのようなことはありません。
[12] どの実装でも DOCTYPE
宣言で指定する外部部分集合や、
マーク付け宣言の間の引数実体参照で参照される外部実体としてこれらの公開識別子が指定された場合には
HTML Standard の規定に添って処理しますが、
要素内で参照される外部実体としてこれらの公開識別子が指定された場合には展開しない外部実体参照として扱うようです。
[9] これらの公開識別子の使用は XML や HTML の仕様上特に禁止されていませんが、 いずれも過去の HTML や MathML の仕様に基づくものですから、 新たに使用するべきではないでしょう。
[11] これらの公開識別子を使用しないと HTML の名前付き文字参照が XML (XHTML) 文書内で使えないことになります (定義済実体を除く)。 しかしこれらの公開識別子を使用したとしても Webブラウザー以外の XML構文解析器が対応している保証はありませんから、そもそも XML では HTML の名前付き文字参照は使用するべきではありません。
[15] 本規定は Webブラウザーにおける XML の実装との互換性のため、 Web Applications 1.0 (現 HTML Standard) に追加されました。
[16] David Carlisle は公開識別子のリストに
-//W3C//ENTITIES HTML MathML Set//EN//XML
を追加することを提案しました。本公開識別子は MathML 向けの DTD
の一部分として内部的に使われていたものでした。
[17] 本規定の趣旨は既存の XHTML 文書および Webブラウザーとの互換性のためでしたから、 未対応の公開識別子を新たに追加するのは相応しくありません。そのため WHATWG の Ian Hickson はこの提案を拒み、 HTML5 に追加しませんでした。
[18] 通常ならこれで話が終わるところでしたが、本提案は WHATWG で却下された後に W3C HTML WG で WD として出版し、標準化しようと試みられました。 ただ流石にどの Webブラウザーも実装せず無視しているものを勧告トラックの先に進めることはできなかったようで、 2015年には WG Note として出版され >>14 正式に廃案となりました。
longdesc
がありますが、そちらは不思議なことに
W3C勧告になっています。こちらはそこまで強硬に勧告化したい人がいなかったのでしょうかね。[6] HTML Standard は、これは厳密には XML 仕様に対する意図的違反ではないものの、 その精神には反している >>1 と述べています。 XML 仕様上は指定されたシステム識別子の URL を無視して型録等に従っても違反ではありませんから、 >>3 のような動作は仕様違反ではありません。ただ >>2 のような公開識別子が元々意図していた DTD と >>4 のような DTD は明らかに異なるもので、異なる公開識別子と DTD を結びつけるのは確かに仕様の精神には反しているのかもしれません。