XML HOME > 要素型宣言

要素型宣言(最終更新日 2003/03/08)

要素型宣言
要素型宣言は 「DTD入門」 で記載したとおり、文書内に組み込めるタグの名前と、タグの内容や親子関係を定義するものである。

要素型宣言は以下のような構文で記述される。
<!ELEMENT 要素名 構成要素>
構成要素には以下のような当該要素配下のデータ内容や子要素を記述する。
構成要素 意味
EMPTY 当該要素には子要素などを有しない。
ANY 任意の文字データ、子要素を有する。
"子要素" 当該要素配下の子要素の種類、個数を定義する。
"混在" 上記構成要素が混在している。

【EMPTYについて】
上記のとおり、子要素を有していない要素(例えば、属性のみ等)を定義する場合に使用する。
以下は EMPTY の例である。
<!ELEMENT font EMPTY>
  ・・・
<font color = "red"/>

【ANYについて】
該当要素配下に関して、特に定義されていない場合に使用する。(本来のDTDの意味合いからは逸脱しているのだが・・・)
以下は ANY の例である。
<!ELEMENT comment ANY>
  ・・・
<comment>
 <author>作成者</author>
 <create-date value="2003/01/30"/>
</comment>

【子要素について】
該当要素配下の子要素をシーケンスまたは選択肢により列挙する。また、同時に子要素の数も指定する。
<!ELEMENT 要素名 (子要素1,子要素2,・・・)>
上記のように、( ) でくくり、子要素を , で列挙することにより、指定した要素配下の子要素の種類と並び順を定義する。

このとき、子要素の出現回数を指定することができる。
記号 意味
子要素 子要素が1回のみ出現する
子要素+ 子要素が1回以上出現する
子要素? 子要素が0回もしくは1回出現する
子要素* 子要素が0回以上出現する
子要素1 | 子要素2 子要素1もしくは子要素2が出現する
#PCDATA 文字データ

【混在について】
通常は上記の要素が混在し、要素を構成する。