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要素
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。