contents

HTMLのDTDの読み方

はじめに

SGML(Standard Generalized Markup Language - ISO8879)によって定義されたマークアップ言語は、SGMLアプリケーションと呼ばれています。HTMLもその中のひとつです。SGMLアプリケーションは、「SGML宣言(SGML Declaration)」と「文書型定義(DTD - Document Type Definition)」、「文書インスタンス(Document Instance)」の3つの部分で構成されています。

一般的にHTML文書と呼ばれているのは「文書インスタンス」の部分のことです。ここでは、「文書インスタンス」で使用されるタグや属性の名前、その親子関係や出現順序、出現回数などを定義する「文書型定義 - DTD」の読み方について説明します。

※ここでDTDの読み方のすべてを説明しているわけではありません。


HTMLの各バージョンのDTDについては、以下のページを参照してください。


タグとオプション?
 要素(element)と属性(attribute)

以下の例を見てください。

   <P align="center">ここは段落です</P>

現在では、「Pタグのalignオプションは・・・」などという表現で説明されているものを多くみかけます。しかし、W3Cなどの仕様書を見ると「Pタグ」「alignオプション」といった表現はあまり見かけません。「P element」「align attribute」という表現を多く使っています。では、どう表現するべきなのでしょうか?

まず、SGMLで属性(attribute)を表現するために「オプション」という言葉は使いません。確かに意味的にわかりやすいのですが、属性の中には必須のものもありますので、適切な表現ではないでしょう。

つぎに、「タグ」と「要素」ですが、これはそれぞれ違うものを指します。W3Cなどの仕様書でも使い分けられています。上の例でいくと、それぞれ以下の部分を指しています。

  ・Pタグ → <P> </P>(開始タグ、終了タグ)

  ・P要素 → <P align="center">ここは段落です</P>

つまり「タグ」を含む内容自体が、文書の中の「段落(P:Paragraph)」という1「要素」なわけです。したがって、例えば<BODY>タグが省略されても、BODY要素が存在しないということにはなりません。

ちなみに、上の例の「ここは段落です」の部分はW3Cの仕様書では「Content」と表現されています。