XMLDTD约束和DTD校验(Document Type Definition,DTD,文档类型定义)

XML技术里,可以编写一个文档来约束另一个XML文档的书写规范,这称之为XML约束。

需要这个XML约束技术,因为框架的作者一般要用XML配置文件规定XML的书写规范,否则可能影响程序运行。

常用的约束技术有两个:

XML DTD

XML Schema

一、DTD

DTD(Document Type Definition,文档类型定义)

比如,在一个XML文档之前的文档声明里有这样的语句:

<!DOCTYPE 书架 SYSTEM "book.dtd">

这里规定了文档类型定义来自名为book.dtd的文件。

假设book.dtd:

<!ELEMENT 书架(书+)>
    <!ELEMENT 书(书名,作者,售价)>
    <!ELEMENT 书名(#PCDATA)>
    <!ELEMENT 作者(#PCDATA)>
    <!ELEMENT 售价(#PCDATA)>

这里面ELEMENT(元素/标签)规定了一个标签叫书架的标签,里面可以放一本或多本书,所以是(书+),书里面可以放(书名、作者、售价),PCDATA意思是parse character data,可解析的字符,即是字符串,也就是规定了这个书名、作者、售价标签里面的元素只能是字符串了。

因此在实际的一个XML文档里:

<!DOCTYPE 书架 SYSTEM "book.dtd">
<书架>
    <书>
    <书名>java</书名>
    <作者>哈哈</作者>
    <售价>20</售价>
    </书>
</书架>

这样写就是符合了book.dtd的规定。

二、DTD校验

但是如果不按照book.dtd的规定,多写进其他元素,用浏览器也会正常打开,也就是说那句规定DOCTYPE是自己定义的某个文件的声明语句,被忽视了。

那么如果我们想要检查XML文档是不是正确按照固定书写了,怎么办?

可以编程来进行校验,IE5以上浏览器内置了XML解析工具,Microsoft.XMLDOM,开发人员可以编写javascript代码,利用这个解析工具装载xml文件,并对xml文件进行dtd验证。(几乎不用了,因为太麻烦)

我们在用eclipse进行开发的时候,就可以对XML进行DTD校验,把dtd文件和XML文件都放到workspace里,如果不符合规定,本身就会报错。

三、编写DTD约束(写框架时用)

一般情况下,是不会用到编写DTD的,只有在自己写一个框架的时候才会需要约束其他XML文档的内容。(这部分之后再看,在方立勋的web教程day2-3的4-5视频)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值