entity
要素[1] HTML の entity
要素型は、
WinIE 3.0βの独自拡張と言われています。
その根拠とされるものは、おそらく M$ が公開した WinIE 3.0βの DTD (色々なところで手に入りますけど、たとえば http://openlab.jp/k16/htmllint/notice.html#ie30b を参照。1996年11月。) でしょう。 この DTD には、
<![ %HTML.Deprecated [ <!ENTITY % phrase "EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE | ENTITY | SPAN"> ]]> <!ENTITY % phrase "EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE | SPAN">という部分があります。
ENTITY
が登場するのはこの部分だけです。つまり、非推奨な内容モデルで行内要素 entity
を参照しているのですが、その要素型は定義されていません。
(SGML 的には特に問題はありません。)
そして、 %phrase
の要素型群は、
<!ELEMENT (%phrase) - - (%text)*> <!ATTLIST (%phrase) %attrs; >として宣言されています。
[2] では、なぜ IE3β DTD
に定義されていないこの要素型が混入したのでしょうか。
この DTD の冒頭には This markup is based as much as possible on the DTD for HTML 3.2 published by W3C (also known as the Wilbur DTD), dated 5/31/96.
と書かれていますので、 Wilbur DTD を探してみましたのですが、
5月6日付と8月13日付はあるもののその間のものは見つかりませんでした。
で、そのいずれも、相当部分は
<!ENTITY % phrase "EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE">となっています。もちろん他の部分でも
entity
要素型は定義されていません。Re: Deprecating FONT and CENTER http://lists.w3.org/Archives/Public/www-html/1996May/0542.html に、5月31日版からの修正案がありますが、残念なことに肝心の部分がありません。
[5] その後1996年5月31日版 HTML 3.2 DTD 案を発掘しましたが、
やはり entity
要素型はありませんでした。
その部分は >>3 の WinIE 2 用 DTD からそのまま由来している部分のようです。
[3] >>2 よりも前の 1996年3月に、同じ著者 (M$ の人) が WinIE 2.0 用の DTD を書いています。
>>2 と同様の
<![ %HTML.Deprecated [ <!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE | DFN | ENTITY"> ]]> <!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE">がある他に、
<![ %HTML.Deprecated [ <!ATTLIST (DFN | ENTITY) %attrs; > ]]>という属性定義並び宣言があります。
この属性定義並び宣言によれば、 id
,
class
, lang
属性があることになります。
(この共通属性の定義は HTML 3.0 からコピってきたと注記されています。)
この DTD は HTML 2.0 draft をもとにして作ったと書かれているのですが、 やはり元の HTML 2.0 draft DTD に該当箇所はありません。
[6] >>3 が参照している DTD の先頭はこういうの:
<!-- DTD for Internet Explorer 2.0 HTML Beta version: 0.9 Date: 3/4/96 Document Type Definition for the HyperText Markup Language for Internet Explorer, V 2.0. Author: Mark Buckley <mbuckley@microsoft.com> This markup is based as much as possible on the DTD for HTML 2.0 published in the 12/95 IETF working draft. Table markup is based on the table DTD included in the HTML3 DTD, not the 12/95 tables draft.
Changes since 2/26/96: 3/4/96: Added BGSOUND to HEAD.
[7] entity
だけでなく dfn
がこの形で入っている DTD
も他にありません。 Microsoft の独自の追加なのでしょうか。
entity
要素[4] HTMLPro という処理系があって、色々な独自拡張を修正した DTD
を持っていますが、この DTD には entity
要素型が定義されています。
注釈は EXPERIMENTAL SGML entity
となっています。
同様に element
要素型や attrib
要素型も定義されています。 (SGML の要素型名や属性名や実体名をマーク付けするための要素型らしいです。)
説明文書によると、既存の entity
要素型や
comment
要素型に element
と
attrib
を加えて文書記述に実験的に導入してみたということです。
[8] >>4 のいう説明文書って配布ファイル ftp://ftp.ucc.ie/pub/html/htmlpro.zip に入っていたものか http://www.arbornet.org/~silmaril/dtds/html/htmlpro.html あたりにあったものかと思われるのですが、 今は Internet Archive にも所蔵されておらずどこにも見つけられません。
[15] >>12 と同じ付けのファイルが htmlpro.zip
に入って配布されていました。
[14] entity
の説明が SGML or other entity name ってなってますけど、
その他って何でしょうね。