DTD - 要素
- 前のページ DTD モジュールの構築
- 次のページ 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>
子要素(シーケンス)を持つ要素
1つまたは複数の子要素を持つ要素は、括弧内の子要素名で宣言されます:
<!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)>
1回しか出現しない要素の宣言
<!ELEMENT 元素名称 (子元素名称)>
例:
<!ELEMENT note (message)>
以下の例では、「message」子要素は1回出現し、かつ「note」要素内にしか出現しない必要があります。
少なくとも1回出現する要素の宣言
<!ELEMENT 元素名称 (子元素名称+)>
例:
<!ELEMENT note (message+)>
以下の例では、加号が宣言しています:子要素「message」は「note」要素内で少なくとも1回出現する必要があります。
0回または複数回出現する要素の宣言
<!ELEMENT 元素名称 (子元素名称*)>
例:
<!ELEMENT note (message*)>
以下の例では、星号が宣言しています:子要素「message」は「note」要素内で0回または複数回出現することができます。
0回または1回出現する要素の宣言
<!ELEMENT 元素名称 (子元素名称?)>
例:
<!ELEMENT note (message?)>
以下の例では、問号が宣言しています:子要素「message」は「note」要素内で0回または1回出現することができます。
「非.../既...」型の内容の宣言
例:
<!ELEMENT note (to,from,header,(message|body))>
以下の例では、「note」要素は「to」要素、「from」要素、「header」要素、および「message」要素以外の「body」要素を含む必要があると宣言されています。
組み合わせ型の内容を宣言しています。
例:
<!ELEMENT note (#PCDATA|to|from|header|message)*>
上の例では、「note」要素がPCDATA、「to」、「from」、「header」または「message」を0回もしくは複数回含むことが宣言されています。
- 前のページ DTD モジュールの構築
- 次のページ DTD 属性