DTDの種類

広告

HTMLやXHTMLではいくつかのバージョンが存在しますが、そのバージョン毎に利用できる要素や属性、そして記述する順序などについて定義されています。これは文書型定義またはDTD(Document Type Definition)と呼ばれています。

また同じバージョンであっても複数のDTDが用意されている場合があり、記述するWebページの内容に応じてDTDを選択します。

現在主に利用されるHTML/XHTMLのバージョンとDTDの一覧は下記の通りです。

HTML 4.01 Transitional DTD
HTML 4.01 Frameset DTD
HTML 4.01 Strict DTD
XHTML 1.0 Transitional DTD
XHTML 1.0 Frameset DTD
XHTML 1.0 Strict DTD
XHTML 1.1 DTD
XHTML Basic 1.1 DTD

HTML4.01とXHTML1.0にはそれぞれ3つのDTDが用意されています。

DTDの違い

HTMLがバージョン4になった際、HTMLは文書の構造を記述し見た目などはスタイルシートを使うという方針に伴って以前より使われていた一部の要素や属性が非推奨となり将来的に廃止となることなりました。HTML4.01やXHTML1.0では移行期のバージョンとなりその為3つのDTDが用意されています。

それぞれのDTDの違いは以下の通りです。

Strict DTD

非推奨要素と非推奨属性が未定義となり使用できません。フレームも使用でき
ません。新しい使い方に完全に以降した場合に使われるDTDです。

「Strict DTD」は「HTML 4.01 Strict DTD」と「XHTML 1.0 Strict DTD」があります。また「XHTML1.1」では非推奨用途と非推奨属性が使用できないDTDしか存在しなくなる為、あえて記述はされていませんがStrict DTDと同様です。

Transitional DTD

非推奨要素と非推奨属性が使用できますがフレームは使用できません。

「Transitional DTD」は「HTML 4.01 Transitional DTD」と「XHTML 1.0 Transitional DTD」があります。非推奨の要素や属性も使用できるため、古いDTDを使ったWebページをHTML4.01やXHTML1.0に移行する場合に便利です。ただし framset要素 などは使用できません。

Frameset DTD

非推奨要素と非推奨属性に加えてフレームも使用できます。Transitional DTD
にフレーム関連の要素が付け加えられたものです。

「Frameset DTD」は「HTML 4.01 Frameset DTD」と「XHTML 1.0 Frameset DTD」があります。フレームを使用する場合に使う特殊なDTDであり body 要素 の代わりに frameset要素 を使用します。フレームを使用する場合にはこのDTDを必ず使う必要があります。なお iframe要素 はここでいうフレームとは異なりますので「Transitional DTD」でも使用可能です(ただ非推奨要素ではあります)。

なお非推奨要素は次の通りです。

applet要素   basefont要素   center要素   dir要素
font要素     isindex要素    menu要素     s要素
strike要素   u要素          iframe要素

Frameset DTDのみ使用可能な要素は次の通りです。

frame要素   frameset要素    noframes要素

非推奨属性は要素毎に異なる為、詳しくは「HTMLタグリファレンス」をご覧下さい。

( Written by Tatsuo Ikura )