关闭

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

标签: schemaxmlextensionimportlist扩展
1286人阅读 评论(0) 收藏 举报
分类:

阻止派生新的简单类型

 

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" />


 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:77554次
    • 积分:1293
    • 等级:
    • 排名:千里之外
    • 原创:54篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档