DTDで指定するXML文書の構造
DTDによるXML文書構造の記述方法の紹介.
先述したが,<!ELEMENT distribution (debian,redhat)>がdistribution要素の内容には,debian要素とredhato要素が順に現れることを意味する.また,これも先述したが,<!ELEMENT debian (#PCDATA)>は,debian要素の内容はテキストデータが現れることを意味する.これらと同様にして,DTDでは要素の出現順序や出現回数などのXML文書の構造をいろいろ指定できる.
- <!ELEMENT 要素名 (内容)>
- 要素名に表される要素の内容は()内に一致する.内容がテキストの時,内容は#PCDATAとなる.
- <!ELEMENT 要素名 (A,B,C)>
- <!ELEMENT 要素名 (A|B|C)>
- この内容は複数指定することができる.この複数の内容を「,」で区切ればそれらの内容はその順番で出現する.「|」で区切ればいずれかが出現する.「|」で区切れた内容が同時に出現することはない.
- <!ELEMENT 要素名 (A+)>
- <!ELEMENT 要素名 (A?,B)>
- 内容の後に+を付けるとその内容が一回以上出現する.?を付けるとその内容が0または1回出現する.*を付けると0回以上出現する.そして何も付けないと一回出現する.この辺は正規表現を彷彿する.
- <!ELEMENT A (B|C)*>
- 正規表現を彷彿したところで応用.上の例だと,要素Aの内容に「BまたはC」が0回以上出現する.だから,Aの内容にBCCCCBBCなんて出現するのもアリ.
- <!ELEMENT A EMPTY>
- この場合,Aの内容は空である.つまりこのAは空要素である.
- <!ELEMENT A ANY>
- この場合,Aの内容はなんでもよい.

