XML構造
ルート要素は文書内でユニークなものでなければならない。NG例
<?xml version="1.0" encoding="utf-8"?>
<book>
<title>abc</title>
</book>
<book>
<title>efg</title>
</book>
ルートエレメント(book)がユニークでないので、XMLパーサがエラーを返してくる:The markup in the document following the root element must be well-formed.<book>
<title>abc</title>
</book>
<book>
<title>efg</title>
</book>
ルートエレメント<books>でまとめればOK。
<?xml version="1.0" encoding="utf-8"?>
<books>
<book>
<title>abc</title>
</book>
<book>
<title>efg</title>
</book>
</books>
<books>
<book>
<title>abc</title>
</book>
<book>
<title>efg</title>
</book>
</books>
DTDの記述
エレメントの宣言を忘れていたりすると、"Element type *** must be declared."といったエラーが返ってくる。特にルートエレメントの宣言忘れに注意。<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE books[
<!ELEMENT books (book)*>
<!ELEMENT book (title)*>
<!ELEMENT title (#PCDATA)>
]>
<books>
<book>
<title>abc</title>
</book>
<book>
<title>efg</title>
</book>
</books>
<!DOCTYPE books[
<!ELEMENT books (book)*>
<!ELEMENT book (title)*>
<!ELEMENT title (#PCDATA)>
]>
<books>
<book>
<title>abc</title>
</book>
<book>
<title>efg</title>
</book>
</books>