要素型宣言は 「DTD入門」 で記載したとおり、文書内に組み込めるタグの名前と、タグの内容や親子関係を定義するものである。
要素型宣言は以下のような構文で記述される。
構成要素には以下のような当該要素配下のデータ内容や子要素を記述する。
構成要素 |
意味 |
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 |
文字データ |
【混在について】
通常は上記の要素が混在し、要素を構成する。 |