XML第一印象
XML是extensible markup language的缩写,是一种使用配对的可嵌套的标签的标记语言。人们用XML将文档结构化,从而可以让机器解读。作为不同应用之间统一的数据交换格式,XML广泛的应用在数据传输上。
XML的组成
XML文档 = 序言 + 很多元素 +尾注(可选)
序言
序言 = XML声明(文档版本号,字符编码) + 外部结构化文档的引用(可选)
一个序言的例子
<? xml version="1.0" encoding = "UTF-16"?>
元素
一个普通的例子
<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文件。
用XML Schema可以做以下几件事:
定义可出现在文档中的简单元素
用element定义一个名字为lastname,类型为string的标签
<xs:element name="lastname" type="xs:string"/>
定义可出现在文档中的属性
用attribute定义一个名字为lang,类型为string的属性,下面是一个含有这个属性的语句
<lastname lang="EN">Smith</lastname>
下面是对于这个属性的定义
<xs:attribute name="lang" type="xs:string"/>
定义在文档中出现的复合元素
以下是一个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>
定义元素出现的次序
- sequence: 按照定义顺序出现
- all: 必须都出现,次序不重要
- choice: 选择其中一个出现
定义元素出现的次数
<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>