为什么这样不报错?
1 2 3 4 5 6 7 8 9 | <? 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)> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <? 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文件中定义了:
1 | <!ELEMENT employee (name,age,salary,department)> |
这相当于告诉编译器,employee标签内需要有name,age,salary,department四个子标签,并且按顺序排列。同学的xml显然符合这一点。所以不报错。
如果还有疑问,可以继续提问。如果解答了同学的疑问,望采纳~
祝学习愉快~
从网页搭建入门Java Web2018版
- 参与学习 人
- 提交作业 1088 份
- 解答问题 10204 个
如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧