Apache Cocoon 是基于 XML 的 Web 框架,通过 generator-transformer-serializer 管道实现内容、逻辑与表现分离,支持多格式输出;现处维护模式,官方推荐迁移到 Saxon/XProc、Spring Boot 或 Headless CMS。
Apache Cocoon 是一个基于 XML 的 Web 开发框架,核心目标是实现“关注点分离”——把内容、逻辑和表现层彻底分开。它不直接生成 HTML 页面,而是通过一系列可组合的 XML 处理步骤(称为 pipeline),把原始 XML 数据经过转换、聚合、样式化等环节,最终输出为 HTML、PDF、SVG 或其他格式。
核心思想:XML 为中心的处理流水线
Cocoon 把每个请求看作一条处理链(pipeline),由多个组件协同完成:
- Generator:生成初始 XML(比如从数据库查出数据并转成 XML,或读取静态 XML 文件)
-
Transformer:
对 XML 进行转换(常用 XSLT,也可用 XPath、XInclude、CInclude 等) - Serializer:把最终 XML 输出为目标格式(如 HTMLSerializer、FOPSerializer 生成 PDF)
整个过程不依赖 Java Servlet 的传统 MVC 模式,而是以声明式配置(Sitemap)驱动,强调内容中立性和多通道发布能力。
典型应用场景
适合需要同一套内容输出多种格式、或对内容结构与呈现强隔离的项目:
- 企业文档中心:一份 XML 文档 → HTML 在线浏览 + PDF 下载 + 打印优化版
- 多终端适配:用不同 XSLT 分别生成桌面网页、WAP 页面、RSS 订阅源
- 内容聚合系统:合并多个 XML 数据源(如 RSS、数据库 XML 导出、SOAP 响应),统一加工后发布
现状与替代建议
Apache Cocoon 自 2010 年起进入维护模式,3.x 版本已停止更新,官方推荐迁移到更现代的方案:
- 纯 XML 流水线需求 → 可考虑 Saxon + XProc 工具链
- Web 应用开发 → Spring Boot + Thymeleaf / REST API +前端框架 更主流且生态活跃
- 内容即服务(CaaS)→ Headless CMS(如 Contentful、Strapi)+ 自定义渲染层
虽然 Cocoon 的理念(如 pipeline、关注点分离)仍被借鉴,但实际新项目中已极少直接使用。
基本上就这些。

对 XML 进行转换(常用 XSLT,也可用 XPath、XInclude、CInclude 等)






