xml 文件不报错,给出引用外部dtd文件

xml file does not report error, given a reference external dtd file

我写了一个dtd文件来规范一个xml文件,但是按照dtd文件中的定义写错了,没发现Eclipse导出的任何错误。我对这两个文件进行了多次审查,但自己没有发现错误。下面是 2 个简单的文件。任何人都可以帮助弄清楚我遗漏了什么或没有报告错误的原因吗?提前致谢。

这是dtd文件,

<?xml version="1.0" encoding="UTF-8"?>
<--!no classNo or one classNo at most, at least one teacher-->
<!DOCTYPE school [
    <!ELEMENT school (class)>
    <!ELEMENT class (classNo?,teacher+)>
    <!ElEMENT classNo (#PCDATA)> 
    <!ElEMENT teacher (#PCDATA)>
]>

这是 xml 文件,

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE school SYSTEM "Teacher.dtd">

<school>
    <class>
        <classNo>Class 3</classNo>
        <teacher>Mary</teacher>
    </class>
</school>

如果我再添加一个classNo元素,没有报错。 xml文件和dtd文件在Eclipse中是同一个包。

DTD 格式错误。 DOCTYPE 声明只应在 XML 文档中,而不应在 DTD 中。还有几个错别字(小写"l"而不是大写"L";评论中的--!应该是!--)。

XML 文档根据此 DTD 进行验证:

<!ELEMENT school (class)>
<!ELEMENT class (classNo?,teacher+)>
<!ELEMENT classNo (#PCDATA)> 
<!ELEMENT teacher (#PCDATA)>

当然,您还必须确保在 Eclipse 中启用了验证(假设安装了 XML 编辑器和工具)。