<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基礎
    主站蜘蛛池模板: 国产精品自拍亚洲| 亚洲精品第一综合99久久| 国产亚洲蜜芽精品久久| 四虎影院在线免费播放| 色天使色婷婷在线影院亚洲| 日本不卡免费新一二三区| 久久精品国产亚洲av品善| 四虎影在线永久免费观看| 一区二区三区免费高清视频| 日日噜噜噜噜夜夜爽亚洲精品| 一级毛片大全免费播放| 亚洲自偷自偷图片| 日本在线看片免费人成视频1000| 亚洲国产精品一区第二页 | 亚洲精品中文字幕无乱码| 久久不见久久见免费视频7| 亚洲高清视频免费| 最近2019中文字幕mv免费看| 国产偷国产偷亚洲清高APP| 亚洲人午夜射精精品日韩| 久久这里只精品国产免费10| 亚洲人成电影网站| 国产男女猛烈无遮档免费视频网站 | 蜜桃传媒一区二区亚洲AV| 亚洲国产成人精品91久久久| 91在线视频免费观看| 亚洲人成综合在线播放| 国产免费观看网站| 精品国产一区二区三区免费| 亚洲伊人精品综合在合线| 亚洲国产精品成人久久蜜臀 | 一区二区三区精品高清视频免费在线播放| 337p日本欧洲亚洲大胆裸体艺术| 色欲国产麻豆一精品一AV一免费 | 成人人观看的免费毛片| 九一在线完整视频免费观看| 亚洲性天天干天天摸| 国产裸模视频免费区无码| 久久99青青精品免费观看| 大桥未久亚洲无av码在线| 久久亚洲AV成人无码电影|