contents

HTMLのDTDの読み方

要素の宣言(Element declarations)

要素に対して使うタグの名前を宣言し、親子関係や出現順序、出現回数、タグの省略の可否、データ型などを指定します。ここで宣言した「要素名」が、タグの名前になります。

要素の宣言方法

<!ELEMENT 要素名 開始タグ省略指定 終了タグ省略指定 要素内容>

開始タグ・終了タグの省略指定

「タグの省略指定」は、省略できない場合は"-"、省略できる場合は"O"(アルファベットの"オー":OMITTAGの意味)で表わします。

【 例 】

<!ELEMENT BODY O O ・・・・・ >
BODY要素は、開始タグ・終了タグとも省略できる。

<!ELEMENT P - O ・・・・・ >
P要素は、終了タグを省略できる。

<!ELEMENT TABLE - - ・・・・・ >
TABLE要素は、開始タグ・終了タグとも省略できない。

親子関係

「要素名(タグ名)」で指定した要素が親、「要素内容」として指定したものが「子」となります。つまり、「要素内容」には、この要素の範囲内で使用できる「子の要素」を指定することになります。

【 例 】

<!ELEMENT UL - - (LI)+>
この場合はUL要素が「親」、LI要素が「子」になります。

出現回数

子の要素が何回現われるかは、以下のような記号で示されます。

要素
 1回だけ出現する。

要素?
 0または1回のみ出現する。

要素*
 繰り返し出現する(0回以上)。

要素+
 繰り返し出現する(1回以上)。

【 例 】

<!ELEMENT UL - - (LI)+>
この場合は、LI要素が1回以上出現します。

出現順序

「要素内容」には、複数の要素が指定される場合があります。その場合の各要素の出現順序は、以下のように示されます。

要素A,要素B
 左側の要素から順番にすべてが出現する。

要素A&要素B
 順不同ですべてが出現する。

要素A|要素B
 そのうちのどれか1つが出現する。

【 例 】

<!ELEMENT DL - - (DT|DD)+>

この場合はDL要素の子として、DT要素またはDD要素のうちどちらか1つが、1回以上(繰り返し)出現します。つまり、DTまたはDD、DTまたはDD、DTまたはDD・・・というように出現することになります。

データ型

「要素内容」が、文字データである場合などには、そのデータの型を指定します。データ型には以下のようなものがあります。

CDATA (Character DATA)
 文字データ。「&○○;」などは認識されずに通常の文字とみなされる。

#PCDATA (Parsed Character DATA)
 文字データ。「&○○;」や他の要素と混在が可能。

EMPTY
 要素内容は空(なし)。(終了タグは必ず省略)

【 例 】

<!ELEMENT OPTION - O (#PCDATA)>

<!ELEMENT BR - O EMPTY>

任意の場所に出現できる要素

以下のように、「要素内容」の最後に「+」に続く要素を記述して、その要素内の任意の場所に出現できる要素を宣言することができます。

【 例 】

<!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL)>
INS要素とDEL要素は、BODY要素内の任意の位置に配置できます。

「要素内容」からの除外

以下のように、「要素内容」の最後に「-」に続く要素を記述して、特定の要素を除外することができます。

【 例 】

<!ELEMENT A - - (%inline)* -(A)>
A要素の中でA要素を使うことはできません。(Aタグの入れ子は不可)