无废话XML阅读笔记(四)
六.XSLT-XML 专属的转换语.
这章的重点是XSLT.要谈XSLT,得先从XSL谈起.
1. 另一种样式-XSL简介.
XSL(eXtensible Stylesheet
Language)是专门为XML设计的样式,也是在CSS之外,另一个替XML穿戴打扮的选择.它一共分作两部分:第一部分负责将XML源代码转换为另一种格式,而第二部分(称作"FO"
[Formatting
Object;打样物件])则提供了大量的打样命令,可用来配合印刷或屏幕显像,精确地设定外观样式(如:字的大小,摆放的位置等),是一种所谓"device-independent"格式.第一部分的转换语法,可以用来为第二部分服务,将XML文件变形为打样命令.XSL的转换语法,并不限于将XML转成FO命令.事实上,XSL可以输出任何格式正确的XML文件.因为这个特性,我们可以用它来做以下几种形式的转换.
XML-->HTML
这是最常见的一种转换.转换出来的HTML文档,在格式上因为已经达到了格式正确的要求,在本质上非常接近XHTML.
XML-->XML
把一种格式的XML文件转换成另一种XML格式.有非常大的使用价值.例如:两个机关或企业之间以XML来传递信息,如果彼此使用XML格式有出入,可以用XSL来做调整.
XSL-->XSL
XSL甚至可以将一个样式转换成另一种样式.(因为XSL,本身也就是XML的一个应用,所以XSL-->XSL在本质上不过是XML-->XML的一个特例而已).
(1). XSL和CSS不同的地方.
XSL采用的是转换的方式,将一种格式的XML,转换为另一种.而CSS则来自完全不同的理念:它不含任何转换动作,只针对XML文件中各个成分的外观属性一一加以设定.另一个区别是:XSL样式都是XML文件,完全照XML的语法来;相对地,CSS在语法上自成一个,和XML的写法大相径庭.
(2). XSL和CSS相同的地方.
XSL和CSS都属于样式表的一种.样式表是用设定外观的,它并不影响原来的XML源代码.XSL虽然用的是转换的方式,但是"转换"并不代表源代码遭到篡改.通常XSL转换后的输出码,是另存到一个新的档案,或暂存在浏览器的记忆体中.原来的XML档案内容保持不变.
2.XSLT入门.
(1). XSLT在网络上的应用模式.
Server端XML文件在下载到浏览器之前,先以XSLT转为HTML.
[1]. 动态即时产生:
在浏览器向Server送请求的时候,以XSLT处理软件将XML立即转换为HTML,送出.在网页中有动态资料要即时插入,或当XML文件是从数据库即时取的场合下,最适合这种运作模式.
[2].
批次产生:如果XML文件事先都写好,一一存放在档案里,而非即时取得,或者随时不断更新,我们便可以用批次转换的做法,事先将HTML准备好.转换的工作则可以依据实际需要,在固定的时段自动化执行.这么做的好处是让Server资源可获得最大的节约.