XML 文件和dtd关联
XML file and dtd associated
我有一个简单的 xml 文件练习有问题。
这是名为 "Newfile.xml"
的 XML 文件
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="students.xsl"?>
<!DOCTYPE students SYSTEM "student.dtd">
<student id="100026">
<name>Joe Average</name>
<age>21</age>
<major>Biology</major>
<results>
<result course="Math 101" grade="C-"/>
<result course="Biology 101" grade="C+"/>
<result course="Statistics 101" grade="D"/>
</results>
</student>
<student id="100078">
<name>Jack Doe</name>
<age>18</age>
<major>Physics</major>
<major>XML Science</major>
<results>
<result course="Math 101" grade="A"/>
<result course="XML 101" grade="A-"/>
<result course="Physics 101" grade="B+"/>
<result course="XML 102" grade="A"/>
</results>
</student>
</students>
这是名为 "student.dtd" 的相关 dtd 文件,放在同一目录中
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT students (student+)>
<!ELEMENT student (name,age,major,results)>
<!ATTLIST student id CDATA #REQUIRED>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT major (#PCDATA)>
<!ELEMENT results (result+)>
<!-- <!ELEMENT result (grade,course)> -->
<!ELEMENT result (#PCDATA)>
<!ATTLIST result grade CDATA #REQUIRED>
<!ATTLIST result course CDATA #REQUIRED>
当我尝试使用 Eclipse 运行 Newfile.xml 时,它说:
“错误第 14 行:
文档中跟在根元素之后的标记必须格式正确。"
哪里出错了?
你能帮帮我吗?
我认为这是因为你的 XML 格式不正确 - 你有一个 student
元素的开始和结束标记,然后另一个 student
元素也是如此,并且然后你有 结束标签 students
元素。
但是您没有 students
元素的开始标记。
顺便说一下,您在第二个 student
元素中也有 2 个 major
元素,但是您的 DTD 指定只允许有 1 个 major
元素。
尝试以下操作,根据您的 DTD 是有效的:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="students.xsl"?>
<!DOCTYPE students SYSTEM "student.dtd">
<students>
<student id="100026">
<name>Joe Average</name>
<age>21</age>
<major>Biology</major>
<results>
<result course="Math 101" grade="C-"/>
<result course="Biology 101" grade="C+"/>
<result course="Statistics 101" grade="D"/>
</results>
</student>
<student id="100078">
<name>Jack Doe</name>
<age>18</age>
<major>Physics</major>
<results>
<result course="Math 101" grade="A"/>
<result course="XML 101" grade="A-"/>
<result course="Physics 101" grade="B+"/>
<result course="XML 102" grade="A"/>
</results>
</student>
</students>
我有一个简单的 xml 文件练习有问题。 这是名为 "Newfile.xml"
的 XML 文件<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="students.xsl"?>
<!DOCTYPE students SYSTEM "student.dtd">
<student id="100026">
<name>Joe Average</name>
<age>21</age>
<major>Biology</major>
<results>
<result course="Math 101" grade="C-"/>
<result course="Biology 101" grade="C+"/>
<result course="Statistics 101" grade="D"/>
</results>
</student>
<student id="100078">
<name>Jack Doe</name>
<age>18</age>
<major>Physics</major>
<major>XML Science</major>
<results>
<result course="Math 101" grade="A"/>
<result course="XML 101" grade="A-"/>
<result course="Physics 101" grade="B+"/>
<result course="XML 102" grade="A"/>
</results>
</student>
</students>
这是名为 "student.dtd" 的相关 dtd 文件,放在同一目录中
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT students (student+)>
<!ELEMENT student (name,age,major,results)>
<!ATTLIST student id CDATA #REQUIRED>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT major (#PCDATA)>
<!ELEMENT results (result+)>
<!-- <!ELEMENT result (grade,course)> -->
<!ELEMENT result (#PCDATA)>
<!ATTLIST result grade CDATA #REQUIRED>
<!ATTLIST result course CDATA #REQUIRED>
当我尝试使用 Eclipse 运行 Newfile.xml 时,它说: “错误第 14 行: 文档中跟在根元素之后的标记必须格式正确。"
哪里出错了? 你能帮帮我吗?
我认为这是因为你的 XML 格式不正确 - 你有一个 student
元素的开始和结束标记,然后另一个 student
元素也是如此,并且然后你有 结束标签 students
元素。
但是您没有 students
元素的开始标记。
顺便说一下,您在第二个 student
元素中也有 2 个 major
元素,但是您的 DTD 指定只允许有 1 个 major
元素。
尝试以下操作,根据您的 DTD 是有效的:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="students.xsl"?>
<!DOCTYPE students SYSTEM "student.dtd">
<students>
<student id="100026">
<name>Joe Average</name>
<age>21</age>
<major>Biology</major>
<results>
<result course="Math 101" grade="C-"/>
<result course="Biology 101" grade="C+"/>
<result course="Statistics 101" grade="D"/>
</results>
</student>
<student id="100078">
<name>Jack Doe</name>
<age>18</age>
<major>Physics</major>
<results>
<result course="Math 101" grade="A"/>
<result course="XML 101" grade="A-"/>
<result course="Physics 101" grade="B+"/>
<result course="XML 102" grade="A"/>
</results>
</student>
</students>