19、XML Schema验证与面向对象实现的深入剖析

XML Schema验证与面向对象实现的深入剖析

1. XML Schema之外的验证

在XML处理中,存在多种模式定义语言,各有优劣。常见的有DTD(传统方式)、“面向对象”的XML Schema以及基于语法的Relax NG。

DTD虽然是传统的模式定义语言,但它无法处理命名空间;XML Schema和Relax NG则不涵盖外部实体,所以许多应用仍需继续使用DTD。Relax NG没有默认值和固定值的概念,在交叉引用方面依赖DTD逻辑。

在实现语义约束方面,有多种技术可供选择,其中Schematron是一种基于断言的模式语言。它允许我们不仅检查文档是否有效,还能检查其是否有意义,这在迈向语义网的过程中至关重要。

文档解析过程可细分为多个明确的小任务,大多数解析器会处理其中的几个步骤。例如,Sun Microsystem的多模式验证器加上Schematron插件可以完成所有任务,但在其他情况下,可能需要将文档通过多个解析器和处理过程,并合并这些过程的输出。

以下是一个Relax NG的示例代码:

</rng'start> 
<!--Asset track--> 
<rng" i ncl ude href="track_type, rng"/> 
<rng-define name="track"> 
<rng'el ement name="track"> 
<rng. ref name="track_type"/> 
</rng .el ement> 
</rng.defin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值