4.3 #PCDATA
テキストデータを内容に含む場合は、以下のように要素型宣言中に”#PCDATA”と記述します。
<!ELEMENT 要素名 #PCDATA >
内容にテキストデータのほかに子供要素も含める混在内容のときは、以下のように要素の指定の前に、”#PCDATA”と記述します。
<!ELEMENT 要素名 (#PCDATA, 要素の指定) >
以下に例を示します。
<!ELEMENT p (#PCDATA|b|i)*>
以上のようにp要素を宣言した場合、以下のXML文章は妥当です。
<p>今日は<b>とっても</b>よい<i>天気</i>です。</p>
4.4 EMPTYとANY
要素には、内容となるものが全く存在しないものがあります。これを空要素といい、以下のように"EMPTY"と記述し、宣言します。
<!ELEMENT 要素名 EMPTY>
空要素は、空要素タグにより記述できます。また、「テキストを含め、DTDで宣言されている要素なら、どんなものでも、どんな順番でも、記述してよい」という要素を任意要素といいます。任意要素は、以下のように"ANY"と記述し、宣言します。
<!ELEMENT 要素名 ANY >
例を示します。
<!DOCTYPE root [ <!ELEMENT root ANY> <!ELEMENT son #PCDATA> <!ELEMENT daughter #PCDATA> ]>
以上のように定義した場合、以下のようなXML文書が可能になります。
<root> この文書は<son>妥当な</son>XML文書になります。 <daughter>はい、そうです。</daughter> </root>
4.5 まとめ
- 要素型宣言では、要素の名前と内容モデルを宣言します。
- 要素の直下の子供要素の構造や、テキストデータの有無などを内容モデルで指定します。