XML知识点滴(9)

XML知识点滴(9)

(引用文章,版权归作者,如需删除请联系我)

记号声明

n         在现实中,有许多数据都无法用XML来表示的,例如:声音、图像、影像等,对于这些数据,XML处理器通常不支持。

n         通过DTD中的记号申明(notation declaration),为非 XML数据描述一种可能的格式,或者指定一个外部的程序。

n         记号声明有两种形式,一种是使用MIME类型,形式如下:

       <!NOTATION gif SYSTEM “image/gif”>

       另一种是使用URI路径,指出外部处理程序的位置,如下:

       <!NOTATION gif SYSTEM “iexplore.exe”>

n         对于记号的声明,也可以使用PUBLIC关键字来代替SYSTEM关键字,并添加公共的名称和URI(用法类似于使用了关键字PUBLIC的外部DTD声明)。

 

有效的XML

n         一个遵守XML语法规则,并遵守相应DTD文件约束的XML文档称为有效的XML文档。

n         注意区分格式良好的XML和有效的XML,一个只要求遵循XML规范,一个不但要遵循XML规范,还要遵循相应的DTD约束。

n         XML文档和它的DTD文件进行比较分析,看是否符合DTD规则的过程叫验证(validation),这个过程通常是通过一个支持有效性检查的XML处理器来完成的。

 

XML处理器/解释器

n         合乎规范的XML处理器可以分为两类:进行验证和不进行验证的。

n         不支持有效性检查的处理器

这一类处理器只负责检查XML文档和它内部的DTD子集是否满足“格式良好的”语法规定。这类处理器不会对XML文档所引用的外部DTD文档进行分析、进而检查XML文档的有效性,但对于出现在文档内部的DTD子集,仍旧需要处理在内部DTD子集和参数实体中读到的所有声明,直到发现第一个对它们没有读取到的参数实体引用。也就是说,这类处理器必须使用DTD声明中的信息来规范属性的值,包含内部实体的替换文本,以及提供缺省的属性值。

n         支持有效性检查的处理器

这一类处理器在检查文档是否符合“格式良好的”基本要求的基础上,进一步结合DTD检查文档是否符合DTD中对文档结构的规定,判定这个文档是否是“有效的”。处理器必须读取和处理整个DTD和文档中引用的所有外部已分析实体。并报告出文档与DTD声明相冲突的地方,以及不满足DTD有效性约束的地方。

无论是哪一类处理器,都要报告文档实体的内容中和其它读取到的已分析实体中与XML标准的“格式良好的”文档定义相冲突的地方。

支持对XML文档进行有效性检查的XML处理器有:

1)        ApacheXercess

              XercesApacheXML项目的一部分,它分别使用JaveC++Perl编写了XML的处理器,支持有效性检查。Xerces是一个开放源代码的XML处理器,有关该处理器的详细介绍请参看网页:

              http://xml.apache.org/xercess-j/index.html

2)        Oracle XML Parser

Oracle XML Parser是在Oracle XDKXML Developers Kit)中提供的。XDKOracle公司提供的基于XML的工具包,可以用于JaveC++PL/SQLOracle XDK一个商业化软件,并非开源代码产品。Oracle公司发布了只用于开发的许可证,允许    你将此软件用于开发的目的。可以从下面的网页查看XDK的信息:http://www.oracle.com/technology/tech/xml/xdkhome.html

n         XML处理器位于XML数据与使用XML数据的应用程序之间,它通过标准的API来向应用程序提供数据。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值