妥当な文書

wrote2007.06.27

妥当な文書(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文書本体
&実体名;