在分散式網際網路環境中,不同典藏機構之間散佈著珍貴的資源。若將這 些分散資源有效的組織與整合,讓使用者透過單一檢索介面就可查詢橫跨不同 領域中符合所需的資源,避免交涉過多的檢索介面進而節省使用者檢索的時 間,因此,典藏機構之間的資料互通性問題逐漸顯露出其重要性。
XML 運用一組組成對的標籤( tag ),按其從屬關係組織資料的結構
(structure),而且擁有簡潔的語法(syntax)。然而,僅憑 XML 卻是寸步難行,
原因在於 XML 只定義資料的「結構」和「語法」規則,至於資料本身帶有何 種「語意」,則由各類應用軟體根據不同 XML 文件(document)的內容(content)
予以解讀和處理。(陳建勳,民 90)
XSLT 定義了一套轉換語言(transformation language),把操作 XML 資料 的層次推向高階語言的境界。概括而論,只要宣告一組合於 XSLT 語意和語法 要求的規則,再交由 XSLT 處理器(XSLT processor)解譯,就能對 XML 資料 做各種處理,例如搜尋、排序、統計等,進而得到新的資訊,供後續之用。(陳 建勳,民 90)
本節之目的在明瞭 XSLT 之轉換模式,因此不詳細探討 XSLT 中所有規格 細節,關於 XSLT 詳細規格,請參考 XSLT Version 1.0 規格書。
一 、XSL 與 XSLT
XSLT 本身就是一種 XML 文件,用於轉換 XML 文件。XSLT 原本是 XSL 中的一部份,因此要瞭解 XSLT 必須先對 XSL 有基本的認識。
(一) XSL 在 XML 中所扮演之角色
XSL 譯為「可延伸樣式表語言」(eXtensible Stylesheet Language,簡稱 XSL),是由 W3C(World Wide Web Consortium,簡稱 W3C)所制定,用於描 述 XML 資料如何呈現在使用者面前的語言文件規範,即用於撰寫 XSL 樣版文
件(或稱 XSL 樣版檔案)的語言。7
圖 2-17 顯示 XSL 規範與其他 XML 規範之關聯:
SGML
XML HTML
XSL
XSL FO XSLT
XSLT XPath
圖 2-17 XSL 規範與其他 XML 規範之關聯 資料來源:本研究
XSL 樣版文件和 XML 有密切的關係。一般而言,XML 標籤只用來組織資 料間的關係,表達資料的結構;HTML 標籤除了儲存資料之外,還會攜帶設定 格式的訊息。至於 XML 資料最後要用什麼形式展現出來,則交由樣版文件來 決定。(陳建勳,民 90)
將「資料」和「版面配置」(presentation)分開,使相同的資料可以用不同 的形式呈現出來,其優點包含:(陳建勳,民 90)
¾ 由於資料本身不夾帶排版訊息,資料能保有純粹性,可供移植和 再用。
¾ 閱讀資料的使用者可依照本身喜好決定要用哪一種版面來觀看文 件內容。
¾ 網頁設計者在設計網頁內容時,可以暫時拋開版面配置的束縛,
專心於內容的設計,在網頁內容備妥時,再套上樣版定出版型即 可。
7 W3C 提出兩套樣式表的建議規格,分別是 XSL 與 CSS(Cascading Style Sheets,簡稱 CSS),本研究之實作的重點在 XML 文件轉換,因此不對 CSS 進行探討。
當 XSL 樣版文件寫好時,XSL 樣版處理器(XSL Stylesheet Processor)就 可以決定 XML 文件的資料要用什麼格式展現出來。因此,同一份 XML 文件可 以有好幾份樣版文件,依需求決定要以何種面貌呈現出來。(陳建勳,民 90)
(二) XSL 轉換 XML 文件過程
XSL 可分為「轉換」(transform)與「格式化」(format)XML 文件兩個部 分,轉換的部分後來獨立成為 XSLT,另一個部分 Formatting Object(簡稱 FO), 用於格式化 XML 文件。(郭尚君,郭慧琦,民 91)請參考圖 2-18。
XSL
XSLT:XML文件的轉換
Formatting Object:格式化XML文件
圖 2-18 XSL 兩大部分 資料來源:本研究
圖 2-19 是轉換 XML 文件的過程,分為「轉換」與「格式化」兩部分:
源樹 (Source Tree)
轉換 (Transform)
結果樹 (Result Tree)
格式化 (Formatting)
PDA
PC
Printer
圖 2-19 XSL 轉換 XML 文件過程
資料來源:改繪自郭尚君、郭慧琦(民 91)。XML 技術實務。台北市:文 魁資訊。
以下說明 XML 文件轉換與格式化等兩個部分之過程:(郭尚君,郭慧琦,
民 91)
1. XML 文件的轉換
運用 XSLT 轉換 XML 文件的過程中,有兩個重要的觀念,一是「源樹」,
另一是「結果樹」:
¾ 「源樹」(Source Tree):「源樹」為 XML 文件經 XML 剖析器後,
由 XML 文件中資料所構成的樹狀結構。
¾ 「結果樹」(Result tree):「結果樹」是「源樹」經過 XSLT 文件,
轉換後產生出的新樹狀結構。在 XSLT 處理「源樹」的過程中,
可以重新排列或刪除「源樹」中的節點,甚至可以插入原本不存 在於「源樹」的新節點。
利用 XSLT 轉換 XML 文件,有兩種常見的應用:
¾ XML 轉成 HTML:是目前最常見的一種轉換,透過 XSLT 擷取 XML 文件的內容,並轉換成 HTML 格式。
¾ XML 轉 XML:將 XML 文件格式轉換成另一種格式,常見於兩 個組織或系統間,透過 XML 文件交換資料。在資料交換的過程 中,兩方所使用的 XML 文件格式並不相同,此時便可透過 XSLT 將 XML 文件轉換成適當的格式。
2. 格式化 XML 文件
Formatting Object(簡稱 FO)提供許多格式化 XML 文件的指令,可精確 控制顯示與列印 XML 文件外觀,例如文字大小、位置等。