4.6.1 XML概述
1.XML概述
XML是一种允许用户以自我描述的方式自定义标签的元标记语言。其中的X是eXtensible即可扩展性的简写,指XML允许用户按照规则自定义标签。自我描述是指XML将信息以原始数据的形式进行存储,其中的标签不仅可以描述数据含义还能体现数据之间的结构关系。元标记语言是指用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言,因此用户可以根据标准的XML语法语义创建自己的标记语言。
XML和HTML都属于SGML的子集,SGML有非常强大的适应性,但是因为过于复杂,因此没有得到普及,而作为SGML简化子集的XML保留了很多SGML的优点,更容易操作,便于在Web环境下实现。与HTML不同之处在于:①XML的标签是自定义的,是一种元标记语言,即可以像SGML那样作为元语言来定义其他文档系统,而HTML的标签由标准化组织规定,是实例符号化语言,不能定义其他文档系统;②XML适合在网络环境下对信息进行组织和描述,是为文档交换设计的,而HTML则是为显示设计的。
以下通过一个例子来对比HTML和XML。例如,我们要在页面上提供图书的信息,包括以下内容:书名、作者、ISBN号、出版社、价格。如果用HTML来描述,可以表示如下。
【例4-26】用HTML描述图书信息示例。
显示效果如图4-29所示。
图4-29 用HTML表现数据
从以上的例子可以看出,Web页面上可以显示出一本图书的主要信息。但是当需要把这些资料保存起来,供别的应用程序使用时,就会碰到这个问题:表格中哪个是图书的名称,哪个是ISBN号,表中的每项都各代表什么含义?
这个问题如果由人工来处理可能问题不大,但是由计算机来处理就会遇到麻烦,因为HTML把数据和显示放在了一起,想要只使用数据而不需要格式是困难的。为了解决这个问题,需要借助XML。以下使用XML来描述图书信息。
【例4-27】用XML描述图书信息的示例。
使用这种描述方式,就解决了前面提到的问题。可以看到,例子中的标签是有含义的,它描述了数据项的意义。比如,可以通过标签author找到图书的作者。
2.XML特点
从以上的例子可以看出,XML有以下几个特点。
(1)标签可扩展性
在XML中,使用者可以根据自己的需要自定义标签,以上的例子中所使用的标签都是自定义的。
(2)数据和显示相分离
XML是设计用来描述数据的,它的侧重点是如何结构化地描述数据,在XML中看不到数据的显示方式,其显示效果通过样式表或可扩展样式语言(XSL,eXtensible Stylesheet Language)来定义。
(3)自描述性
XML使用了能够说明数据本质而不是其表现形式的标签来标注信息,不仅人能读懂XML文档,计算机也能读懂,有利于数据的存储和交换。XML的表现形式使数据独立于应用系统,并且可重用性大大增强。
(4)具有良好的格式
XML中语法要求更加严格,有利于信息的共享交互,例如要求标签之间正确的嵌套、配对,并遵从树状结构。
(5)保值性
XML保存的数据具有可重用性,同样一份数据可以供给多个应用程序使用,通过链接不同的样式表展现出不同的形式,XML数据被看作文档的数据库化或者数据的文档化。因此XML具有保值性。
(6)与数据库的关系
XML文档可以容易地和关系型数据库、层状数据库进行转换。
虽然XML具有以上的这些特点,但并不是说,XML是HTML的替代品,它们只是侧重点不同。XML侧重于数据的描述和存储,HTML则侧重于数据的展现。实际上,XML和HTML常常结合使用,XML作为数据来源向HTML提供显示的内容,而HTML则负责展示数据。
3.XML处理过程
XML是一种文本文档,可以使用常见的文本编辑器进行编辑,再经过解析器进行处理,最后由浏览器进行显示。其处理过程如图4-30所示。
图4-30 XML文档处理过程
首先使用编辑工具创建XML文档。常用的工具包括:记事本、写字板、XML Notepad、XMLwriter、XMLSpy等。然后由解析器对XML文档进行解析处理。能够识别验证XML语法的工具叫作XML解析器,它往往是XML文档和应用程序中间的软件。XML文档由标签和数据内容构成,解析器能够根据XML语法规则检查文档结构、判定文档是否正确,并且能剥离XML标签,将其中的信息解析出来为应用程序所用。目前许多编辑器都集成了解析器的功能,方便用户使用。如果XML文档符合语法要求,解析器将XML文档交由客户端程序,如浏览器,进行显示。不同浏览器配置的解析器有所差异,因此相同的文档在不同浏览器可能会有不同的显示。