我使用XML Spy 查看我编写的XML和DTD的时候,总是报告 根元素 books 跟DTD中的申明不匹配,我错在哪里?
以下时我的DTD和XMLDTD 定义<?xml version="1.0" encoding="GB2312"?>
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by xmlspy (xmlspy) -->
<!ELEMENT books (book+)>
<!ELEMENT book (author, title, price)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT price (#PCDATA)>具体数据XML
<?xml version="1.0"?>
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by xmlspy (xmlspy) -->
<!DOCTYPE book SYSTEM "C:\Documents and Settings\Xml\book.dtd">
<books>
<book>
<author>Nigel Rees</author>
<title>Saying of the Century</title>
<price>12.56</price>
</book>
<book>
<author>Evelyn Waugh</author>
<title>Sword of Honour</title>
<price>234.3</price>
</book>
</books>
以下时我的DTD和XMLDTD 定义<?xml version="1.0" encoding="GB2312"?>
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by xmlspy (xmlspy) -->
<!ELEMENT books (book+)>
<!ELEMENT book (author, title, price)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT price (#PCDATA)>具体数据XML
<?xml version="1.0"?>
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by xmlspy (xmlspy) -->
<!DOCTYPE book SYSTEM "C:\Documents and Settings\Xml\book.dtd">
<books>
<book>
<author>Nigel Rees</author>
<title>Saying of the Century</title>
<price>12.56</price>
</book>
<book>
<author>Evelyn Waugh</author>
<title>Sword of Honour</title>
<price>234.3</price>
</book>
</books>
2.单属性标签的定义错误,无子结点的标签不用
“<TagName Prop1=Value1 Prop2=Value2> </TagName>”
的形式时,应该用以下形式
“<TagName Prop1=Value1 Prop2=Value2 />”
<?xml version="1.0" encoding="UTF-8"?><bookshell>
<books>
<book>
<author>Du Peng Chao</author>
<title>Today Story</title>
<price>324.43</price>
</book>
<book>
<author>Zhang Jing</author>
<title>Love Me</title>
<price>2345.34</price>
</book>
<book>
<author>Zhou Yu Feng</author>
<title>Football Money</title>
<price>32.43</price>
</book>
<book>
<author>Lin Feng</author>
<title>Beautiful Girl</title>
<price>23.45</price>
</book>
</books>
</bookshell>不知道这个的DTD写出来是什么样子?
<!ELEMENT books (book+)>
<!ELEMENT book (author, title, price)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
除了这一点,似乎其他的都一样了,但原来的文件还是提示有问题
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by xmlspy (xmlspy) -->
<!DOCTYPE book SYSTEM "C:\Documents and Settings\Xml\book.dtd">
这一句表明根结点应该是book,而下面的实际根结点却不是。改成
<!DOCTYPE books SYSTEM "C:\Documents and Settings\Xml\book.dtd">
应该就好了