学习笔记——XML Schema自定义数据类型(续)

阻止派生新的简单类型

 

Schema通过使用<simpleType.../>元素的可选final属性和<schema.../>的finalDefault属性的值来限制派生新的类型。

final和finalDefault可接受如下值:

1:#all:阻止该类型的任何形式派生。

2:restriction、list、union的任意组合:阻止相对应的派生方式。

3:"":默认方式,final的默认方式是<schema.../>的finalDefault属性的值,finalDefault的默认方式是不限制派生。

 

Schema通过使用<complexType.../>元素的可选final属性和<schema.../>的finalDefault属性的值来限制派生新的类型。

1:#all:阻止该类型的任何形式派生。

2:extension和restriction的任意组合:阻止相对应的派生方式。

 

Schema可用过使用fixed属性来阻止相应的值被修改。

当fixed=true时,阻止生效。

 

合并多个Schema

 

Schema提供了3种方式来合并多个Schema:

1:使用<include.../>:必填属性schemaLocation:指定Schema的位置,可选属性id;

2:使用<redefine.../>:是<include.../>的增强版,额外增加了重定义Schema组件的功能;

3:使用<import.../>:必填属性schemaLocation,可选属性namespace,可选属性id。

 

<include.../>使用注意事项:

1:必需作为<schema.../>的子元素使用。

2:必须放在<schema.../>的开头,但<import.../>、<redefine.../>、<annotation.../>除外。

3:使用<include.../>包含进来的文件要么没有命名空间,要么命名空间与当前文件命名空间相同

 

<redefine.../>使用注意事项:

1:只能基于已有的组件增加限制(使用<restriction.../>)或增加扩展(使用<extension.../>)。

2:增加限制时只能缩小限制范围,不可违反原类型的约束。

 

<import>使用注意事项:

1:必需作为<schema.../>的子元素使用。

2:必须放在<schema.../>的开头,但include.../>、<redefine.../>、<annotation.../>除外。

3:使用<import.../>包含进来的文件要么没有命名空间,要么命名空间与当前文件命名空间不同

 

anyType类型

anyType是所有类型的基类型,所有原子类型都是由其派生出来的,其没有任何约束限制,常用于限制复杂类型派生新的复杂类型,而不用于定义元素。

 

<xs:element name="name" type="angType" />


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值