跳转到内容

Apache Cocoon

维基百科,自由的百科全书
Apache Cocoon
开发者Apache Software Foundation
当前版本2.3.0(2023年10月29日,​13个月前​(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] (美国英语). 

外部链接

[编辑]