<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基礎
    主站蜘蛛池模板: 亚洲黄色免费电影| 成人网站免费看黄A站视频| 国产h视频在线观看免费| 亚洲一区二区三区高清| 无码日韩精品一区二区三区免费 | 免费无码成人AV片在线在线播放| 亚洲人成人77777在线播放| 69成人免费视频| 亚洲偷自精品三十六区| 影音先锋在线免费观看| 综合一区自拍亚洲综合图区| 亚洲国产精品人人做人人爱| 丰满少妇作爱视频免费观看| 亚洲日韩一页精品发布| 中文精品人人永久免费| 久久丫精品国产亚洲av| 毛片网站免费在线观看| 国产成人亚洲综合无| 亚洲中文久久精品无码ww16| 毛片在线播放免费观看| 亚洲国产综合人成综合网站00| 成年私人影院免费视频网站| 亚洲AV无码专区亚洲AV桃| 久久久久亚洲AV无码专区桃色| 今天免费中文字幕视频| 亚洲乱码在线播放| 国产成人免费A在线视频| 中文字幕永久免费| 亚洲成综合人影院在院播放| 免费无码黄动漫在线观看| 久久久久国色AV免费观看| 亚洲日本香蕉视频观看视频| 日韩a级毛片免费观看| 成在线人视频免费视频| 亚洲另类图片另类电影| 亚洲成年人啊啊aa在线观看| 久久精品一区二区免费看| 亚洲欧洲日韩国产一区二区三区| 亚洲国产高清在线一区二区三区| 午夜免费啪视频在线观看| 亚洲国产精品无码第一区二区三区|