作者: 周靖 译
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是一个强大的开源项目,源自Apache Software Foundation,专注于构建Web应用程序和服务。Cocoon V2.1.4是该项目的一个稳定版本,它基于W3C(World Wide Web Consortium)的开放标准,如XSLT...
用过Apache Cocoon技术吗? 知道XSP吗? 这本资料可以让你快速入门。
提供静态文件和动态生成的响应 使用任意数量的处理将用户请求透明地映射到物理资源 执行简单和多级 XSLT 转换 将参数动态传递到 XSLT 变换 ... 这大大增加了使用 XML 和 ...Cocoon 让您能以最少的麻烦生成动态网站
Cocoon,这个名字在IT行业中可能指的是Apache Cocoon项目,它是一个基于XML的Web开发框架,由Apache软件基金会维护。Cocoon的设计理念是提供一种组件化、可配置和可扩展的方式来构建Web应用,强调内容管理和重用。在...
Apache Cocoon是一个Web开发框架,它基于关注点分离(确保人们可以在项目上进行交互和协作,而不会互相踩到脚)和基于组件的Web开发的概念构建。 Cocoon围绕“组件管道”的概念实现了这些概念,管道上的每个组件专门...
Cocoon 2.2.0 是一个开源的、基于组件的Web开发框架,它由Apache软件基金会开发并维护。这个框架的核心理念是实现关注点分离(Separation of Concerns),以便于开发人员能够专注于各自的专业领域,从而提高开发效率...
jar包,官方版本,自测可用
CXF这个名字是“Cocoon XML Framework”的缩写,起初它是Apache Cocoon项目的一部分,后来发展成为专注于Web服务的独立框架。 Apache CXF的主要功能包括: 1. **Web服务支持**:CXF允许开发者通过SOAP、RESTful、...
Apache Cocoon是一个Web开发框架,它基于关注点分离(确保人们可以在项目上进行交互和协作,而不会互相踩到脚)和基于组件的Web开发的概念构建。 Cocoon围绕“组件管道”的概念实现了这些概念,管道上的每个组件专门...
Apache Cocoon是Lenya的基础,它是一个基于组件的Web开发框架,专注于内容管理和数据集成。Cocoon的焦点在于其SAX(Simple API for XML)流处理模型,这使得处理大量XML数据时性能高效。Lenya继承了Cocoon的这一优点...
Lenya的开发源自另一个开源项目——Apache Cocoon。Cocoon是一个基于组件的Web开发框架,专注于内容管理和转换。Cocoon的核心在于其XML流水线(SAX-based pipeline)概念,这一概念被Lenya继承并进一步应用到内容...
《COCOON在线磁盘管理器3.1:便捷云端文件操作的创新实践》 COCOON Online Disk Manager 3.1是一款强大的在线文件管理工具,它以直观易用的界面,模拟了我们熟悉的Windows资源管理器,让用户在处理云端文件时,能...
《COCOON Counter 6 Professional v1905:商业级站点统计系统的深度解析》 COCOON Counter 6 Professional v1905是一款备受赞誉的网站统计系统,专为商业级应用设计,旨在提供全面、准确的网站数据分析。这款统计...
Apache CXF,全称Cocoon XML Framework,最初是Apache Cocoon项目的一个子项目,后来发展成为一个独立的Web服务框架。它允许开发者通过多种协议(如SOAP、RESTful HTTP)创建和消费Web服务,同时支持多种Web服务标准...
**COCOON Db Tools Final Release 完整篇** COCOON Db Tools 是一款强大的在线文件管理系统,专为数据库管理和操作设计。它提供了一种直观且高效的界面,让用户能够轻松地修改数据库的表结构、更新数据,并支持多种...
Cocoon最初的型态是一个简单的Java servlet,全部使用标准W3C组件:用文档对象模型(DOM)来解析文档,用XML来捕捉和格式化数据,用XSLT来转换数据和合并/操纵XML文档,并用XSL来管理文档的表示以便通过Web传送。...
Professional XML Development with Apache Tools:Xerces,Xalan,FOP,Cocoon,Axis,Xindice 文件太大,只好分卷压缩,这是第2部分,请同时下载part1和part3至相同目录
Apache CXF,全称Cocoon XML Framework,最初是作为Apache Cocoon的一部分发展起来的,后来独立成为专门处理SOAP和RESTful Web服务的框架。CXF提供了一种简单而强大的方式来创建、消费和管理Web服务,支持多种协议,...
COCOON ASP.NET 探针v1.0是一款针对ASP.NET环境的高效监测工具,主要功能在于测试和分析ASP.NET应用程序的运行状态以及服务器的相关属性。它为开发者和运维人员提供了一种强大的方式来诊断和优化他们的ASP.NET空间...
Apache Lenya是一款基于Java的内容管理系统(CMS),它利用Apache Cocoon框架来构建,专注于可扩展性和灵活性。在本文中,我们将深入探讨如何安装Apache Lenya,以便你可以开始使用这款强大的内容管理工具。 首先,...