* IE DTD の [CODE[entity]] 要素

[1] [[HTML]] の [CODE(HTMLe)[entity]] 要素型は、 
[[WinIE 3.0]]βの独自拡張と言われています。

その根拠とされるものは、おそらく M$ が公開した WinIE 3.0βの [[DTD]]
(色々なところで手に入りますけど、たとえば
<http://openlab.jp/k16/htmllint/notice.html#ie30b> を参照。1996年11月。) でしょう。
この DTD には、
[PRE[
<![ %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">
]PRE]
という部分があります。[DEL[要素型として [CODE(HTMLe)[ENTITY]] が登場するのはこの部分だけです。]]

[DEL[
つまり、非推奨な[[内容モデル]]で[[行内要素]] [CODE(HTMLe)[entity]]
を参照しているのですが、その要素型は定義されていません。
[WEAK[([[SGML]] 的には特に問題はありません。)]]
]DEL]

[INS[
そして、 [CODE(SGML)[%phrase]] の要素型群は、
[PRE(SGML)[
<!ELEMENT (%phrase) - - (%text)*>
<!ATTLIST (%phrase)
	%attrs;
	>
]PRE]
として宣言されています。
]INS]

[2] では、なぜ IE3β DTD 
に[DEL[定義されていない]][INS[この]]要素型が混入したのでしょうか。
この DTD の冒頭には [Q[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日付はあるもののその間のものは見つかりませんでした。
で、そのいずれも、相当部分は
[PRE[
<!ENTITY % phrase "EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE">
]PRE]
となっています。もちろん他の部分でも [CODE(HTMLe)[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 案を発掘しましたが、
やはり [CODE(HTMLe)[entity]] 要素型はありませんでした。
その部分は >>3 の WinIE 2 用 DTD からそのまま由来している部分のようです。

[3] >>2 よりも前の 1996年3月に、同じ著者 (M$ の人) が [[WinIE 2.0]]
用の DTD を書いています。

>>2 と同様の
[PRE[
<![ %HTML.Deprecated [
	<!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE
		| DFN | ENTITY">
]]>

<!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE">
]PRE]
がある他に、
[PRE[
<![ %HTML.Deprecated [
<!ATTLIST (DFN | ENTITY)
	%attrs;
	>
]]>
]PRE]
という[[属性定義並び宣言]]があります。[DEL[やはり[[要素型宣言]]はありません。]]

この属性定義並び宣言によれば、 [CODE(HTMLa)[[[id]]]],
[CODE(HTMLa)[[[class]]]], [CODE(HTMLa)[[[lang]]]] 属性があることになります。
[WEAK[(この共通属性の定義は [[HTML 3.0]] からコピってきたと注記されています。)]]

この DTD は [[HTML 2.0]] draft をもとにして作ったと書かれているのですが、
やはり元の HTML 2.0 draft DTD に該当箇所はありません。

[6] >>3 が参照している DTD の先頭はこういうの:

>
[PRE[
<!--    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.
]PRE]

>
[PRE[
        Changes since 2/26/96:

        3/4/96:
                Added BGSOUND to HEAD.
]PRE]


[7] [CODE[entity]] だけでなく [CODE[dfn]] がこの形で入っている [[DTD]]
も他にありません。 [[Microsoft]] の独自の追加なのでしょうか。

[13] >>4 の [[HTMLPro]] DTD でも [[Microsoft]] か、となっていて詳しい情報はありません。


[FIG(data)[ [10] [[HTML要素概説]]

:[F[要素名]]:[CODE[entity]]
:日付:[TIME[1996-03-04]]
:説明:
[TIME[1996-03-04]]付の
[[Mark Buckley]]
による
[CITE[DTD for Internet Explorer 2.0 HTML]]
に
[CODE[entity]]
がある。
[TIME[1996-02-26]]版からの変更点に記載がなく、
既に含まれていたと思われる。
[SRC[IE2DTD]]
[TIME[1995-12]]時点の [[HTML 2.0]] [[DTD]]
に基づくと説明されているが、 
[[HTML 2.0]] [[DTD]] に
[CODE[entity]]
はないので、
独自の追加分である。
同時期の他社の DTD にも見られない。
:説明:
[[Web]]
上にもほとんど情報がなく、
どのような機能があったのか、そもそも実装されていたのかもはっきりしない。
[[Internet Explorer 3.0]]
の独自機能として紹介されることがあるが、
[[Internet Explorer 3.0]]
版 [[DTD]] に該当部分が引き継がれたことによると思われる。
:出典:[[<entity>]]
:出典:
[REFS[

- [17] 
[DFN[IE2DTD]]:
[CITE@en[DTD for Internet Explorer 2.0 HTML]],
Beta version: 0.9,
Author: [DATA(.author)[[[Mark Buckley]]]], 
Date: [TIME(.published)[3/4/96][1996-03-04]],

]REFS]
:注釈:
-
[DFN[Mark Buckley]]
[[Microsoft Corporation]]
社員。
[[Internet Explorer]]
の開発に従事した。
[SRC[IE2DTD]]

]FIG]



* HTMLPro の [CODE(HTMLe)@en[entity]] 要素

[4] [[HTMLPro]] という処理系があって、色々な独自拡張を修正した DTD
を持っていますが、この DTD には [CODE(HTMLe)[entity]] 要素型が定義されています。
注釈は [Q[EXPERIMENTAL SGML entity]] となっています。
同様に [CODE(HTMLe)[[[element]]]] 要素型や [CODE(HTMLe)[[[attrib]]]]
要素型も定義されています。 (SGML の要素型名や属性名や実体名をマーク付けするための要素型らしいです。)

説明文書によると、既存の [CODE(HTMLe)[entity]] 要素型や
[CODE(HTMLe)[[[comment]]]] 要素型に [CODE(HTMLe)[element]] と
[CODE(HTMLe)[attrib]] を加えて文書記述に実験的に導入してみたということです。

[8] >>4 のいう説明文書って配布ファイル 
<ftp://ftp.ucc.ie/pub/html/htmlpro.zip>
に入っていたものか
<http://www.arbornet.org/~silmaril/dtds/html/htmlpro.html>
あたりにあったものかと思われるのですが、
今は [[Internet Archive]] にも所蔵されておらずどこにも見つけられません。
[TIME[2024-08-18T02:39:06.400Z]]

[11] >>8 見つけました [SRC[>>12]]

- [12] [CITE[The HTML Professional DTD]], [TIME[2024-08-18T03:10:46.000Z]], [TIME[1997-05-12T01:11:54.190Z]] <https://web.archive.org/web/19970512004934/http://www.ucc.ie/html/dtds/htmlpro.html>

[15] >>12 と同じ[TIME[1997-01-14]]付けのファイルが [CODE[htmlpro.zip]]
に入って配布されていました。

[14] [CODE[entity]] の説明が SGML or other entity name ってなってますけど、
その他って何でしょうね。

[16] [CODE[+//Silmaril//DTD HTML Pro v0r10 19961116//EN]]

[FIG(data)[ [9] [[HTML要素概説]]

:[F[要素名]]:[CODE[entity]]
:[F[要素名]]:[CODE[comment]]
:[F[要素名]]:[CODE[attrib]]
:[F[要素名]]:[CODE[element]]
:日付:[TIME[1996-11-16]]
:説明:
[TIME[1996-11-16]]付の
[[HTML Pro]] の
[[DTD]]
に、
[CODE[comment]],
[CODE[entity]],
[CODE[attrib]],
[CODE[element]]
がある。
既存の 
[CODE[comment]],
[CODE[entity]]
を流用し
[CODE[attrib]],
[CODE[element]]
を追加して
[[SGML]]
の要素名等の記述に用いることとしたものである。
[CODE[element]]
はその説明文書自体の記述に使われている。
[CODE[attrib]],
[CODE[entity]]
も同様に名前を記述すると推測されるが、
[CODE[comment]]
の用法は定かではない。
:出典:
[REFS[

-
[DFN[HTMLPro]]:
[CITE@en[The HTML Professional DTD]], 
[DATA(.author)[[[Peter Flynn]]]],
[TIME(.published)[1 January 1997][1997-01-01]],
[TIME[2024-08-18T03:11:56.000Z]], [TIME[1997-05-12T01:13:03.515Z]] <https://web.archive.org/web/19970512004934/http://www.ucc.ie/html/dtds/htmlpro.html>

]REFS]
:注釈:
-
[DFN@en[The HTML Professional DTD]] [DFN@en[HTML Pro]]
当時流布していた各種の [[HTML DTD]] を収集した [[DTD]] 集と、
それらを統合してすべての [[HTML]] の拡張をカバーした [[HTML DTD]]。
[SRC[HTMLPro]]

]FIG]

* メモ
