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 番目の子要素は 自宅、会社、携帯 のいずれかになる。