为什么这样不报错?
<?xml version="1.0" encoding="UTF-8"?> <!ELEMENT hr (employee+)> <!ELEMENT employee (name,age,salary,department)> <!ATTLIST employee no CDATA ""> <!ELEMENT name (#PCDATA)> <!ELEMENT age (#PCDATA)> <!ELEMENT salary (#PCDATA)> <!ELEMENT dname (#PCDATA)> <!ELEMENT address (#PCDATA)>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hr SYSTEM "hr.dtd"> <!-- 人力资源管理系统 --> <!-- XML文件中,所有的标签和属性都是可以自定义的 --> <hr> <employee no="3309"> <name>张三</name> <age>31</age> <salary>4000</salary> <department> <dname>会计部</dname> <address>XX大厦-B103</address> </department> </employee> <employee no="3310"> <name>李四</name> <age>24</age> <salary>3000</salary> <department> <dname>工程部</dname> <address>XX大厦-B104</address> </department> </employee> </hr>
我没有添加department的dtd啊,为什么不报错?
源自:XML入门
2-4 创建DTD文件
6
收起
正在回答
1回答
同学你好。这个xml写的规则是符合这个dtd约束的,所以不报错。在xml中引入<!DOCTYPE hr SYSTEM "hr.dtd">后,eclipse会自动帮我们校验,但是,只会对语法错误做提示。对于没有定义的语法,eclipse不会报错。你没有定义department标签的规则,department标签内的语法编译器就不校验了。
同学的dtd文件中定义了:
<!ELEMENT employee (name,age,salary,department)>
这相当于告诉编译器,employee标签内需要有name,age,salary,department四个子标签,并且按顺序排列。同学的xml显然符合这一点。所以不报错。
如果还有疑问,可以继续提问。如果解答了同学的疑问,望采纳~
祝学习愉快~
从网页搭建入门Java Web2018版
- 参与学习 人
- 提交作业 1088 份
- 解答问题 10205 个
如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星