分享
 
 
 

竹笋炒肉的cocoon学习笔记

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

http://hedong.3322.org/

cocoon读[ke'ku:n],茧的意思。

接连看到几篇文章谈cocoon,因其中牵扯术语太多,看后一头雾水,遂起学习之心。

网上找到很多谈cocoon的,IBM : developerWorks 中国网站 的在线教程写得最棒。下面就是学习笔记,觉得有意思就顺手记下来了。

以下三行是取源码的命令。

cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic login

cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic -z3 checkout -r cocoon_20_branch XML-cocoon2

cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic logout

管道由一些输入数据以及随后对它进行的一些处理步骤构成。每个处理步骤接受前一步的输出作为输入,一直到达管道的末端并产生最终输出。

Cocoon 包含许多常规管道组件,根据在管道中扮演的角色,它们分组成几种完全不同的类型。

管道输入 — 生成器(如FileGenerator,HtmlGenerator,DirectoryGenerator)和阅读器(常用来读静态文件)

处理步骤 — 转换器(如XSLT 转换器)和操作

管道输出 — 序列化器(如XML,HTML,SVG,PDF序列化器 )

条件的处理 — 匹配器和选择器

Cocoon 管道通常至少由生成器和序列化器组成,但可能含有任意数量的处理步骤。将数据作为 SAX 事件通过 Cocoon 管道传递。

对接收请求和为响应提供服务的逻辑周期如下:

1、从用户接受请求。

2、确定用来解释该请求并生成响应的适当管道(使用匹配器)。

3、从可用的预配置的组件构造管道。

4、指示管道为请求服务。

5、将由管道生成的响应返回用户,可能对结果进行高速缓存以便以后使用。

网站地图(sitemap)两个功能:

1、声明组件;

2、定义管道。

XML Server Pages(XSP)编译过程如下图:

XSP语法:

1、xsp:page 元素是每个 XSP 文档的根元素。它必须有一个标识该页面包含的编程语言 — 具体说就是“Java”— 的语言属性。

该页面元素可能包含:

任意数目的 xsp:strUCture 元素

任意数目的 xsp:logic 元素

单个用户元素

这最后一个限制非常重要。“用户元素”表示不在 XSP 名称空间中的任何元素,包括无名称空间的元素。之所以有这个限制是因为用户元素成为由 XSP 页面创建的 XML 文档的根元素,而 XML 文档只能有单个根元素。

2、xsp:structure 和 xsp:include 元素用于向代码生成过程提供这些附加提示。这两个元素是一前一后使用的,xsp:structure 元素将许多 xsp:include 元素组合在一起。每个 xsp:include 定义一个要导入的附加 Java 包或类。

3、xsp:logic 元素用于将 Java 代码块添加到 XSP。

在这些元素作为 xsp:page 元素的直接子元素出现的任何地方(也就是,单个用户元素以外),这个代码块都应包含方法定义和/或成员变量。之所以存在这一点是因为出现在用户元素以外的代码不包含在生成器的 generate() 方法内。常规的 Java 语法规则意味着这个代码必须是成员或类(也就是,静态)变量或方法。

xsp:logic 元素也可以使用在 XSP 页面的其它地方。在这种情况下,它们应该包含将被添加到已编译的生成器中的 generate() 方法的 Java 语句。这使 xsp:logic 元素类似于 jsp 页面中使用的 scriptlet 语法。

4、CDATA 节,它向 XML 解析器发出信号以对于那节内容不采用良好格式规则

<![CDATA[...]]>

5、xsp:eXPr 元素用于封装一个表达式,该表达式的值将直接添加到输出文档。与此相反,xsp:logic 元素包含生成器的代码。因此,xsp:expr 元素等价于在 JSP 中实现类似角色的 <%= ... %> 表达式语法。例如:

<elements>

<xsp:logic>

for (int i=1; i<11; i++)

{

<element><xsp:expr>i</xsp:expr></element>

}

</xsp:logic>

</elements>

6、通过使用 xsp:element 生成动态元素。如:

<xsp:element prefix="my" uri="http://www.examples.org">

<xsp:param name="name"><xsp:expr>"myElementName"</xsp:expr></xsp:param>

Element content

</xsp:element>

这个示例生成了以下 XML 输出:

<my:myElementName xmlns:my="http://www.examples.org">Element content</my:myElementName>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有