修改
我在实施DTD时遇到了麻烦。我的DTD中一直出现错误:
"根元素之前的文档中的标记必须格式正确。"
在我的XML文档中,我收到错误:
"文档类型声明包含或指向的标记声明必须格式正确。"
DTD
<?xml version="1.0" encoding="UTF-8"?>
<!-- New document created with EditiX at Sun Jul 06 07:25:48 AST 2014 -->
<!ELEMENT periodic-elements (periodic-element*)>
<!ELEMENT periodic-element (symbol, name, atomic-number, atomic_weight)>
<!ELEMENT symbol (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT atomic_number (#PCDATA)>
<!ELEMENT atomic_weight (#PCDATA)>
XML
<?xml version="1.0" encoding="UTF-8"?>
<!-- New document created with EditiX at Sun Jul 06 07:25:48 AST 2014 -->
<!DOCTYPE periodic SYSTEM "C:\Users\Randy\Desktop\CMIS 170\Week 3\Homework 3\Homework3DTD.txt">
<periodic>
<element>
<symbol>FE</symbol>
<name>Iron</name>
<atomic_number>26</atomic_number>
<atomic_weight>55.845</atomic_weight>
</element>
<element>
<symbol>Ir</symbol>
<name>Iridium</name>
<atomic_number>77</atomic_number>
<atomic_weight>192.217</atomic_weight>
</element>
<element>
<symbol>P</symbol>
<name>Phosphorus</name>
<atomic_number>15</atomic_number>
<atomic_weight>30.973762</atomic_weight>
</element>
<element>
<symbol>Uut</symbol>
<name>Ununtrium</name>
<atomic_number>113</atomic_number>
<atomic_weight>284</atomic_weight>
</element>
<element>
<symbol>Po</symbol>
<name>Polonium</name>
<atomic_number>84</atomic_number>
<atomic_weight>209</atomic_weight>
</element>
</periodic>
任何帮助都将不胜感激。
答案 0 :(得分:1)
您需要从DTD中删除DOCTYPE声明。
有关更好的解释,请参阅External referenced DTD in XML。
您还需要在XML中的DOCTYPE声明中将elements
更改为periodic
。 DOCTYPE声明中的名称必须与根元素的名称匹配。
修改强>
您的DTD中的姓名和您的XML都不匹配。例如,在您的DTD中,您有periodic-elements
和periodic-element
,但您的XML有periodic
和element
。
此外,您对periodic-element
的声明引用了元素atomic-number
,但您的声明为atomic_number
。
这是一个验证的版本。你应该可以从这开始并随意修改它。
DTD
<?xml version="1.0" encoding="UTF-8"?>
<!-- New document created with EditiX at Sun Jul 06 07:25:48 AST 2014 -->
<!ELEMENT periodic-elements (periodic-element*)>
<!ELEMENT periodic-element (symbol, name, atomic_number, atomic_weight)>
<!ELEMENT symbol (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT atomic_number (#PCDATA)>
<!ELEMENT atomic_weight (#PCDATA)>
<强> XML 强>
<?xml version="1.0" encoding="UTF-8"?>
<!-- New document created with EditiX at Sun Jul 06 07:25:48 AST 2014 -->
<!DOCTYPE periodic-elements SYSTEM "C:\Users\Randy\Desktop\CMIS 170\Week 3\Homework 3\Homework3DTD.txt">
<periodic-elements>
<periodic-element>
<symbol>FE</symbol>
<name>Iron</name>
<atomic_number>26</atomic_number>
<atomic_weight>55.845</atomic_weight>
</periodic-element>
<periodic-element>
<symbol>Ir</symbol>
<name>Iridium</name>
<atomic_number>77</atomic_number>
<atomic_weight>192.217</atomic_weight>
</periodic-element>
<periodic-element>
<symbol>P</symbol>
<name>Phosphorus</name>
<atomic_number>15</atomic_number>
<atomic_weight>30.973762</atomic_weight>
</periodic-element>
<periodic-element>
<symbol>Uut</symbol>
<name>Ununtrium</name>
<atomic_number>113</atomic_number>
<atomic_weight>284</atomic_weight>
</periodic-element>
<periodic-element>
<symbol>Po</symbol>
<name>Polonium</name>
<atomic_number>84</atomic_number>
<atomic_weight>209</atomic_weight>
</periodic-element>
</periodic-elements>