XML top >>DTD仕様詳細 要素タイプ宣言と内容モデル
■要素タイプ宣言と内容モデル
要素タイプ宣言は、以下4つのモデルに分類されます。
- 要素内容
- 混在内容
- EMPTY内容(空要素)
- ANY内容(任意要素)
以下、各モデルの定義と例を示します。
・要素内容
意味 |
子の要素にデータがなく、要素のみからなる。 |
記述例 |
<!ELEMENT A(B,C*)> |
正しい表記 |
<A>
<B></B>
<C></C>
</A> |
<A>
<B></B>
</A> |
<A>
<B></B>
<C></C>
<C></C>
<C></C>
</A> |
誤りの表記 |
<A>
<C></C>
</A> |
<A>
<B></B>
<B></B>
<C></C>
</A> |
|
・混在内容
意味 |
子の要素がデータと要素からなる。 |
記述例 |
<!ELEMENT A(#PCDATA|B|C)*> |
正しい表記 |
<A>
データ
<B></B>
<C></C>
</A> |
<A>
<B></B>
<C></C>
データ
<B></B>
<C></C>
</A> |
<A></A> |
誤りの表記 |
--- |
|
|
※「(A|B)*」というような内容モデルの指定は、どのような順番で、何回A,Bを書いても(書かなくても)良いことを意味する。
・EMPTY内容
意味 |
要素を持たない要素宣言。 |
記述例 |
<!ELEMENT A EMPTY> |
正しい表記 |
<A/> |
<A></A> |
|
誤りの表記 |
<A>データ</A> |
|
|
・ANY内容
意味 |
どのような記述でも良い。 |
記述例 |
<!ELEMENT A ANY> |
正しい表記 |
--- |
|
|
誤りの表記 |
--- |
|
|
※B要素、C要素の定義がされている場合、<!ELEMENT A ANY>の記述は、
<!ELEMENT A(#PCDATA|B|C)*>の記述と等しい。
戻る 進む
|