XML 入門 | DTD を使用して XML 構造を定義する | 要素の出現回数を指定する

DTD では要素が出現できる回数を指定できる。記号を付けない場合、要素は必ず 1 回だけ出現する。例えば次のモデルでは 商品 を 1 つだけ記述できる。

<!ELEMENT 在庫情報 (商品)>

1 つ以上の商品を記述できるようにするには + を付ける。

<!ELEMENT 在庫情報 (商品+)>

出現回数を表す記号

記号 出現可能回数
+ 1 回以上
? 0 回または 1 回
* 0 回以上
指定なし 1 回のみ

記号は要素モデルの後ろに記述する。

<!ELEMENT 要素名 (要素名1記号)>
<!ELEMENT 要素名 (要素名1記号, 要素名2記号, ...)>
<!ELEMENT 要素名 (要素名1記号, 要素名2記号, ...)記号>

次の DTD では、商品を 1 つ以上、詳細情報を省略可能、色を 0 個以上として定義している。

<!DOCTYPE 在庫情報[
    <!ELEMENT 在庫情報 (商品+)>
    <!ELEMENT 商品 (名前, 個数, 詳細情報?)>
    <!ELEMENT 名前 (#PCDATA)>
    <!ELEMENT 個数 (#PCDATA)>
    <!ELEMENT 詳細情報 (重さ, 色*)>
    <!ELEMENT 重さ (#PCDATA)>
    <!ELEMENT 色 (#PCDATA)>
]>

省略可能な要素には ? または * が必要である。記号がなければ必ず 1 回記述する。