7.1 样式单简介

前面已经讲过,XML与HTML不同,它主要关注数据存储,并不管数据以何种方式、以怎样的界面呈现出来。

为了让XML能以可视化的方式显示出来,需要为XML文档添加样式单。样式单(Style Sheet)是一种专门描述结构文档表现方式的文件,它既可以描述这些文档如何在屏幕上显示,也可以描述它们的打印效果。

XML文件通常不会直接包含样式单定义,而是将样式单定义以样式单文件的形式单独存储。这样可以更好地突出XML负责数据存储的优势:XML仅仅保存数据逻辑,而样式单文件则负责显示逻辑,从而很好地将数据逻辑和显示逻辑分离开。

7.1.1 显示XML的两种常用样式单

对于XML文档的显示,W3C给出了两种推荐的样式单标准:一种是常见的CSS(Cascading Style Sheet,即级联样式单),另一种是XSLT(eXtensible Stylesheet Language Transformation,即可扩展样式单语言转换)。

就CSS而言,它并不是专门为XML文档设计的,它最初是为HTML文档设计的。一份CSS文件是一系列格式规则的集合,这些规则用于控制网页内容的外观:从精确的布局定位到特定的字体和样式,CSS样式都可以一样表现出色,甚至一些网页特效也可借助于CSS实现。CSS主要用于控制HTML文档的显示格式,当然也可用于控制XML文档的显示格式。

就XSLT而言,它的功能要比CSS强大得多,也更复杂,它不仅可以定义XML文档的显示外观,而且还可以将XML文档转换成另外的文档(XML文档或HTML文档)——这也是XSLT的一个重要功能。

XSLT不像CSS,仅能简单地定义布局定位、颜色控制和字体控制等,XSLT定义的是一份完整的转换规则:将一份XML文档彻底地转换成另一份格式文档,因为它可以取得对XML文档里所有数据的全部控制权。XSLT还内置了一些具有计算、排序功能的函数,甚至允许开发者开发自定义函数,因而可以对XML文档内的数据进行重新整理,并添加开发者所需的控制逻辑,然后再将其显示出来。

7.1.2 样式单的优势

对于样式单而言,不管是CSS,还是XSLT样式单,都具有如下突出的优点:

alt 表达效果丰富:样式单支持文字和图像的精确定位、三维层技术以及交互操作等,对于文档的表现力远远超过HTML中的标记。更重要的是,样式单的标准规范独立于其他结构文档的规范,当需要实现更丰富的表达效果时,仅需修改样式单规范即可,无须修改原始的数据文档内容。

alt 文档较小:在实际应用中,如果相同标记下的内容有相同的表现方式,使用传统的方法需要为每个标记分别定义显示格式,会造成大量的重复定义。而在样式单中,对于同一类标记只需进行一次格式定义即可,大大减小了需要传输的文件的大小,可提高传输速度,节约带宽。

alt 便于信息检索:虽然样式单可以实现非常复杂的显示效果,但其显示逻辑与数据逻辑分离,对显示细节的描述并不影响文档中数据的内在结构。因此,网络搜索引擎对文档进行检索时,更容易检索到有用信息。

alt 可读性好:样式单对各种标记的显示进行集中定义,且定义方式直观易读。这使得它易学易用,可读性、可维护性都比较好。而结构化的数据文档也相对简洁、清晰,突出了对内容本身的描述功能。