DTD - 要素
DTD では、要素は要素宣言によって宣言されます。
要素の宣言
DTD では、XML 元素は要素宣言によって宣言されます。要素宣言は以下の文法を使用します:
<!ELEMENT 元素名称 クラス>
または
<!ELEMENT 元素名称 (元素内容)>
空要素
空要素は、EMPTY キーワードを使って宣言されます:
<!ELEMENT 元素名称 EMPTY>
混合型の内容を宣言する
<!ELEMENT br EMPTY>
XML 例:
<br />
PCDATA のみを持つ要素
PCDATA のみを持つ要素は、括弧内の #PCDATA で宣言されます:
<!ELEMENT 元素名称 (#PCDATA)>
混合型の内容を宣言する
<!ELEMENT from (#PCDATA)>
どんな内容を持つ要素
ANY キーワードを使って宣言された要素は、どんな可解析データの組み合わせも含むことができます:
<!ELEMENT 元素名称 ANY>
混合型の内容を宣言する
<!ELEMENT note ANY>
子要素(シーケンス)を持つ要素
一つまたは複数の子要素を持つ要素は、括弧内の子要素名で宣言されます:
<!ELEMENT 元素名称 (子要素名称 1)>
または
<!ELEMENT 元素名称 (子要素名称 1,子要素名称 2,...)>
混合型の内容を宣言する
<!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)>
一度だけ出現する要素の宣言
<!ELEMENT 元素名称 (子要素名称)>
混合型の内容を宣言する
<!ELEMENT note (message)>
上記の例では、以下のように宣言されています:"message" 子要素は一度だけ出現し、"note" 元素の中で一度だけ出現する必要があります。
最少出現する要素の宣言
混合型の内容を宣言する
<!ELEMENT 元素名称 (子要素名称+)>
<!ELEMENT note (message+)>
上の例の加号は、子要素「message」が「note」要素内に少なくとも一度出现する必要があります。
出現回数が零回または複数回の要素を宣言する
混合型の内容を宣言する
<!ELEMENT 元素名称 (子要素名称*)>
<!ELEMENT note (message*)>
上の例の星号は、子要素「message」が「note」要素内に零回または複数回出现する場合があります。
出現回数が零回または一回の要素を宣言する
混合型の内容を宣言する
<!ELEMENT 元素名称 (子要素名称?)>
<!ELEMENT note (message?)>
上の例の問号は、子要素「message」が「note」要素内に零回または一回出现する場合があります。
混合型の内容を宣言する
「非.../既...」型の内容を宣言する
<!ELEMENT note (to,from,header,(message|body))>
上の例では、「note」要素が「to」要素、「from」要素、「header」要素を含み、非「message」要素であり「body」要素を含む必要があります。
混合型の内容を宣言する
例:
<!ELEMENT note (#PCDATA|to|from|header|message)*>