<ENTITY>

entity 要素 (HTML)

IE DTD の entity 要素

[1] HTMLentity 要素型は、 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 の独自の追加なのでしょうか。

[13] >>4HTMLPro DTD でも Microsoft か、となっていて詳しい情報はありません。

[10] HTML要素概説
要素名
entity
日付
説明
付の Mark Buckley による DTD for Internet Explorer 2.0 HTMLentity がある。 版からの変更点に記載がなく、 既に含まれていたと思われる。 IE2DTD 時点の HTML 2.0 DTD に基づくと説明されているが、 HTML 2.0 DTDentity はないので、 独自の追加分である。 同時期の他社の DTD にも見られない。
説明
Web 上にもほとんど情報がなく、 どのような機能があったのか、そもそも実装されていたのかもはっきりしない。 Internet Explorer 3.0 の独自機能として紹介されることがあるが、 Internet Explorer 3.0DTD に該当部分が引き継がれたことによると思われる。
出典
<entity>
出典
注釈

HTMLPro の entity 要素

[4] HTMLPro という処理系があって、色々な独自拡張を修正した DTD を持っていますが、この DTD には entity 要素型が定義されています。 注釈は EXPERIMENTAL SGML entity となっています。 同様に element 要素型や attrib 要素型も定義されています。 (SGML の要素型名や属性名や実体名をマーク付けするための要素型らしいです。)

説明文書によると、既存の entity 要素型や comment 要素型に elementattrib を加えて文書記述に実験的に導入してみたということです。

[8] >>4 のいう説明文書って配布ファイル ftp://ftp.ucc.ie/pub/html/htmlpro.zip に入っていたものか http://www.arbornet.org/~silmaril/dtds/html/htmlpro.html あたりにあったものかと思われるのですが、 今は Internet Archive にも所蔵されておらずどこにも見つけられません。

[11] >>8 見つけました >>12

[15] >>12 と同じ付けのファイルが htmlpro.zip に入って配布されていました。

[14] entity の説明が SGML or other entity name ってなってますけど、 その他って何でしょうね。

[16] +//Silmaril//DTD HTML Pro v0r10 19961116//EN

[9] HTML要素概説
要素名
entity
要素名
comment
要素名
attrib
要素名
element
日付
説明
付の HTML ProDTD に、 comment, entity, attrib, element がある。 既存の comment, entity を流用し attrib, element を追加して SGML の要素名等の記述に用いることとしたものである。 element はその説明文書自体の記述に使われている。 attrib, entity も同様に名前を記述すると推測されるが、 comment の用法は定かではない。
出典
注釈
  • The HTML Professional DTD HTML Pro 当時流布していた各種の HTML DTD を収集した DTD 集と、 それらを統合してすべての HTML の拡張をカバーした HTML DTDHTMLPro

メモ