妥当な文書(valid XML document)とは、整形式文書の規則を守り、かつタグの取り決めを守っている文書。
文書型定義(DTD:Document Type Definition)
xml宣言した後に記述する。
文書型宣言(document type declaration)構文
<!DOCTYPE ルート要素名[
・・・ここでxml文書の構造を取り決める
]>
要素型宣言(element type declaration)構文
要素型宣言で要素の出現順序や出現回数を指定できる。
<!ELEMENT 要素名この要素の内容は・・・(内容モデル)この「内容モデル」で指定される>
<!ELEMENT 要素名(要素名1,要素名2,・・・)>順番に出現するときの指定
<!ELEMENT 要素名(要素名1|要素名2|・・・)>いずれかが出現するときの指定
記号 | 内容 |
---|---|
(無指定) | 1回だけ出現する |
+ | 1回以上出現する |
? | 0回または1回出現する |
* | 0回以上出現する |
<!ELEMENT 要素名(#PCDATA|要素名1|要素名2|・・・)*>要素とテキストの両方を内容に含むときの指定
<!ELEMENT 要素名 EMPTY>空要素(要素やテキストを記述できない)指定
<!ELEMENT 要素名 ANY>どのようなものでもよい指定
属性リスト宣言(attribute-list declaration)構文
<!ATTLIST 要素名 属性名1 属性値についての指定>
<!ATTLIST 要素名 属性名2 属性値についての指定>
・・・
<!ATTLIST 要素名 属性名 属性値の候補 デフォルトの指定>
指定方法 | 内容 |
---|---|
(値1|値2|・・・) | 縦棒(|)で区切った値のいずれかを使用 |
CDATA | 文字データである値を使用 |
ID | xml文書の本体部分でただ1つとなる値を使用する(ただし1文字目に数字などを使えない) |
IDREF、IDREFS | ID型となる値を使用する |
NMTOKEN、NMTOKENS | 名前トークン(1文字目に数字を使える)という値を使用する |
ENTITY、ENTITIES | 実体名である値を使用する |
指定方法 | 内容 |
---|---|
#REQUIRED | 必ず属性を指定しなければならない |
#IMPLIED | 属性を省略できる |
“値” | 省略した場合には、この値をとる |
#FIXED “固定値” | 属性値は必ず固定値でなければならない |
実体宣言(entity declarations)
<!ENTITY 実体名 "文字列">
xml文書本体
&実体名;