DTDでは、要素が要素宣言で宣言されています。
要素の宣言
DTDでは、XML要素は次の構文で宣言されています:
<!ELEMENT element-name category>
or
<!ELEMENT element-name (element-content)>
空要素
空の要素は、EMPTYカテゴリキーワードで宣言されています。
<!ELEMENT element-name EMPTY>
Example:
<!ELEMENT br EMPTY>
XML example:
<br />
解析された文字データを持つ要素
のみ解析された文字データを持つ要素は、括弧内の#PCDATAで宣言されています:
<!ELEMENT element-name (#PCDATA)>
Example:
<!ELEMENT from (#PCDATA)>
任意の内容を持つ要素
ANY、解析可能なデータの任意の組み合わせを含めることができ、カテゴリキーワードで宣言された要素:
<!ELEMENT element-name ANY>
Example:
<!ELEMENT note ANY>
子供を持つ要素(sequences)
一つ以上の子を持つ要素は、括弧内の子要素の名前で宣言されます。
<!ELEMENT element-name (child1)>
or
<!ELEMENT element-name (child1,child2,...)>
Example:
<!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)>
Example:
<!ELEMENT note (message)>
上記の例では、子要素ことを宣言し"message" 、一度発生すると、一度だけの内側になければならない"note"の要素。
要素の宣言最低一つの発生
<!ELEMENT element-name (child-name+)>
Example:
<!ELEMENT note (message+)>
+上記の例で署名子要素ことを宣言し"message"内部に1回以上出現しなければならない"note"の要素。
要素の0回以上の繰り返しを宣言
<!ELEMENT element-name (child-name*)>
Example:
<!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" 、要素が解析された文字データの0回以上の繰り返しを含むことができます"to" 、 "from" 、 "header" 、または"message"の要素を。