HTML 4.01 の SGML 宣言では、次の四つの機能文字が定義されています。
SYNTAX
FUNCTION
RE 13
RS 10
SPACE 32
TAB SEPCHAR 9
従って、HTML 4.01 文書ではこれらの機能文字に対する名前指定文字参照を記述することができます。例えば混合内容中の (すなわち、PCDATA としての) &#SPACE;
という記述は、 
という記述#x20
が地の文に記述されているのと同様に扱われなければなりません。つまり、通常は単なる空白として処理されなければならないのです。
さて、あなたのブラウザはこれらの文字参照を正しく処理できるでしょうか。
ソース | 実際の表示 | 正しい表示 |
---|---|---|
"&#RE;" | "RE;" | " " |
"&#RS;" | "RS;" | " " |
"&#SPACE;" | "SPACE;" | " " |
"&#TAB;" | "TAB;" | " " |
なお、空白文字に対して特殊な扱いをしている実装では、この限りではありません。例えば CSS で white-space: pre;
を指定している場合など。
なお、HTML 4.01 勧告での文字参照についての記述は以下のようになっています。
Character references in HTML may appear in two forms:
- Numeric character references (either decimal or hexadecimal).
- Character entity references.
数値指定文字参照と十六進数文字参照(と、CDATA 実体への一般実体参照)についての言及はあるものの、名前指定文字参照については全く触れられていません。もっとも、SGML の仕様書には SGML 応用は SGML に適合するマーク付けの利用を禁止してはならない
という記述があるため、上記の例が HTML としても妥当なのは間違いないのですが。
数値指定文字参照との違いについて理解していなかった部分があったので、修正しました。