XML 入門 | DTD を使用して XML 構造を定義する | 複数の要素から 1 つを選択する

DTD では複数の要素から 1 つを選択して記述する規則を定義できる。選択肢は | で区切る。

<!ELEMENT 要素名 (要素名1 | 要素名2 | ...)>

例えば連絡先として 自宅会社携帯 のいずれか 1 つを記述する場合は次のように定義する。

<!ELEMENT 連絡先 (自宅 | 会社 | 携帯)>

この規則を使用する文書は次のように定義できる。

<!DOCTYPE 顧客情報[
  <!ELEMENT 顧客情報 (顧客+)>
  <!ELEMENT 顧客 (名前, 性別, 趣味*, 連絡先)>
  <!ELEMENT 名前 (#PCDATA)>
  <!ELEMENT 性別 (#PCDATA)>
  <!ELEMENT 趣味 (#PCDATA)>
  <!ELEMENT 連絡先 (自宅 | 会社 | 携帯)>
  <!ELEMENT 自宅 (#PCDATA)>
  <!ELEMENT 会社 (#PCDATA)>
  <!ELEMENT 携帯 (#PCDATA)>
]>

選択肢を親要素に直接記述することもできる。

<!ELEMENT 顧客 (名前, 性別, 趣味*, (自宅 | 会社 | 携帯))>

この場合、顧客 の 4 番目の子要素は 自宅会社携帯 のいずれかになる。