Cocoon入门

1、Cocoon介绍

   
根据Apache官方定义,Cocoon是一项XML发布框架。它允许你定义XML文档和文档的转换,并最终生成你所选择的表示形式,例如HTML, PDF, SVG, VRML等等。另外,Cocoon使你能够在XML文件中加入处理逻辑,从而是XML管 道具备动态的特性。

2、下载和安装

 http://xml.apache.org/下载cocoon的最新版本,本文以2.1.6版本为例。解压将部署包部署到应用服务器,本文以tomcat为例。访问 http://loclahost:8080/cocoon/ 看是否出现欢迎界面。

3、hello,cocoon

Cocoon安装配置完成以后,可以运行一些系统提供的例程,也可以自己制作XSP程序。本文提供一个简单的程序供参考。

3.1
文件说明

程序名:hello.xsp
转换文件:hello.xsl

3.2
文件清单

3.2.1 hello.xsp









        language="java"
        xmlns:xsp="http://apache.org/xsp"
>




String Hello = "Hello, XSP!";





Hello


3.2.2 hello.xsl





















XSL样式单可以将XML文档进行转换,并输出为指定的样式。

3.3 发布前的配置

首先可将hello.xsphello.xsl文件被放在{TOMCAT_HOME}/webapps/cocoon/hello目录中。
此后,需要在sitemap.xmap中进行相应的配置。添加到 ->下面


根据以上的配置,指定了样式单为hello/hello.xsl,并且只要在URL中输入http://localhost:8080/cocoon/hello/hello即可执行hello/hello.xsp文件,并将结果送到浏览器中。同样的,如果该目录下有hello2.xsp,则可通过http://localhost:8080/cocoon/hello/hello2进行调用。
需要注意的是,修改sitemap.xmap后你需要重新启动TomcatResin才能使修改生效,否则你也可以试着修改cocoon.xconf文件中的sitemap标记中的check-reload属性,例如:

这样,当sitemap.xmap修改后,系统将自动发现sitemap的改变并重新将其载入。

4、 XMLHTMLPDF

4.1、创建XML示例文档

我们使用简单的XML文件做为数据源。以后你可能会使用实际的XML或者数据库等作为数据源。
test.xml的内容:


This is the test.xml example

This is the text of section one






4.2、创建用来生成HTMLXSLT
Cocoon里常用的生成HTML的方法就是使用XSLT来选择并且转换输入文档的适当的元素。
把下面这个 doc2html.xsl 拷贝到 html-pdf 目录下,使其和上面两个XML文档在一起。
doc2html.xsl
的内容:






<xsl:apply-templates select="page/title"/>





















4.3、创建站点地图

现在我们已经有了要发布的文档和用来将其转换成HTMLXSLT。接下来我们要做的就是在Cocoon管道里将其连接到一起,然后,站点地图就可以通过具体的请求来选择管道。



sitemap.xmap
文件内容:



 


 


 


 
 
 
 


 

 
    
 

 

 

 

 










 
 



上面文件中很重要的一点就是 元素,他用来告诉 Cocoon 如何处理这里路径里的以.html结尾的请求。

4.4.
测试 HTML 发布

到这时,我们应该能看到HTML页面的结果了。

访问 http://localhost:8080/cocoon/test.html 页面会显示出大号字体的"Section one"  



如果没有正常工作,您需要检测一下上面的各步骤,如果还找不到错误的原因的话,您可以到$TOMCAT/webapps/cocoon/WEB-INF/logs 目录查看Cocoon的日志。Cocoon的日志有多个文件,您只需要查看那个当错误发生时大小给变了的日志文件,从中找出线索。

上面的站点地图里已经包括了PDF发布的配置。但是这项功能此时并不能正常工作,因为我们还没有创建转换成PDF所需要的XSLT

4.5、创建转换PDF用的XSLT

PDF
文档是由XSL-FO文档(包含一些特定的页面描述词的XML文档)来生成的。由Cocoon PDF 序列化器来完成实际的转化。


将下面的doc2pdf.xsl 拷贝到 html-pdf目录下:

doc2pdf.xsl


xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
>




page-height="29.7cm"
page-width="21cm"
margin-top="1cm"
margin-bottom="2cm"
margin-left="2.5cm"
margin-right="2.5cm"
>







master-reference="page" page-position="first"/>



























因为这个文件在我们前面的站点地图中已经引用,所以我们不需要再在sitemap.xmap做任何配置了。

4.6 测试 PDF 发布

这时我们应该能看到PDF的结果了。

访问 http://localhost:8080/cocoon/test.pdf 会显示大号字体红色的"Section one"
到这里,您应该了解其实在Cocoon中发布HTMLPDF不是多难的事情。更为美妙的是当我们有大量的XML文档需要发布时,我们只需要编写两个XSLT文件来将其转换成特定的格式。而当我们需要改变发布文档的外观时,我们只需要修改那两个相应的XSLT。我们并不需要去接触那些源文档。

你可能感兴趣的:(Java)