`
阅读更多

Apache Cocoon入门

作者: 周靖 译
http://www.zdnet.com.cn/developer/tech/story/0,3800067013,39139224-1,00.htm


在 某种意义上,可将Cocoon视为一个基于XML的内容管理系统,因其提供了一种机制来描述Web信息项目(内容)的结构和语义、这些项目的关系、它们如 何随着时间的推移而发生改变(逻辑)以及在请求时如何向用户呈现(它们的样式)。事实上,Cocoon项目作为Apache Web服务器项目的一部分,它的作用之一就是组织和控制Apache麾下众多项目的文档化过程。

作为对其真实用途的一个比喻,Cocoon(茧)这个名字具有深远的意义。它代表一种包裹结构,其中的某些东西将从幼虫阶段成长为美丽的蝴蝶,并准备展翅飞翔。但在Apache Cocoon的主页上, 没有对这个巧妙的比喻进行说明。相反,它只是对这个项目进行了准确的技术性解释:“Apache Cocoon是一个XML发布框架,它将XML和XSLT技术在服务器应用程序中的应用提升到一个新级别。Cocoon的宗旨是提升管道化SAX处理的性 能和扩展性,通过对内容、逻辑和样式的分离来营造一个灵活的环境。”

到底什么是Cocoon?

Cocoon最初的型态是一个简单的Java servlet,全部使用标准W3C组件:用文档对象模型(DOM)来解析文档,用XML来捕捉和格式化数据,用XSLT来转换数据和合并/操纵XML文 档,并用XSL来管理文档的表示以便通过Web传送。但人们很快就要求它为其他类型的内容提供服务(比如程序和文档),所以Cocoon逐渐发展成为一个 完整的、基于XML的发布框架及系统。

随着时间的推移,几个新的XML组件问世了,比如SAX。另外,XSL也逐渐细分为几个不同的组件,分别提供Transforms、 Formatting Objects和XPath功能。这些新标准直接促成了Cocoon 2在2002年的问世,它定义了一个标准的(而且仍在发展的)内容管理系统,并面向公众开放。

就目前来说,我们可采取几种不同的方式来描述Cocoon:一个XML发布框架,一个数据源聚合器以及一系列管道和组件的集合。

作为发布框架的Cocoon

Cocoon基于对SAX事件的管道式处理。Web应用程序如果围绕这个框架来构建,将获得较好的扩展性和性能。利用一个集中式的配置系统,你可以 方便地创建、部署和维护Web应用程序。Cocoon使用了一个缓存系统,所有组件都可根据需要进行动态配置。接收到用户请求后,会自动检查缓存,判断请 求的URI(统一资源标识符)是否存在。如果存在,就直接传递缓存的内容,不需要通过一个管道来处理它。

Cocoon作为数据源聚合器

Cocoon可作为一个抽象的引擎使用(通过一个Java servlet),它基于自定义的协议处理程序,能通过标准URI来访问外部数据源。Cocoon甚至能递归调用自身,使数据流能在多个管道化阶段同时处理,从而提高处理速度和效率。


管道和组件

Cocoon体系结构的核心设计思想是模块化和抽象处理。Cocoon管道在概念上和UNIX系统中使用的管道差不多,只是Cocoon管道中的所 有元素都是通过解析XML文档而创建的SAX事件。Cocoon识别3种类型的管道元素(组件),分别是生成器(generators)、转换器 (transformers)和序列化器(serializers)。其中,生成器使用一个请求的URI来生成SAX事件;转换器使用SAX事件并生成其 他SAX事件;序列化器使用SAX事件并生成一些响应。

Cocoon的用途

简单地说,Cocoon管道用于生成和递送内容。内容采用的是某种可识别的形式,由一个生成器和一个序列化器构成。在较典型的Cocoon管道中, 生成器之后可能紧接着一个或多个转换器链,而序列化器用于生成不同格式的输出。采取这种方式,同一个源文档可为Web浏览器生成HTML格式的内容,为 WAP设备生成WML格式的内容,为打印输出生成PDF格式的内容。

作为一个开发平台,Cocoon最吸引人的地方在于它提供了品种丰富的生成器、转换器和序列化器。人们为Cocoon 2项目开发和捐赠了许多这样的组件。一经捐赠,这些组件就可进行定制,以添加新功能或者进行扩展,从而创建出新的组件。A总结了适用于Cocoon的一些常用生成器、转换器和序列化器。

表A

 

类别 名称 说明
生成器 DirectoryGenerator 将目录列表转换成XML格式,以便从中生成SAX事件
生成器 FileGenerator 解析一个文件或URI,并生成SAX事件
生成器 JSPGenerator 根据JSP页来生成XML和SAX事件
生成器 ServerPagesGenerator 根据XSP页来生成XML和SAX
转换器 i18nTransformer 使用i18n字典和语言参数值来转换SAX事件
转换器 XincludeTransformer 通过为现有的SAX流添加SAX事件,从而处理xinclude命名空间,并包括外部源
转换器 XSLTransformer 根据XSLT样式表定义来转换SAX事件流
序列化器 HTMLSerializer 根据SAX事件来生成HTML响应
序列化器 PDFSerializer 根据SAX事件,使用Apache FOP(格式输出处理器)来生成PDF
序列化器 SVG2JPGSerializer 根据SVG SAX事件,使用Apache Batik来生成JPEG图像
序列化器 TextSerializer 根据SAX事件来生成纯文本输出,适用于非XML文本,比如CSS或程序语言代码
序列化器 XMLSerializer 根据SAX事件来生成XML响应
可由Cocoon使用的部分组件

如所你见,Cocoon的功能并非只是简单地将数据格式化成HTML。在未来的文章中,我们将研究如何在Cocoon环境中创建和处理文档,并更详 细地介绍在这个环境中工作所牵涉的问题。就目前来说,你只需理解Cocoon是针对多种目的来捕捉、呈现和递送Web内容的一种方式。

分享到:
评论

相关推荐

    Apache Cocoon V2.1.4

    Apache Cocoon是一个强大的开源项目,源自Apache Software Foundation,专注于构建Web应用程序和服务。Cocoon V2.1.4是该项目的一个稳定版本,它基于W3C(World Wide Web Consortium)的开放标准,如XSLT...

    Apache cocoon下的xsp

    用过Apache Cocoon技术吗? 知道XSP吗? 这本资料可以让你快速入门。

    Cocoon 2 简介

    提供静态文件和动态生成的响应 使用任意数量的处理将用户请求透明地映射到物理资源 执行简单和多级 XSLT 转换 将参数动态传递到 XSLT 变换 ... 这大大增加了使用 XML 和 ...Cocoon 让您能以最少的麻烦生成动态网站

    cocoon

    Cocoon,这个名字在IT行业中可能指的是Apache Cocoon项目,它是一个基于XML的Web开发框架,由Apache软件基金会维护。Cocoon的设计理念是提供一种组件化、可配置和可扩展的方式来构建Web应用,强调内容管理和重用。在...

    cocoon-2.1.13-deps.tar.gz

    Apache Cocoon是一个Web开发框架,它基于关注点分离(确保人们可以在项目上进行交互和协作,而不会互相踩到脚)和基于组件的Web开发的概念构建。 Cocoon围绕“组件管道”的概念实现了这些概念,管道上的每个组件专门...

    cocoon-2.2.0.zip

    Cocoon 2.2.0 是一个开源的、基于组件的Web开发框架,它由Apache软件基金会开发并维护。这个框架的核心理念是实现关注点分离(Separation of Concerns),以便于开发人员能够专注于各自的专业领域,从而提高开发效率...

    cocoon-flowscript-impl-1.0.0-m1-sources.jar

    jar包,官方版本,自测可用

    apache-cxf-2.7.6.rar

    CXF这个名字是“Cocoon XML Framework”的缩写,起初它是Apache Cocoon项目的一部分,后来发展成为专注于Web服务的独立框架。 Apache CXF的主要功能包括: 1. **Web服务支持**:CXF允许开发者通过SOAP、RESTful、...

    cocoon-configuration-api-1.0.4-source-release.zip

    Apache Cocoon是一个Web开发框架,它基于关注点分离(确保人们可以在项目上进行交互和协作,而不会互相踩到脚)和基于组件的Web开发的概念构建。 Cocoon围绕“组件管道”的概念实现了这些概念,管道上的每个组件专门...

    Apache Lenya v2.0.4.zip

    Apache Cocoon是Lenya的基础,它是一个基于组件的Web开发框架,专注于内容管理和数据集成。Cocoon的焦点在于其SAX(Simple API for XML)流处理模型,这使得处理大量XML数据时性能高效。Lenya继承了Cocoon的这一优点...

    Apache Lenya v2.0.4

    Lenya的开发源自另一个开源项目——Apache Cocoon。Cocoon是一个基于组件的Web开发框架,专注于内容管理和转换。Cocoon的核心在于其XML流水线(SAX-based pipeline)概念,这一概念被Lenya继承并进一步应用到内容...

    COCOON Online Disk Manager 3.1

    《COCOON在线磁盘管理器3.1:便捷云端文件操作的创新实践》 COCOON Online Disk Manager 3.1是一款强大的在线文件管理工具,它以直观易用的界面,模拟了我们熟悉的Windows资源管理器,让用户在处理云端文件时,能...

    COCOON Counter 6 Professional v1905

    《COCOON Counter 6 Professional v1905:商业级站点统计系统的深度解析》 COCOON Counter 6 Professional v1905是一款备受赞誉的网站统计系统,专为商业级应用设计,旨在提供全面、准确的网站数据分析。这款统计...

    apache-cxf-3.0.15.zip

    Apache CXF,全称Cocoon XML Framework,最初是Apache Cocoon项目的一个子项目,后来发展成为一个独立的Web服务框架。它允许开发者通过多种协议(如SOAP、RESTful HTTP)创建和消费Web服务,同时支持多种Web服务标准...

    COCOON Db Tools Final Release 完整篇

    **COCOON Db Tools Final Release 完整篇** COCOON Db Tools 是一款强大的在线文件管理系统,专为数据库管理和操作设计。它提供了一种直观且高效的界面,让用户能够轻松地修改数据库的表结构、更新数据,并支持多种...

    cocoon-2.1.1源码代及编译环境

    Cocoon最初的型态是一个简单的Java servlet,全部使用标准W3C组件:用文档对象模型(DOM)来解析文档,用XML来捕捉和格式化数据,用XSLT来转换数据和合并/操纵XML文档,并用XSL来管理文档的表示以便通过Web传送。...

    Professional XML Development with Apache Tools.part2

    Professional XML Development with Apache Tools:Xerces,Xalan,FOP,Cocoon,Axis,Xindice 文件太大,只好分卷压缩,这是第2部分,请同时下载part1和part3至相同目录

    apache-cxf-2.4.2.zip

    Apache CXF,全称Cocoon XML Framework,最初是作为Apache Cocoon的一部分发展起来的,后来独立成为专门处理SOAP和RESTful Web服务的框架。CXF提供了一种简单而强大的方式来创建、消费和管理Web服务,支持多种协议,...

    COCOON ASP.net 探针 v1.0

    COCOON ASP.NET 探针v1.0是一款针对ASP.NET环境的高效监测工具,主要功能在于测试和分析ASP.NET应用程序的运行状态以及服务器的相关属性。它为开发者和运维人员提供了一种强大的方式来诊断和优化他们的ASP.NET空间...

    Apache Lenya安装

    Apache Lenya是一款基于Java的内容管理系统(CMS),它利用Apache Cocoon框架来构建,专注于可扩展性和灵活性。在本文中,我们将深入探讨如何安装Apache Lenya,以便你可以开始使用这款强大的内容管理工具。 首先,...

Global site tag (gtag.js) - Google Analytics