文档视界 最新最全的文档下载
当前位置:文档视界 › XML介绍

XML介绍

一、XML概述
XML(eXtensible Markup Language,可扩展标记语言)是一种标记语言。
eXtensible:可扩展的
Markup Language:标记语言

XML并非象HTML那样提供了一组事先已经定义好了的标签,而是提供了一个标准,利用这个标准,你可以根据实际需要定义自己的标记语言,并为这个标记语言规定它特有的一套标签。

一个XML应该有以下三个部分:
1、标记声明,即标记的语法,具体由DTD或者Schema实现。
2、具体的XML文件,含有标记的具体数据。
3、标记的含义,即样式单,对标记数据的具体显示,有CSS和XSL两种。


二、XML文件的结构
(1)XML的逻辑结构
一个XML文件最基本的构成是:
XML声明
处理指令(可选)
XML元素

例子:
[1]
[2]
[3] <专有名词列表>
[4] <专有名词>
[5] <名词>XML
[6] <解释>XML是一种可扩展的源标记语言,它可用以规定新的标记规则,并根据这个规则组织数据
[7] <示例>
[8]
[9] [10] <联系人>
[11] <姓名>张三
[12] zhang@https://www.docsj.com/doc/0c971119.html,
[13]
[14] ]]>
[15]
[16]
[17]

在本例中,[1] 是一个XML声明,[2] 是处理指令,[3]——[17] 是文件中的各个元素。
除此以外,上面例子中出现的其它逻辑要素还有:
[8] 是注释
[9]——[14] 是CDATA节
在[5]行的"<名词>XML"中,"<名词>"""是标记,"XML"是字符数据。

(1.1)XML声明
完整的XML声明:


version属性:必须的,表明XML版本号。
encoding属性:XML采用的编码,所有的XML语法分析器都要支持8位和16位的编码标准。
常用的编码有:
简体中文码:GB2312
繁体中文码:BIG5
西欧字符: UTF-8
standalone属性:表明该XML文件是否和一个独立的标记声明文件配套使用。"yes"表明标记声明在该XML文件里面,"no"表明存在一个文件作为此XML文件的标记声明文件(也可能没有)。


(1.2)元素
元素是XML文件内容的基本单元。从语法上讲,一个元素包含一个开始标记、一个结束标记以及标记之间的数据内容。其形式是:
<标记>数据内容
从文件头的XML声明之后开始一直到文件尾,包含了文件中所有的数据信息,称为根元素。例如上例中的"专有名词列表"。
XML中开始标记和结束标记之间的文字称作"字符数据",而把标记内的标示文字称作"标记"。

(1.2.1)字符数据:

一对标记之间出现的字符数据可以是任何合法的UNICODE字符,但不能包含字符"<"。这是因为,字符"<"被预留用作标记的开始符。在XML中,开始标记和结束标记之间出现的所有合法字符都被忠实地传给XML处理程序。
为了避免把字符数据和标记中需要用到的一些特殊符号相混淆,XML还提供了一些实体引用。

字符 实体引用
> >
< <
& &
" "
' '

在数据中若出现上述字符,应使用其相应的实体引用代替。

(1.2.2)标记:
除了注释和CDATA部分以外,所有符号"<"和符号">"之间的内容都称为标记。

XML中对于标记的语法规定:

1、标记必不可少
任何一个形式良好的XML文件中至少要有一个元素。也就是说,标记在XML文件中是必不可少的。

2、区分大小写
在标记中必须注意区分大小写。在HTML中,标记是一回事,但在XML中,它们是两个截然不同的标记。

3、要有正确的结束标记
结束标记除了要和开始标记在拼写和大小写上完全相同,还必须在前面加上一个斜杠"/"。因此,如果开始标记是,结束标记应该写作
当一对标记之间没有任何文本内容时,可以不写结束标记,而在开始标记的最后惯以斜杠"/"来确认,这样的标记称为"空标记",如

4、标记要正确嵌套
在一个XML元素中允许包含其它XML元素,但这些元素之间必须满足嵌套性。

5、标记命名要合法
标记应该以字母、下划线_开头,后面跟字母、数字、句号.、冒号:、下划线_或连字符-,但是中间不能有空格,而且任何标记不能以"xml"起始。另外,最好不要在标记的开头使用冒号,尽管它是合法的,但可能会带来混淆。
在XML1.0标准中允许使用任何长度的标记,不过,现实中的XML处理程序可能会要求标记的长度限制在一定范围内。

6、有效使用属性
标记中可以包含任意多个属性。在标记中,属性以名称/取值对出现,属性名不能重复,名称与取值之间用等号"="分隔,且取值用引号引起来。例如:
<商品 类型="服装" 颜色="黄色">
属性命名的规范与标记命名规范大体相似,需要注意有效字母、大小写等一系列问题。不过,在必要的时候,属性中也可以包含空白符、标点和实体引用。
需要注意的是,属性的所有赋值都被看作是字符串。因此,如果你的处理程序读到下面这段XML标记:
<圆柱体 半径="10" 高="13">
程序应该能够把字符串"10"和"13"转化为它们所代表的数字。

(1.3)CDATA
我们可以把XML文件中除标记以外的所有内容都看作是字符数据,而把标记中的所有内容都看作标记。不过,也有一个例外。在一个特殊的标记CDATA下,所有的标

记、实体引用都被忽略,而被XML处理程序一视同仁地当作字符数据看待。CDATA的形式如下:
文本内容
]]>

在前面讲字符数据时,我们谈到过实体引用。可想而知,当你的文本数据中包含大量特殊符号时,不得不通篇地使用实体引用,把本来很清晰的一段文字搞得乱七八糟。
例如:
<示例>
<联系人>
<姓名>张三</姓名>
<EMAIL>zhang@https://www.docsj.com/doc/0c971119.html,</EMAIL>
</联系人>


可以如下表示:
<示例>
<联系人>
<姓名>张三
zhang@https://www.docsj.com/doc/0c971119.html,

]]>


(1.4)注释
注释是用""引起来的,使用注释需要注意以下几点:
1、在注释文本中不能出现字符"-"或字符串"--",XML处理器可能把它们和注释结尾标志"-->"相混淆。
2、不要把注释文本放在标记之中,否则,它就不是一个"形式良好的"XML文件了。类似地,不要把注释文本放在实体声明中,也不要放在XML声明之前。
3、注释不能被嵌套。

(1.5)处理指令
处理指令是用来给处理XML文件的应用程序提供信息的。XML声明就是一个处理指令。
所有的处理指令应该遵循下面的格式:

例如在上述例子中,我们使用一个处理指令来指定与这个XML文件配套使用的样式单的类型及文件名:


(1.6)总结
一个XML文件通常以一个XML声明开始,后面通过XML元素来组织XML数据。XML元素包括标记和字符数据。为了组织数据更加方便、清晰,我们还可在字符数据中引入CDATA数据块,并可以在文件中引入注释。此外,由于有时需要给XML处理程序提供一些指示信息,XML文件中可以包含处理指令。


三、XML解析

相关文档