【问题标题】:The DTD for the following XML gives error以下 XML 的 DTD 给出错误
【发布时间】:2017-03-23 19:22:54
【问题描述】:
At a school, there are many classes and the following elements are identified.
  • 有一位校长,他有姓名、年龄和地址
  • 每个班级都有一位班主任
  • 每个班主任都持有以下信息

    • 类号
    • Teacher_Details
    • Number_of_students
  • Teacher_details 部分包含以下信息

    • 教师姓名
    • DoB

    问题是上述信息的DTD文件

我使用VS 2008创建了XML和DTD。但是DTD的第一行有错误。

<!DOCTYPE school [
  <!ELEMENT school (principal|ClassTeacher)*>
  <!ELEMENT principal (name,age,address)>
  <!ELEMENT name    (#PCDATA)>
  <!ELEMENT age     (#PCDATA)>
  <!ELEMENT address  (#PCDATA)>
  <!ELEMENT ClassTeacher (cno,td*,nos)>
  <!ELEMENT cno   (#PCDATA)>
  <!ELEMENT td (name,dob)>
  <!ELEMENT name (#PCDATA)>
  <!ELEMENT dob (#PCDATA)>
  <!ELEMENT nos (#PCDATA)>
]>

<school>
  <principal>
    <name>sdasd</name>
    <age>456</age>
    <address>jhkh</address>
  </principal>

  <ClassTeacher>
    <cno>456</cno>
    <td>
      <name>gyj</name>
      <dob>fgd</dob>
    </td>
    <nos>45</nos>
  </ClassTeacher>
</school>

【问题讨论】:

    标签: xml validation dtd


    【解决方案1】:

    主要问题

    主要问题是您声明了两次name。删除其中一个声明以修复直接错误。

    其他问题

    <!ELEMENT school (principal|ClassTeacher)*>
    

    这是“元素内容”声明的“选择列表”,这意味着school 可以有多个principal 或多个ClassTeacher 子级,但不能同时拥有。见Element Type Declarations

    试试

    <!ELEMENT school (principal, ClassTeacher*)>
    

    这将要求principal 是第一个元素,后跟任意数量(包括零)的ClassTeacher 元素。

    【讨论】:

    • 您是否删除了重复的定义?它在 Oxygen/XML 中对我有用。
    猜你喜欢
    • 2012-12-24
    • 1970-01-01
    • 2013-02-08
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    • 2011-05-11
    • 2015-05-13
    相关资源
    最近更新 更多