使用W3C XML Schema(6)

约束

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的是它们被定义的位置,其中确定唯一性约束的范围。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值