XML 入門 | DTD を使用して XML 構造を定義する | 要素と文字データを組み合わせる

XML でも HTML のインライン要素のように、文字データの中に要素を記述できる。

<p>
父は <strong>資産家</strong> である。
</p>

文字データと要素を組み合わせるには、#PCDATA と要素名を選択肢として定義する。

<!ELEMENT 要素名 (#PCDATA | 子要素名)*>

末尾の * により、文字データまたは子要素を 0 回以上記述できる。

父は   <strong>資産家</strong>  である。
----   ---------------------  ------
#PCDATA      strong 要素       #PCDATA

例えば次の DTD では、備考 の中に文字データと 重要 要素を繰り返し記述できる。

<!DOCTYPE 顧客情報[
  <!ELEMENT 顧客情報 (顧客+)>
  <!ELEMENT 顧客 (名前, 性別, 趣味*, (自宅 | 会社 | 携帯), 備考?)>
  <!ELEMENT 名前 (#PCDATA)>
  <!ELEMENT 性別 (#PCDATA)>
  <!ELEMENT 趣味 (#PCDATA)>
  <!ELEMENT 自宅 (#PCDATA)>
  <!ELEMENT 会社 (#PCDATA)>
  <!ELEMENT 携帯 (#PCDATA)>
  <!ELEMENT 備考 (#PCDATA | 重要)*>
  <!ELEMENT 重要 (#PCDATA)>
]>