深入XSLT第一章序言—什么是XSL
序言—什么是XSL
XSL是XML的樣式表語言
CSS:HTML的樣式表語言?
由于HTML使用預(yù)先確定的標(biāo)記,因此這些標(biāo)記的含義都很好理解:<p>元素定義一段,<h1>元素定義一個(gè)標(biāo)題。瀏覽器知?道如何顯示這些元素。使用CSS向HTML元素增加顯示格式是一個(gè)簡(jiǎn)單的過程:很容易告訴瀏覽器用某種特殊字體或顏色來顯示各個(gè)元素,瀏覽器也很容易理?解。?
XSL:XML的樣式表?
由于XML不使用預(yù)先確定的標(biāo)記(我們可以根據(jù)需要使用任意標(biāo)記),因此標(biāo)記的含義并不能被直接理解:<table>可以表示一個(gè)?HTML表格,也可以表示一件家具。由于XML的特性,瀏覽器不知道如何顯示一個(gè)XML文檔。為了顯示XML文檔,必須要有一個(gè)機(jī)制來描述如何顯示文檔。?這些機(jī)制之一是CSS,但是XSL(可擴(kuò)展的樣式表語言)是XML的首選樣式表語言,它要比HTML使用的CSS復(fù)雜得多。?
XSL:不僅僅是一個(gè)樣式表?
XSL包含3部分:一個(gè)轉(zhuǎn)換XML文檔的方法;?一個(gè)定義XML部分和模式的方法;一個(gè)格式化XML文檔的方法。?
如果對(duì)此還不能理解,那么可以先將XSL理解成:一種將XML轉(zhuǎn)換成HTML的語言,一種可以過濾和分類XML數(shù)據(jù)的語言,一種可以對(duì)一個(gè)XML文檔?的部分進(jìn)行尋址的語言,一種可以基于數(shù)據(jù)值格式化XML數(shù)據(jù)的語言(如用紅色顯示負(fù)數(shù)),一種向不同設(shè)備輸出XML數(shù)據(jù)的語言(如屏幕、紙或聲音)。?
XSL是一種WWW標(biāo)準(zhǔn)?
XSL是WWW協(xié)會(huì)推薦的一種標(biāo)準(zhǔn)。這種語言的前兩部分在1999年11月已經(jīng)成為W3C推薦標(biāo)準(zhǔn)。2000年,包括XSL格式化部分的完整XSL推薦標(biāo)準(zhǔn)成為W3C的候選標(biāo)準(zhǔn)。?
XSL語言?
?XSL實(shí)際上包含三種語言,其中最重要的是XSLT。XSL是三種語言的結(jié)合體上面提到,XSL實(shí)際上包含三種語言,具體是:XSLT是一種轉(zhuǎn)換XML的語言;XPath是一種定義XML部分或模式的語言;XSL格式化對(duì)象是一種定義XML顯示方式的語言。?
XSLT是一種用來將XML文檔轉(zhuǎn)換成其他類型文檔或其它XML文檔的語言。XPath是一種對(duì)XML文檔的部分進(jìn)行尋址的語言。設(shè)計(jì)XPath是要讓XSLT使用的。格式化是將一個(gè)XSL轉(zhuǎn)換的結(jié)果變成適于讀者或聽眾使用的輸出格式的過程。?
1999年11月16日,XSLT和XPath被作為兩個(gè)單獨(dú)的W3C推薦標(biāo)準(zhǔn)發(fā)布。目前對(duì)于XSL格式化對(duì)象還沒有單獨(dú)的W3C文檔,但是在XSL1.0推薦標(biāo)準(zhǔn)內(nèi)有一個(gè)描述。?
XSLT:XSL轉(zhuǎn)換?
XSLT是XSL標(biāo)準(zhǔn)中最重要的部分,它用于將一個(gè)XML文檔轉(zhuǎn)換成另一個(gè)XML文檔或另一種類型的文檔,也就是將一個(gè)XML文檔轉(zhuǎn)換成瀏覽器所能識(shí)別的一種格式。這其中之一就是HTML。通常,XSLT將每個(gè)XML元素都轉(zhuǎn)換成一個(gè)HTML元素。?
XSLT還可以向輸出文件中增加全新的元素,或去掉一些元素。它可以重新安排這些元素并對(duì)元素進(jìn)行分類,測(cè)試并確定顯示哪些元素等等。?
描述這種轉(zhuǎn)換過程的一個(gè)常用說法是:XSL用XSLT將一個(gè)XML來源樹轉(zhuǎn)換成另一個(gè)XML結(jié)果樹(或?qū)⒁粋€(gè)XML源文檔轉(zhuǎn)換成另一個(gè)XML結(jié)果文檔)。
XSLT的英文標(biāo)準(zhǔn)名稱為eXtensible?Stylesheet?Language?Transformation。根據(jù)W3C的規(guī)范說明書(http://www.w3.org/TR/xslt),最早設(shè)計(jì)XSLT的用意是幫助XML文檔(document)轉(zhuǎn)換為其它文檔。但是隨著發(fā)展,XSLT已不僅僅用于將XML轉(zhuǎn)換為HTML或其它文本格式,更全面的定義應(yīng)該是:?
XSLT是一種用來轉(zhuǎn)換XML文檔結(jié)構(gòu)的語言。?
--------------------------------------------------------?
CSS同樣可以格式化XML文檔,那么有了CSS為什么還需要XSLT呢?因?yàn)?/span>CSS雖然能夠很好的控制輸出的樣式,比如色彩,字體,大小等,但是它有嚴(yán)重的局限性,就是:?
(1)?CSS不能重新排序文檔中的元素;?
(2)?CSS不能判斷和控制哪個(gè)元素被顯示,哪個(gè)不被顯示;?
(3)?CSS不能統(tǒng)計(jì)計(jì)算元素中的數(shù)據(jù);?
換句話說,CSS只適合用于輸出比較固定的最終文檔。CSS的優(yōu)點(diǎn)是簡(jiǎn)潔,消耗系統(tǒng)資源少;而XSLT雖然功能強(qiáng)大,但因?yàn)橐匦滤饕?/span>XML結(jié)構(gòu)樹,所以消耗內(nèi)存比較多。?
因此,我們常常將它們結(jié)合起來使用,比如在服務(wù)器端用XSLT處理文檔,在客戶端用CSS來控制顯示。可以減少響應(yīng)時(shí)間。
總結(jié)
以上是生活随笔為你收集整理的深入XSLT第一章序言—什么是XSL的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分享一个Maven依赖查询网址
- 下一篇: scala集合层次图