Apache Cocoon
此條目需要补充更多来源。 (2022年5月) |
開發者 | Apache Software Foundation |
---|---|
当前版本 | 2.3.0(2023年10月29日 | )
源代码库 | |
编程语言 | Java, XML |
操作系统 | Cross-platform |
类型 | Web application framework |
许可协议 | Apache License 2.0 |
网站 | cocoon |
Apache Cocoon,通常簡稱為 Cocoon,是一個基於 管線、關注點分離 和組件化網頁開發概念的 Web應用框架。該框架專注於 XML 和 XSLT 發佈,並使用 Java 程式語言 構建。Cocoon 的 XML 使用旨在提高發佈格式的兼容性,例如 HTML 和 PDF。內容管理系統 Apache Lenya 和 Daisy 是基於此框架構建的。Cocoon 也常用作 資料倉儲 的 ETL 工具或作為系統間數據傳輸的 中介軟體。
網站地圖
[编辑]Apache Cocoon 使用網站地圖(sitemaps)允許使用者控制 Cocoon 軟體中的各種組件,並定義 Cocoon 所稱的「管線」中的 用戶端-伺服器架構 交互。
組件
[编辑]Cocoon 中的組件按照功能分類。
匹配器
[编辑]匹配器用於將使用者的請求(如 URL 或 Cookie)與 萬用字元 或 正規表示式 模式進行匹配。每個使用者請求會在網站地圖中依次測試匹配器,直到找到匹配項。在匹配器中可以指定對某一請求的響應。
生成器
[编辑]生成器會創建供進一步處理的 數據流。該數據流可以從現有的 XML 文件生成,或由一些生成器直接從頭創建,表示伺服器上的某些數據,如目錄結構或圖像數據。
XSP
[编辑]其中一種生成器是 XML 伺服器頁(XSP),它是一個包含基於標籤的指令的 XML 文件,這些指令指定了如何在請求時生成動態內容。在 Cocoon 處理期間,這些指令會被生成的內容所取代,以便結果 XML 文件可以進行進一步處理(通常是 XSLT 轉換)。XSP 會被轉換成 Cocoon 的生產者,通常以 Java 類的形式呈現,不過任何擁有 Java 進程器的腳本語言也可以使用。
指令可以是內建的("XSP")或用戶定義的處理標籤,這些指令都定義在「邏輯表」中。標籤通過 XSLT 模板來定義,該模板描述了如何將這些標籤(表示為 XML 節點)轉換成其他 XML 節點或如 Java 的程序代碼。標籤用於嵌入過程邏輯、替代表達式、從網頁伺服器環境檢索信息等操作。
請注意,XSP 在 Cocoon 的近期版本中已被棄用。[來源請求]
轉換器
[编辑]轉換器接收數據流並進行某些更改。最常見的轉換是使用 XSLT 將一種 XML 格式轉換為另一種,但也有轉換器用於處理其他形式的數據(如 SQL 指令)。
序列器
[编辑]序列器將 XML 事件流轉換為字節序列(如 HTML)以返回給客戶端。一些序列器允許將數據以多種不同格式發送,包括 HTML、XHTML、PDF、RTF、SVG、WML 和 純文本等。
選擇器
[编辑]選擇器的功能類似於 switch 語句。它們可以選擇請求中的特定元素,並選擇正確的管道部分來使用。
視圖
[编辑]視圖主要用於測試。視圖是管道中的一個出口點。可以輸出在這一點產生的 XML 流,以便查看應用是否正常運行。
讀取器
[编辑]直接發布內容而不進行解析(無 XML 處理)。用於圖像等內容。
動作
[编辑]動作是執行某些業務邏輯或管理新內容生成的 Java 類。
管道
[编辑]「管線」用於指定不同的 Cocoon 組件如何與給定請求進行交互以產生 響應。[1] 一個典型的管道包括一個生成器,後接零個或多個轉換器,最後是序列器。
另見
[编辑]參考資料
[编辑]- ^ An Introduction to Apache Cocoon 2.1. Developer.com. 2003-10-24 [2022-05-26] (美国英语).