19 HTMLのためのSGML参照情報

目次

  1. 文書の検証
  2. サンプルSGML カタログ

次のページからは、HTML 4の正式なSGML定義が含まれる。それぞれ、 SGML宣言文書型定義 (DTD)、及び文字実体参照並びにサンプルSGMLカタログである。

各々、次の通り、ASCIIテキストファイルでも得られる。

デフォルトDTD:
strict.dtd
移行型DTD:
loose.dtd
フレーム設定型DTD:
frameset.dtd
SGML宣言:
HTML4.decl
実体定義ファイル:
HTMLspecial.ent
HTMLsymbol.ent
HTMLlat1.ent
サンプルカタログ:
HTML4.cat

19.1 文書の検証

著者の多くは、自分が作った文書を限られた数のブラウザでチェックし、ブラウザがレンダリングできていれば妥当な文書であると判断している。 しかしながらこれは、文書の妥当性を検証するには、ほとんど効果がない手法である。なぜならブラウザは不正文書であっても何とかレンダリングしてユーザに不満を抱かせないようにと設計されているからである。

より優れた検証を行なうには、nsgmls ( [SP]参照)などのSGMLパーサによって文書を検証し、HTML 4 DTDに適合していることを確認する必要がある。 当該文書の文書型宣言にURIが含まれていて、検証に用いるSGMLパーサがURIを含むシステム識別子をサポートしている場合、パーサはDTDを直接入手するであろう。 そうでない場合は、次のサンプルSGMLカタログを利用できる。 このカタログは、DTDファイルがstrict.dtdという名称で、実体集合のファイルが各々HTMLlat1.ent、HTMLsymbol.ent、HTMLspecial.entであると仮定している。 どちらの場合も、SGMLパーサを、[ISO10646]が処理できる状態にしておく必要がある。 より詳細については、検証ツールのマニュアルを参照されたい。

こうした検証を行なうことは、有用でありかつ大いに推奨されるが、文書がHTML 4仕様に完全に適合することを保証するものではないことに注意されたい。 なぜなら、SGMLパーサは、所定のSGML DTDに従って検証するにすぎず、これはHTML 4文書の妥当性についてのあらゆる局面を表現するわけではないからである。 SGMLパーサは、シンタクスや構造、定義されている要素及び属性のみかどうかは検証する。しかし例えば IMG要素のwidth属性がfooや12.5等の不正な値に設定されている等のエラーを検知することはできない。 本仕様はこの値を「ピクセル数を示す整数」に限定しているが、DTDは単に CDATA としているのみで、どんな値でも許されてしまうのである。 特製のプログラムだけが、HTML 4仕様の完全な検証を可能にする。

それでもなお、汎用ツールによる検証は大いに推奨される。なぜなら、文書が不正になってしまうような多くのエラーを検証できるからである。

19.2 サンプルSGMLカタログ

このカタログには、nsgmlsなどのパーザに対して、システム識別子よりも公開識別子を優先して参照させるための上書き命令文を含む。つまり、URIベースのシステム識別子を辿るためにWebに接続しなくともよいということを意味する。

OVERRIDE YES

PUBLIC "-//W3C//DTD HTML 4.01//EN" strict.dtd
PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" loose.dtd
PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" frameset.dtd
PUBLIC "-//W3C//ENTITIES Latin1//EN//HTML" HTMLlat1.ent
PUBLIC "-//W3C//ENTITIES Special//EN//HTML" HTMLspecial.ent
PUBLIC "-//W3C//ENTITIES Symbols//EN//HTML" HTMLsymbol.ent

訳者代表: 内田明 (UCHIDA Akira)
email: uchida@happy.email.ne.jp