Apache Cocoon

维基百科,自由的百科全书
跳转到导航 跳转到搜索
Apache Cocoon
File:Apache Cocoon logo.svg
开发者Apache Software Foundation
当前版本2.3.0(2023年10月29日,​2年前​(2023-10-29
源代码库
  • {{URL|example.com|可选的显示文本}}
Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
编程语言Java, XML
引擎
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    操作系统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]. (原始内容存档于2024-07-16) (en-US). 

    外部链接[编辑]