给定引用外部dtd文件,xml文件不报告错误

时间:2017-04-06 14:21:47

标签: xml dtd

我编写了一个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 Element,则不会报告错误。 xml文件和dtd文件位于Eclipse中的相​​同包中。

1 个答案:

答案 0 :(得分:0)

DTD格式不正确。 DOCTYPE声明只应位于XML文档中,而不应位于DTD中。还有一些拼写错误(小写“l”而不是大写“L”;评论中的--!应为!--)。

XML文档验证了这个DTD:

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

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