【1.9.2】XML与XML Schema
XML是extensible markup language的缩写,是一种使用配对的可嵌套的标签的标记语言。人们用XML将文档结构化,从而可以让机器解读。作为不同应用之间统一的数据交换格式,XML广泛的应用在数据传输上。
一、XML的组成
XML文档 = 序言 + 很多元素 +尾注(可选)
1.1 序言
序言 = XML声明(文档版本号,字符编码) + 外部结构化文档的引用(可选)
一个序言的例子
<? xml version="1.0" encoding = "UTF-16"?>
1.2 元素
元素 = 起始标签 + 元素内容 + 结尾标签
一个普通的例子
<lecturer> David Billington </lecturer>
一个空元素(不含元素内容的元素)可以缩写为
<lecturer/>
元素可以有属性,属性是标注在起始标签中的name-value对
一个有属性的标签
<order orderNo="123" date = "2002/7/7">
<item>item1</item>
<\order>
二、XML Schema
一共有两种语言可以定义一个XML文档的结构—DTD和XML Schema。定义XML文档结构的意思是,定义这个文档中需要有什么标签,文档中标签之间的数量关系等。有点相当于类的定义,在一个Schema上可以产生多种XML文件。
2.1 用XML Schema可以做以下几件事
2.1.1 定义可出现在文档中的简单元素
用element定义一个名字为lastname,类型为string的标签
<xs:element name="lastname" type="xs:string"/>
2.1.2 定义可出现在文档中的属性
用attribute定义一个名字为lang,类型为string的属性,下面是一个含有这个属性的语句
<lastname lang="EN">Smith</lastname>
下面是对于这个属性的定义
<xs:attribute name="lang" type="xs:string"/>
2.1.3 定义在文档中出现的复合元素
以下是一个XML复合元素,也就是employee这个元素的内容是其他的元素。
<employee>
<firstname>John</firstname>
<lastname>Smith</lastname>
</employee>
对于复合元素用complexType定义,复合元素中元素的一些如下所示:
<xs:complexType name="employee">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
2.1.4 定义元素出现的次序
sequence: 按照定义顺序出现
all: 必须都出现,次序不重要
choice: 选择其中一个出现
2.1.5 定义元素出现的次数
minOccurs: 最少出现次数
maxOccurs: 最大出现次数
<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string" maxOccurs="10"/>
</xs:sequence>
</xs:complexType>
</xs:element>
参考资料
这里是一个广告位,,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn