学会创建一个简单的Cocoon网站

ZDNet软件频道 时间:2003-07-07 作者:ZDNet China |  我要评论()
本文关键词:
Cocoon是一个基于XML的强大的内容管理环境,它是开放源码Apache项目的一个组成部分。用Cocoon组件一个网站就像搭积木一样——用标准元件来搭建成一个完成的系统。我们将向你演示如何创建这样一个网站。
本文译自Builder.com,未经许可请勿转载Cocoon是一个基于XML的强大的内容管理环境,它是开放源码Apache项目的一个组成部分。较早前有关于它的讨论参见Cocoon,使得Cocoon运作的基本数据结构叫着流水线(pipeline),而被称之为generator(用来挖掘或者产生内容)、transformer(把内容进行XML文档格式与其它格式之间的转换)以及serizlizer(以特定格式递交输出)的特定组件组合起来用于执行特定任务。

Pipeline使得Cocoon易于获取、管理和输出各种内容。这就使得对那些希望采用内容管理系统和节目制作工具(programmatic tool)来进行多媒体格式发布内容、但又支付不起商业内容管理系统昂贵要价的公司来说,Cocoon显得非常有吸引力。

用Cocoon组件一个网站就像搭积木一样——用标准元件来搭建成一个完成的系统。我们将向你演示如何创建这样一个网站。

不同情况下组件的组合

人们把XML文档中所定义的Pipeline称之为sitemap,在sitemap中,Cocoon组件以特定的组合方式互相连接起来。如清单A所示,由一个generator加上多种transformer和serializer组成的简单组合可以让你用它轻松获取相同的内容并把它以各种格式发布给用户。我的例子证明了你可以用它来非常容易的获取XML内容并把它以HTML、XHTML或者无线标记语言(Wireless Markup Language,WML,一种HTML的特殊子集,它为手机以及其它手持式设备访问网络而设计的)的形式输出。

最简单的pipeline需要一个generator和一个serizlizer,但是实际上大多数pipeline都需要一个generator和多个transformer以及serializer,它们用来按照你所要求的格式创建输出。实际上,清单A所示的例子给出了一个sitemap文件,它用到了generator、transformer和serializer的不同组合来以不同的格式创建输出,其中,实际的行为是通过传递map:match pattern参数值来控制使用哪一个pipeline实例来实现的。

在清单A中,我们看到一个简单的pipeline(目前的Cocoon 2.0.4版)。该pipeline控制以各种格式来创建经典的“Hello world!”。该map名字空间中的元素(清单A所示)全部用来定义Cocoon元素。

用于激活该pipeline的基本URL是/cocoon/samples/hello-world。Cocoon servlet检查这个URL并用其中的匹配元素来查找与cocoon/samples/hello-world所匹配的pipeline。如果匹配上了,则激活map:match标记之间的那部分pipeline(包含了一个generate组件,而这个generate组件又连接到transform组件,而transform组件又连接到serialize组件)。这样,这个例子在运行时就可以用hello.htmlhello.xhtml、以及hello.wml模式调用不同的pipeline了。

generate组件读取hello-page.xml文件所描述的基本页面并触发SAX解析事件。这些事件传递到transform组件,该组件运用XSL转换来创建所需输出格式的特定标记,这依然是一连串的SAX事件。最后,serialize组件输出格式化页面(格式为HTML、XHTML或者WML),这样就响应了最初的请求。

由于所有的内容类型都可以插入到pipeline,这种方法是非常灵活的。例如,最初的内容事件可以通过执行一个程序来产生。最终的输出可以是PDF格式而不是前面XML例子所演示的Web格式。

Web设计者甚至可以在一个pipeline中插入多个transformer。例如,SQL transformer可以进行数据库查询并把查询到的数据插入到XML文档之中,然后用XSLT tansformer把它转换成HTML的格式。i18n国际化组件甚至可以进行从英语到任何其它语言的基本翻译。

对机智的Web开发者(他们使用HTML、XHTML以及WML的库或者预制标准模块)以及那些只是偶尔才需要自定义标准模块(或者创建新模块)的人来说,Cocoon可以进行各种完善的内容访问并提供了相当简明的管理功能。这也是Cocoon广受欢迎、被各种网站所采用的原因。


标准安装
注意在标准Cocoon安装下(server占用端口80),你可以用下面所示的URL来运行上面给出的例子代码:

  • http://localhost/cocoon/samples/hello-world/hello.html
  • http://localhost/cocoon/samples/hello-world/hello.xhtml
  • http://localhost/cocoon/samples/hello-world/hello.wml

 



责任编辑:炒饭

欢迎评论或投稿


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134