Schema使用<attribute.../>定义属性,属性必须指明其所属的元素后,方可使用。
Schema支持的两种属性:
1:全局属性:在<schema.../>元素中定义,通过<attribute.../>的ref属性来建立全局属性与复杂类型的关联。
2:局部属性:直接在定义类型过程中定义。
<attribute.../>的常用属性:
name:属性名;
type:属性类型;
fixed:指定一个固定值;
default:指定一个默认值;
ref:引用一个以有的全局属性,不能和name、type属性同时出现。
use:只能在确定其所属元素时才能使用,可选值optional——表示可选属性,是默认值;prohibited——被禁止的属性;required——必需属性;
abstract:指定该属性为抽象属性。
Schema也提供了<attributeGroup.../>来支持属性组
全局属性示例:
<?xml version="1.0" encoding="GBK"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:attribute name="attribute1" default="123">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:totalDigints value="5">
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="attribute2" type="xs:boolean" default="true"/>
</xs:schema>
局部属性示例:
<?xml version="1.0" encoding="GBK"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="name">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="first" type="xs:token" use="required" />
<xs:attribute name="last" type="xs:token" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:schema>