我编写了一个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中的相同包中。
答案 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编辑器和工具)。