跳至內容

Apache Cocoon

維基百科,自由的百科全書
Apache Cocoon
開發者Apache Software Foundation
當前版本2.3.0(2023年10月29日,​11個月前​(2023-10-29
源代碼庫 編輯維基數據鏈接
編程語言Java, XML
操作系統Cross-platform
類型Web application framework
許可協議Apache License 2.0
網站cocoon.apache.org

Apache Cocoon,通常簡稱為 Cocoon,是一個基於 管線關注點分離 和組件化網頁開發概念的 Web應用框架。該框架專注於 XMLXSLT 發佈,並使用 Java 程式語言 構建。Cocoon 的 XML 使用旨在提高發佈格式的兼容性,例如 HTMLPDF。內容管理系統 Apache Lenya 和 Daisy 是基於此框架構建的。Cocoon 也常用作 資料倉儲ETL 工具或作為系統間數據傳輸的 中介軟體

網站地圖

[編輯]

Apache Cocoon 使用網站地圖(sitemaps)允許使用者控制 Cocoon 軟體中的各種組件,並定義 Cocoon 所稱的「管線」中的 用戶端-伺服器架構 交互。

組件

[編輯]

Cocoon 中的組件按照功能分類。

匹配器

[編輯]

匹配器用於將使用者的請求(如 URLCookie)與 萬用字元正規表示式 模式進行匹配。每個使用者請求會在網站地圖中依次測試匹配器,直到找到匹配項。在匹配器中可以指定對某一請求的響應。

生成器

[編輯]

生成器會創建供進一步處理的 數據流。該數據流可以從現有的 XML 文件生成,或由一些生成器直接從頭創建,表示伺服器上的某些數據,如目錄結構或圖像數據。

XSP

[編輯]

其中一種生成器是 XML 伺服器頁(XSP),它是一個包含基於標籤的指令的 XML 文件,這些指令指定了如何在請求時生成動態內容。在 Cocoon 處理期間,這些指令會被生成的內容所取代,以便結果 XML 文件可以進行進一步處理(通常是 XSLT 轉換)。XSP 會被轉換成 Cocoon 的生產者,通常以 Java 類的形式呈現,不過任何擁有 Java 進程器的腳本語言也可以使用。

指令可以是內建的("XSP")或用戶定義的處理標籤,這些指令都定義在「邏輯表」中。標籤通過 XSLT 模板來定義,該模板描述了如何將這些標籤(表示為 XML 節點)轉換成其他 XML 節點或如 Java 的程序代碼。標籤用於嵌入過程邏輯、替代表達式、從網頁伺服器環境檢索信息等操作。

請注意,XSP 在 Cocoon 的近期版本中已被棄用。[來源請求]

轉換器

[編輯]

轉換器接收數據流並進行某些更改。最常見的轉換是使用 XSLT 將一種 XML 格式轉換為另一種,但也有轉換器用於處理其他形式的數據(如 SQL 指令)。

序列器

[編輯]

序列器將 XML 事件流轉換為字節序列(如 HTML)以返回給客戶端。一些序列器允許將數據以多種不同格式發送,包括 HTMLXHTMLPDFRTFSVGWML純文本等。

選擇器

[編輯]

選擇器的功能類似於 switch 語句。它們可以選擇請求中的特定元素,並選擇正確的管道部分來使用。

視圖

[編輯]

視圖主要用於測試。視圖是管道中的一個出口點。可以輸出在這一點產生的 XML 流,以便查看應用是否正常運行。

讀取器

[編輯]

直接發布內容而不進行解析(無 XML 處理)。用於圖像等內容。

動作

[編輯]

動作是執行某些業務邏輯或管理新內容生成的 Java 類。

管道

[編輯]

管線」用於指定不同的 Cocoon 組件如何與給定請求進行交互以產生 響應[1] 一個典型的管道包括一個生成器,後接零個或多個轉換器,最後是序列器。

另見

[編輯]
  • 反應器模式 - Cocoon 基於的設計模式。
  • XProc - 一種用於建模 XML 管道的 W3C 標準。

參考資料

[編輯]
  1. ^ An Introduction to Apache Cocoon 2.1. Developer.com. 2003-10-24 [2022-05-26] (美國英語). 

外部連結

[編輯]