使用W3C XML Schema(6)

本文介绍了W3C XML Schema中的约束特性,包括唯一性约束(unique)、键约束(key)及键引用约束(keyref),并提供了如何使用这些约束确保XML文档一致性和完整性的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

约束

Unique

W3C XML Schema 提供了几种灵活的基于XPath的特性,其描述了唯一性约束和一致性引用约束。首先,一个简单的唯一性声明,使用xs:unique元素进行声明。下面的声明建立在我们的book元素的名称必须唯一的前提下:

<xs:unique name="charName"> 
<xs:selector xpath="character"/> 
<xs:field xpath="name"/> 
</xs:unique> 

xs:unique 元素在schema中的位置,给出了内容节点,其中包括了约束。靠在book元素插入xs:unique,我们指定了在全文中此book名称必须唯一。

唯一性约束中定义的两个XPath 相对符合内容节点。第一个使用selector元素定义,目的是定义拥有该唯一性约束的元素——selector指向的节点必须是一个元素节点。

第二个路径,在xs:field元素中定义的,是相对于xs:selector所标识的元素,其可以是一个元素或者一个属性节点。这就是一个其值将会被检查唯一性的节点。组合值可以通过在xs:unique中添加另外的xs:field元素来实现。

Key

第二个结构,xs:key,和xs:unique类似,除了其值不能为null(注意xs:unique和xs:key都可以被引用)。要使用一个字符串名称作为一个key,我们可以通过使用xs:key替换xs:unique实现。

<xs:key name="charName"> 
<xs:selector xpath="character"/> 
<xs:field xpath="name"/> 
</xs:key> 

Keyref

第三个结构,xs:keyref,允许我们的那个有一个到xs:key或xs:unique的引用。要显示它的用法,我们将介绍friend-of 元素,将会针对字符串使用。

<character> 
<name>Snoopy</name> 
<friend-of>Peppermint Patty</friend-of> 
<since>1950-10-04</since> 
<qualification> 
extroverted beagle 
</qualification> 
</character>

为了显示friend-of需要从同一本书参考一个字符,我们将会写,在同一个层次我们定义一个key约束,如下:

<xs:keyref name="charNameRef" refer="charName">
  
<xs:selector xpath="character"/>
  
<xs:field xpath="friend-of"/>
</xs:keyref>

 

这些功能基本独立于schema中的其他特性。它们从数据类型的定义中断开。唯一固定它们到schema的是它们被定义的位置,其中确定唯一性约束的范围。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值