跳轉到內容

ETD 指南/技術問題/渲染樣式表

來自華夏公益教科書,開放的書籍,開放的世界

問題

在將文件轉換為 SGML/XML 的情況下,原始檔案必須使用結構化樣式表(模板)編寫。但學生往往非常重視最終文件的佈局,並在原始結構化樣式表上進行許多個性化和調整。我們的職責也是將他們工作中的這方面也轉換過來。專門用於文件內容的轉換工具必須由可以生成渲染樣式表的轉換工具來完成:通常是 XML 文件的 XSL 檔案。

佈局需求

由於 SGML 或 XML 不能直接被使用當今瀏覽器(Opera、Netscape、Internet Explorer)的使用者讀取,因此需要以樣式表的形式提供佈局資訊,或者將這些高度結構化的文件轉換為 HTML、PDF、PS 的佈局或可列印版本,這些版本更容易被使用者用來閱讀文件。

通常,大學有兩種方法來應對對佈局的需求

  1. 嘗試保留作者(學生)為 MS Word 或其他文件提供的全部佈局資訊。此策略透過作者對其工作的標準樣式表進行個性化來直接涉及作者。
  2. 大學可以決定開發一個單一的樣式表或選擇某些可用於所有 ETD 的樣式表。這將支援企業設計,並在更一般的層面上解決佈局問題,將其留給 ETD 生產部門。

用於 SGML 或 XML 文件的樣式表

在法國(里昂 2 和馬恩拉瓦萊的合作)正在開發這種工具,用於在 MS Word 和其他與 RTF 相容的創作工具中生成的文件。他們的工具基於對與每個使用樣式相關聯的排版特徵的分析和提取。

等效工具

對於使用 LateX 生成的文件,等效工具應易於開發,因為這種語言在本質上使用渲染樣式表的概念。

用於 XML 的樣式表語言是

  • 層疊樣式表(CSS)
  • 可擴充套件樣式語言(XSL)。

由於 CSS 無法處理像論文和學位論文那樣大的 XML 文件的複雜性和需求,因此不建議使用 CSS。

XSL 標準內的子標準

在 XSL 標準內,區分了幾個子標準

  • 可擴充套件樣式錶轉換(XSLT)。這部分允許使用者生成充當小型程式的樣式表。它們轉換原始文件,該文件始終對指定的 DTD 有效,轉換為遵循另一個 DTD(這使得在瀏覽器中更容易渲染,例如 HTML.dtd)的文件,或者允許將文件轉換為其他文件描述語言,例如 Rich Text Format(RTF)、LaTeX、PDF。從這些格式中,可以生成列印版本。
  • XPath 允許作者構建連結到其他 XML 文件的表示式,而不僅僅是連結到整個文件。一旦通用瀏覽器支援這種連結技術,就可以引用某個子部分,並引用例如第 3 節到第 5 節。
  • XSL:Fo(格式詞彙,可以應用於 XML 文件的節點)

基於使用樣式表的按需列印服務(POD)示例

將文件伺服器用作長期電子檔案的數字圖書館不會使印刷資訊變得多餘。相反:對於這些資訊系統的使用者來說,對印刷文件的需求正在增加。在大多數情況下,這種需求往往並不集中在整個文件本身,而是集中在文件的特定部分,如章節、引用等等。為此,柏林洪堡大學的按需列印專案旨在開發一項技術,允許使用者僅列印特定文件的所需部分。

使用 XML 按需列印

對於使用 XML 的按需列印元件,選擇了 Apache/Cocoon。此軟體使用 XSLT 引擎來即時生成 HTML 或 PDF 版本。“Cocoon 專案是一個在 Apache 軟體基金會 (ASF) 的指導下進行的開源志願者專案,並且與 Apache 伺服器本身保持一致,它是在非常開放的許可下發布的。即使 Cocoon 的最常見用途是透過處理靜態或動態生成的 XML 檔案來自動建立 HTML,但 Cocoon 也能夠執行更復雜的格式化,例如 XSL:FO 渲染到 PDF 檔案,客戶端相關的轉換,例如適用於支援 WAP 的裝置的 WML 格式化,或直接將 XML 提供給支援 XML 和 XSL 的客戶端。”

Cocoon

由於 Cocoon 不包含按需列印元件(尤其是選擇功能),因此必須建立一個使用不同 XSLT 樣式表的小型變通方法。包含對實際文件的 HTML 檢視的使用者檢視包括複選框,使用者可以使用這些複選框來選擇特定文件的部分。此檢視由 XSLT 代理樣式表生成,該樣式表呼叫生成 HTML 的預設樣式表(帶有選項 document.xml?format=html 的 XSLT 樣式表)。如果使用者透過單擊複選框選擇文件的某些部分,然後單擊“確定”按鈕,則會呼叫一個 perl 指令碼(PHP-Choise)。此指令碼透過使用 XPath 表示式 (http://dochost.rz.huberlin.de/proprint/bsp/slides.xml?CHAPTER=3http://dochost.rz.huberlin.de/proprint/bsp/slides.xml?CHAPTER=4 ) 選擇文件的所需章節和節,從文件中剪下這些部分,並將它們儲存在主記憶體中。此過程由 XSLT 代理樣式表執行,該樣式表現在已使用 XML 選項(document.xml?format=xml)呼叫。這些部分被新增到一個單獨的 XML 文件中(全部位於主記憶體中!),並透過 XSLT 代理樣式表使用列印選項或 HTML 選項(document.xml?format=pdf 或 document.xml?format=html)進行處理。

Usage of Apache/Cocoon for Printing on Demand


下一節:元資料,交叉對照

華夏公益教科書