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] (美国英语).