entity

entity 要素 (HTML)

IE DTD の 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 の独自の追加なのでしょうか。

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

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

HTMLPro の 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 にも所蔵されておらずどこにも見つけられません。

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

メモ