一个元素如有属性或者包含子元素,那么这个元素就是复杂类型。复杂类型使用xs:complexType定义。复杂类型要么具有简单内容,要么具有复杂内容。内容是指在开始标签和结束标签之间的字符数据和子元素。
简单内容是指内容只具有字符数据没有子元素,简单内容是用xs:simpleContent元素来定义(简单内容要有属性,否则等同于简单类型)。
除此之外的就是复杂内容,使用xs:complexContent来定义。
xs:attribute元素的use、default、fixed属性
use属性指示xs:attribute元素是否需要出现,其有效值为:optional(表明xs:attribute元素是可选的,use属性的默认值)、prohibited(禁止使用属性)、required(属性是必须的)。对全局声明的属性不能使用use属性。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Book">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="isbn" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>
局部元素isbn可以使用use属性
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Book">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute ref="isbn"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:attribute name="isbn"/>
</xs:schema>
全局元素isbn中不能使用use属性
default属性指示默认值。属性默认值是有在属性本身为optional时才有意义。如果没有指定该属性的值,那么该值为默认值。如果指定了,则是指定值。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="document">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Format" default="PDF"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>
Fixed属性指示固定值。不管该属性出现不出现,该属性的值都是PDF。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="document">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Format" fixed="PDF"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>
版权声明:本文为tuolingss原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。