【问题标题】:XML file and dtd associatedXML 文件和 dtd 关联
【发布时间】:2016-03-04 06:22:27
【问题描述】:

我对一个简单的 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 行: 文档中根元素之后的标记必须格式正确。”

错误在哪里? 你能帮帮我吗?

【问题讨论】:

  • 那么,您觉得我的回答有用吗?

标签: javascript xml dtd


【解决方案1】:

我认为这是因为你的 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2011-06-12
    • 2011-08-21
    相关资源
    最近更新 更多