DTD - 要素
要素は、DTDのELEMENT宣言で宣言します。
要素宣言
DTDにおいて、次の構文からなる要素宣言によりXML要素を宣言します:
<!ELEMENT element-name category>
または
<!ELEMENT element-name (element-content)> |
空要素
空要素は、カテゴリ・キーワードEMPTYで宣言します:
<!ELEMENT element-name EMPTY>
例:
<!ELEMENT br EMPTY>
XML 例:
<br /> |
構文解析済文字データを持つ要素
構文解析済文字データだけを持つ要素は、括弧の中へ#PCDATAを宣言します:
<!ELEMENT element-name (#PCDATA)>
例:
<!ELEMENT from (#PCDATA)> |
任意の内容を持つ要素
カテゴリ・キーワードANYにより宣言された要素は、パース可能データの任意な組み合わを含むことができます:
<!ELEMENT element-name ANY>
例:
<!ELEMENT note ANY> |
子(シーケンス)を持つ要素
1つ以上の子を持つ要素は、括弧内の子要素の名前により宣言します:
<!ELEMENT element-name (child1)>
または
<!ELEMENT element-name (child1,child2,...)>
例:
<!ELEMENT note (to,from,heading,body)> |
子をカンマ区切りで順番に宣言すると、子は文書に同じ順序で出現しなければなりません。
全ての宣言には、子も宣言しなければなりませんし、子は子も持つことができます。
"note"要素の全宣言は以下の通りです:
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)> |
要素が1回だけ発生することの宣言
<!ELEMENT element-name (child-name)>
例:
<!ELEMENT note (message)> |
上記の例は、子要素"message"が1回、そして1度だけ"note"要素に
出現しなければならないことを宣言しています。/p>
要素が最低限1回発生することを宣言
<!ELEMENT element-name (child-name+)>
例:
<!ELEMENT note (message+)> |
上記例の + サインは、子要素"message" が1回以上"note"要素に
出現しなければならないことを宣言します。
要素が0回以上発生することを宣言
<!ELEMENT element-name (child-name*)>
例:
<!ELEMENT note (message*)> |
上記例の * サインは、子要素"message"が0回以上"note"要素に出現できることを宣言します。
要素が0回または1回発生することを宣言
<!ELEMENT element-name (child-name?)>
Example:
<!ELEMENT note (message?)> |
上記例の ? サインは、子要素"message"が0回または1回、
"note"要素に出現できることを宣言します。
どちらかの内容が発生することを宣言
例:
<!ELEMENT note (to,from,header,(message|body))> |
上記例は、"note"要素が"to"要素、"from"要素、"header"、および"message"または "body"要素のどちらかを含まなければならないことを宣言しています。
混在した内容の宣言
例:
<!ELEMENT note (#PCDATA|to|from|header|message)*> |
上記例は、"note"要素がパース済の文字データ、"to"、 "from"、"header"、または"message" 要素が0回以上出現できることを宣言します。
|