WWW INFOMATION | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
XML top >>DTD仕様詳細 要素タイプ宣言
■要素タイプ宣言 (Element type Declaration)
要素タイプ宣言とは、各要素がどのような内容で構成されるかを定義するものです。例えば、EX要素が、データとA要素、B要素をその内容に持つ場合、以下のように定義します。
<!ELEMENT EX (#PCDATA,A,B)>
#PCDATAは、データを持つことを、A,BはA,Bという要素を持つことを示します。
内容モデルには、内容の順序と内容の出現数を設定します。 ・内容の順序
内容モデルにて内容の順序を示す方法は以下の2種類あります。
<!ELEMENT EX (A,B)>
のDTD定義をした場合、
<EX>
<A></A> <B></B> </EX> はOKですが、下2つの例はNGとなります。
<!-- 出現順序が異なる -->
<EX> <B></B> <A></A> </EX>
<!-- B要素が出現しない -->
<EX> <A></A> </EX> 2の'|'で区切った場合、指定された要素のいずれかが、出現しなくてはいけません。 <!ELEMENT EX (A|B)>
とDTDに定義した場合、
<EX>
<A></A> </EX> や、
<EX>
<B></B> </EX> は、正しい表記となりますが、以下の表記はNGとなります。
<!-- A、Bどちらも出現している -->
<EX> <A></A> <B></B> </EX> また、区切りの方法に関わらず、要素が内容を持つ場合内容モデルの先頭に#PCDATAを付属させます。
<!ELEMENT EX (#PCDATA|A|B)>
OR <!ELEMENT EX (#PCDATA,A,B)> ・内容の出現数
要素タイプ宣言では、子要素の出現数を定義することができます。
子要素の要素名の横に出現数を意味する記号をつけることにより、出現数を定義します。 <!ELEMENT EX (A?,B+)>
上の例では、EXの子要素Aは、0回、もしくは1回出現し、Bは必ず1回以上出現することを意味します。下の例では、EXの子要素A、Bともに何回でも出現してよい事になります。(括弧の横に記号をつけることにより、括弧内の全ての要素の出現順序を決めます。) <!ELEMENT EX (A|B)*>
出現数を定義する記号と意味は以下のようになります。
各記号を設定した場合の正しいXML表記と間違ったXML表記を以下に示します。
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||