阻止派生新的简单类型
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" />