[1] [[HTML]] の [DFN[[CODE(HTMLe)@en[pre-html]] [[要素]]]]は、
[[ISO-HTML]] [[文書]]の準備段階で[[章節構造]]の[[妥当性検証]]を行うために使う[[文書要素型]]です。
* 仕様書
-[2] [[ISO-HTML利用者の手引き]]
--
* 歴史
** ISO-HTML での [CODE(HTMLe)@en[[[pre-html]]]]
[3] 元々 [[ISO-HTML]] の原案では [CODE(HTMLe)@en[[[div[VAR[n]]]]]] [[要素]]を使って
[CODE(HTMLe)@en[[[h[VAR[n]]]]]] [[要素]]で暗示される[[章節構造]]を明確にし、
[VAR[n]] を飛ばすなどの不適切な[[文書]]を [[DTD]] のレベルで禁止しようとしていました。
[4] しかし [[ISO-HTML]] を [[HTML4]] の[[部分集合]]とすることとなったため、
[CODE(HTMLe)@en[[[div[VAR[n]]]]]] のような [[HTML4]] に含まれない[[要素]]は規格本体からは削除され、
代わりに規格の編集者らによる「利用者の手引き」に追いやられました。
手引きはあくまで規格本体の利用を補助するものという位置付けなので、
正式な [[DTD]] とは別に、文書の準備段階で[[章節構造]]を確認するためだけの [[DTD]]
が用意され、 [CODE(HTMLe)@en[[[div[VAR[n]]]]]] はそこに含められることになりました。
両者を区別するため、正式な[[文書要素型]]である [CODE(HTMLe)@en[[[html]]]]
のかわりに [CODE(HTMLe)@en[[[pre-html]]]] が用意されました。
[5] [CODE(HTMLe)@en[[[html]]]] [[要素]]や [CODE(HTMLe)@en[[[pre-html]]]] [[要素]]は[[開始タグ]]も[[終了タグ]]も省略できるので、
[PRE(HTML example code)[
...
]PRE]
とだけ書いておけば、
[PRE(HTML example code)[
...
]PRE]
のように[[文書型宣言]]を書き換えるだけで正式なものに変更でき、手軽であると思われていました。
** 不思議マーク付け HTML の SGML 化のための [CODE(HTMLe)@en[[[pre-html]]]]
[6] (20)00年代のはじめごろ、[[不思議マーク付け]]の[[HTML文書]]を無理矢理に [[SGML]]
[[文書]]として正しく認識させる試みがなされたことがありました。
当時の無料の [[Webサイト]]のホスティング・サービスの中には [[HTML]]
の[[文書]]の構造を無視して [CODE(HTMLe)@en[[[html]]]] [[要素]]の[[タグ]]の外側に[[広告]]を表す[[要素]]を挿入するものがあったため、
それを [[SGML]] 的に認めるために、[CODE(HTMLe)@en[[[html]]]] [[要素]]より外側にある[[文書要素]]として
[CODE(HTMLe)@en[[[pre-html]]]] [[要素]]が流用されたことがありました。