content(内容)元素:
是指在元素的开始标签和结束标签之间的内容,不包含属性。
注:元素的属性不是元素content(内容)的一部分。
例:
<?xml version="1.0" ?>
<books>
<book id="001">
<name>XML学习天下</name>
<price>88.00</price>
<author>李四</author>
</book>
<book id="002">
<name>XML百例</name>
<price>68.00</price>
<author>张三</author>
</book>
</books>
说明:content(内容)元素包括<book>、<name>、<price>、<author>和元素的文本。
元素类型的分类关系图:
anyType(任意类型):
不对元素的内容进行任何,当然也对元素的数据类型也不进行约束,anyType是每个元素的默认类型。
注:一旦某个元素被声明为任意类型,其属性和内容是不受任何约束的。
例:
Schema文档:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="book" type="xs:anyType"/>
</xs:schema>
XML文档:
<?xml version="1.0"?>
<book xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="009.xsd">123.55</book>
说明:该元素的内容可以是字符型,也可以是数值型。
simpleType(简单类型):一般用来约束元素的值。
complexType(复杂类型):
复杂元素按内容的复杂程度可以分为两类:simpleContent(简单内容)元素和complexContent(复杂内容)元素
simpleContent(简单内容)元素:
是指元素内容中仅包含文本,不含子元素的复杂元素。
判断一个复杂元素是否为simpleContent类型的标准,是看其内容是否只含有文本。
定义simpleContent最主要的任务就是通过extension(扩展派生)声明属性。
simpleContent元素它首先是一个复杂类型元素,声明一个元素为复杂类型需要用到关键字complexType。
格式:
<xs:complexType> /声明复杂类型
<xs:simpleContent> /声明简单内容元素
<!--在这里放代码-->
</xs:simpleContent>
</xs:complexType>
类型派生:
restriction(约束派生):
是指通过对基类型的值或内容进行限定,从而得到新的类型。
注:自定义简单类型即时为一个很好的约束派生的例子。
例:
XML文件:
<?xml version="1.0"?>
<medal>sliver</medal>
Schema文件:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="medal"> /声明元素奖章
<xs:simpleType> /声明简单类型
<xs:restriction base="xs:string"> /声明新类型是基于字符类型的约束
<xs:enumeration value="gold"/> /声明自定义枚举型——金牌
<xs:enumeration value="sliver"/> /银牌
<xs:enumeration value="copper"/> /铜牌
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>
说明:
在XML文档中,约束了元素的内容只能为只能gold、sliver、copper里其中的一个。
extension(扩展派生):
是指通过对基类型的值或内容模型进行扩充,从而得到新的类型。
一般情况下,用来声明属性。
属性声明格式:
<xs:attribute name="属性名" type="属性类型" use="required | optional | prohibited" />
说明:
可以在一个元素里声多明个属性,属性里也有默认值和固定值,和元素的设置方法不样,在这里就不多加叙述了。
在同一个类型定义中不能定义多个同名属性,一个元素可以含有多个属性,多个属性之间对先后顺序并不敏感。
use:用来定义属性是否必须出现在文档中。
required:代表该属性必须出现在XML文档中。
optional:代表该属性可以出现,也可以不出现XML文档中。
prohibited:代表该属性不可以出现在XML文档中。
simpleContent(简单内容)元素实例:
XML文件:
<?xml version="1.0" ?>
<book id="001" type="IT">XML学习天下</book>
Schema文件:
<?xml version="1.0"?>
<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="id" type="xs:integer"/>
<xs:attribute name="type" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>