<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sealyu

    --- 博客已遷移至: http://www.sealyu.com/blog

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks

    作者: 周靖 譯
    http://www.zdnet.com.cn/developer/tech/story/0,3800067013,39139224-1,00.htm


    在 某種意義上,可將Cocoon視為一個基于XML的內容管理系統,因其提供了一種機制來描述Web信息項目(內容)的結構和語義、這些項目的關系、它們如 何隨著時間的推移而發生改變(邏輯)以及在請求時如何向用戶呈現(它們的樣式)。事實上,Cocoon項目作為Apache Web服務器項目的一部分,它的作用之一就是組織和控制Apache麾下眾多項目的文檔化過程。

    作為對其真實用途的一個比喻,Cocoon(繭)這個名字具有深遠的意義。它代表一種包裹結構,其中的某些東西將從幼蟲階段成長為美麗的蝴蝶,并準備展翅飛翔。但在Apache Cocoon的主頁上, 沒有對這個巧妙的比喻進行說明。相反,它只是對這個項目進行了準確的技術性解釋:“Apache Cocoon是一個XML發布框架,它將XML和XSLT技術在服務器應用程序中的應用提升到一個新級別。Cocoon的宗旨是提升管道化SAX處理的性 能和擴展性,通過對內容、邏輯和樣式的分離來營造一個靈活的環境。”

    到底什么是Cocoon?

    Cocoon最初的型態是一個簡單的Java servlet,全部使用標準W3C組件:用文檔對象模型(DOM)來解析文檔,用XML來捕捉和格式化數據,用XSLT來轉換數據和合并/操縱XML文 檔,并用XSL來管理文檔的表示以便通過Web傳送。但人們很快就要求它為其他類型的內容提供服務(比如程序和文檔),所以Cocoon逐漸發展成為一個 完整的、基于XML的發布框架及系統。

    隨著時間的推移,幾個新的XML組件問世了,比如SAX。另外,XSL也逐漸細分為幾個不同的組件,分別提供Transforms、 Formatting Objects和XPath功能。這些新標準直接促成了Cocoon 2在2002年的問世,它定義了一個標準的(而且仍在發展的)內容管理系統,并面向公眾開放。

    就目前來說,我們可采取幾種不同的方式來描述Cocoon:一個XML發布框架,一個數據源聚合器以及一系列管道和組件的集合。

    作為發布框架的Cocoon

    Cocoon基于對SAX事件的管道式處理。Web應用程序如果圍繞這個框架來構建,將獲得較好的擴展性和性能。利用一個集中式的配置系統,你可以 方便地創建、部署和維護Web應用程序。Cocoon使用了一個緩存系統,所有組件都可根據需要進行動態配置。接收到用戶請求后,會自動檢查緩存,判斷請 求的URI(統一資源標識符)是否存在。如果存在,就直接傳遞緩存的內容,不需要通過一個管道來處理它。

    Cocoon作為數據源聚合器

    Cocoon可作為一個抽象的引擎使用(通過一個Java servlet),它基于自定義的協議處理程序,能通過標準URI來訪問外部數據源。Cocoon甚至能遞歸調用自身,使數據流能在多個管道化階段同時處理,從而提高處理速度和效率。


    管道和組件

    Cocoon體系結構的核心設計思想是模塊化和抽象處理。Cocoon管道在概念上和UNIX系統中使用的管道差不多,只是Cocoon管道中的所 有元素都是通過解析XML文檔而創建的SAX事件。Cocoon識別3種類型的管道元素(組件),分別是生成器(generators)、轉換器 (transformers)和序列化器(serializers)。其中,生成器使用一個請求的URI來生成SAX事件;轉換器使用SAX事件并生成其 他SAX事件;序列化器使用SAX事件并生成一些響應。

    Cocoon的用途

    簡單地說,Cocoon管道用于生成和遞送內容。內容采用的是某種可識別的形式,由一個生成器和一個序列化器構成。在較典型的Cocoon管道中, 生成器之后可能緊接著一個或多個轉換器鏈,而序列化器用于生成不同格式的輸出。采取這種方式,同一個源文檔可為Web瀏覽器生成HTML格式的內容,為 WAP設備生成WML格式的內容,為打印輸出生成PDF格式的內容。

    作為一個開發平臺,Cocoon最吸引人的地方在于它提供了品種豐富的生成器、轉換器和序列化器。人們為Cocoon 2項目開發和捐贈了許多這樣的組件。一經捐贈,這些組件就可進行定制,以添加新功能或者進行擴展,從而創建出新的組件。A總結了適用于Cocoon的一些常用生成器、轉換器和序列化器。

    表A

    類別 名稱 說明
    生成器 DirectoryGenerator 將目錄列表轉換成XML格式,以便從中生成SAX事件
    生成器 FileGenerator 解析一個文件或URI,并生成SAX事件
    生成器 JSPGenerator 根據JSP頁來生成XML和SAX事件
    生成器 ServerPagesGenerator 根據XSP頁來生成XML和SAX
    轉換器 i18nTransformer 使用i18n字典和語言參數值來轉換SAX事件
    轉換器 XincludeTransformer 通過為現有的SAX流添加SAX事件,從而處理xinclude命名空間,并包括外部源
    轉換器 XSLTransformer 根據XSLT樣式表定義來轉換SAX事件流
    序列化器 HTMLSerializer 根據SAX事件來生成HTML響應
    序列化器 PDFSerializer 根據SAX事件,使用Apache FOP(格式輸出處理器)來生成PDF
    序列化器 SVG2JPGSerializer 根據SVG SAX事件,使用Apache Batik來生成JPEG圖像
    序列化器 TextSerializer 根據SAX事件來生成純文本輸出,適用于非XML文本,比如CSS或程序語言代碼
    序列化器 XMLSerializer 根據SAX事件來生成XML響應
    可由Cocoon使用的部分組件

    如所你見,Cocoon的功能并非只是簡單地將數據格式化成HTML。在未來的文章中,我們將研究如何在Cocoon環境中創建和處理文檔,并更詳 細地介紹在這個環境中工作所牽涉的問題。就目前來說,你只需理解Cocoon是針對多種目的來捕捉、呈現和遞送Web內容的一種方式。

    posted on 2009-10-15 09:39 seal 閱讀(249) 評論(0)  編輯  收藏 所屬分類: Java基礎
    主站蜘蛛池模板: 国产精品免费_区二区三区观看 | 成年在线观看网站免费| 亚洲人成色99999在线观看| 亚洲人成无码www久久久| 免费播放一区二区三区| 亚洲AV综合色区无码一二三区| 亚洲五月午夜免费在线视频| 亚洲成人免费在线观看| 亚洲a∨无码精品色午夜| 国产精品亚洲аv无码播放| 成人免费看片又大又黄| 在线观看特色大片免费网站| 亚洲最大的成人网| 亚洲av综合色区| 国产免费观看网站| 日韩内射激情视频在线播放免费| 亚洲精品国产av成拍色拍| 亚洲A∨无码无在线观看| 日本黄页网站免费| 91热久久免费精品99| 免费精品视频在线| 国产成人精品亚洲2020| 久久精品国产亚洲综合色| 热99re久久精品精品免费| 免费A级毛片无码专区| 有码人妻在线免费看片| 亚洲已满18点击进入在线观看| 好看的亚洲黄色经典| 深夜国产福利99亚洲视频| xxxxx免费视频| 国产午夜精品免费一区二区三区| 亚洲精品久久无码| 亚洲一区二区三区高清视频| 亚洲成AV人在线观看天堂无码| 免费一看一级毛片人| 成人毛片免费播放| 日本最新免费网站| 最近免费最新高清中文字幕韩国| 一级毛片a女人刺激视频免费| 午夜亚洲国产理论片二级港台二级 | 亚洲色无码专区一区|