■ はじめに
SGML(Standard Generalized Markup Language - ISO8879)によって定義されたマークアップ言語は、SGMLアプリケーションと呼ばれています。HTMLもその中のひとつです。SGMLアプリケーションは、「SGML宣言(SGML Declaration)」と「文書型定義(DTD - Document Type Definition)」、「文書インスタンス(Document Instance)」の3つの部分で構成されています。一般的にHTML文書と呼ばれているのは「文書インスタンス」の部分のことです。ここでは、「文書インスタンス」で使用されるタグや属性の名前、その親子関係や出現順序、出現回数などを定義する「文書型定義 - DTD」の読み方について説明します。
※ここでDTDの読み方のすべてを説明しているわけではありません。
HTMLの各バージョンのDTDについては、以下のページを参照してください。
- HTML2.0 DTD
- HTML2.x DTD
- HTML3.2 DTD
- HTML4.01 Strict DTD
- HTML4.01 Transitional DTD
- HTML4.01 Frameset DTD
- HTML4.01 Latin-1 entities
- HTML4.01 Symbol entities
- HTML4.01 Special entities
●タグとオプション?
要素(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」と表現されています。