要素型宣言


要素を定義する

XML 文書の要素は、HTML と異なり、デフォルトでは何も設定されていません
そこで、XML 文書の要素を定義するのが要素型宣言です

全ての要素型宣言は、DTD の内部で <!ELEMENT で始まり > で終わります
XML は大文字と小文字を区別しますが、DTD も例外ではありません
ここで指定する文字は、大文字と小文字を区別するため、ELEMENT も大文字でなければなりません

ELEMENT の次のトークンに、宣言する要素名を指定し
要素名の次には、内容記述が含まれます
この内容記述によって、要素の性質が決定されます

<!ELEMENT 要素名 内容記述>

これが、一般的な DTD の要素型宣言です

一般に、ルート要素には ANY キーワードを用います
ANY は、考えられる全ての要素と文字でータを含むことができる要素を表します
ルート要素に ANY を指定すれば、その要素はあらゆる子要素を持つことができ
解析対象文字データを含むこともできるということを意味します
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE object [
	<!ELEMENT object ANY>
]>
<object>
	Kitty on your lap
</object>
この XML 文書は、DTD にしたがった妥当な文書です
DTD で、object がルート要素であり、全ての文字データを含むことができることを表しています

要素がマーク付けではない、解析対象文字でータを含む場合
すなわち、テキストだけを含む要素を宣言する場合は #PCDATA を使います
#PCDATA を指定する場合は (#PCDATA) というように、これを囲みます
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE object [
	<!ELEMENT object ANY>
	<!ELEMENT title (#PCDATA)>
]>
<object>
	<title>Kitty on your lap</title>
</object>
この XML の DTD には、title 要素がテキストを含むことを宣言しています
object ルート要素は、全ての子要素を持つことができるため、この文書は妥当です



前のページへ戻る次のページへ