Cocoon的sitemap详解

Sitemap特点

   1. minimal verbosity is of maximum importance.2. the schema should be sufficiently expressive to allow learning by examples.3. sitemap authoring should not require assistive tools, but be sufficiently future-compatible to allow them.4. sitemaps must scale along with the site and should not impose growth limitation to the site as a whole nor limit its administration with size increase.5. sitemaps should contain all the information required to Cocoon to generate allthe requests it receives.6. sitemaps should contain information for both dynamic operation as well as offline generation.7. uri mapping should be powerful enough to allow every possible mapping need.8. basic web-serving functionalities (redirection, error pages, resource authorisation)should be provided.9. sitemaps should not limit Cocoon's intrinsic modular extensibility.10. resources must be matched with all possible state variables, not only with URI(http parameters, environment variables, server parameters, time, etc...).11. sitemaps should embed the notion of "semantic resources" to be future-compatible with semantic crawling and indexing.12. sitemaps should be flexible enough to allow a complete web site to be built with Cocoon.

Sitemap的Structor

<?xml version="1.0"?><map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0"><map:components/><map:views/><map:resources/><map:action-sets/><map:pipelines/></map:sitemap>

下面我们来详细的分析Sitemap的各个部分

<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
这个没什么好说的,标准格式。不要修改

map:component部分

 <map:components><map:generators/><map:transformers/><map:serializers/><map:readers/><map:selectors/><map:matchers/><map:actions/><map:pipes/></map:components>
每个Component都有一些共同的属性
name:这个component的标识名,用来在pipeline里面引用该component
src:实现这个component的class文件名每个Component也都有参数可以设置,例如
<map:components><map:transformer name="xslt"src="org.apache.cocoon.transformation.TraxTransformer"><!-- This is a parameter to the transformer component --><use-request-parameters>false</use-request-parameters></map:transformer>
</map:components>
不同的Component可以设置不同的参数。Generators属性设置(将xml转化成为SAX事件,同时初始化pipeline处理机制)
<map:generators default="file"><map:generator name="file"src="org.apache.cocoon.generation.FileGenerator"/><map:generator name="dir"src="MyDirGenerator"/><map:generator name="serverpages"src="org.apache.cocoon.generation.ServerPagesGenerator">...</map:generator>
</map:generators>
这里面的default就是用来在pipeline里面如果不指定generator的时候自动调用file这种Component.Transformer属性设置(Transformer就是用来将SAX事件转化成为另外一种SAX事件)
<map:transformers default="xslt"><map:transformer name="xslt" src="org.apache.cocoon.transformation.TraxTransformer"><use-request-parameters>false</use-request-parameters><use-browser-capabilities-db>false</use-browser-capabilities-db></map:transformer><map:transformer name="xinclude" src="org.apache.cocoon.transformation.XIncludeTransformer"/>
</map:transformers> Serializers设置(Serializers将SAX事件转化成为binary或char Stream)
<map:serializers default="html"><map:serializer name="html" mime-type="text/html" src="org.apache.cocoon.serialization.HTMLSerializer"><doctype-public>-//W3C//DTD HTML 4.0 Transitional//EN</doctype-public><doctype-system>http://www.w3.org/TR/REC-html40/loose.dtd</doctype-system><omit-xml-declaration>true</omit-xml-declaration><encoding>UTF-8</encoding><indent>1</indent></map:serializer><map:serializer name="wap" mime-type="text/vnd.wap.wml" src="org.apache.cocoon.serialization.XMLSerializer"><doctype-public>-//WAPFORUM//DTD WML 1.1//EN</doctype-public><doctype-system>http://www.wapforum.org/DTD/wml_1.1.xml</doctype-system><encoding>UTF-8</encoding></map:serializer><map:serializer name="svg2jpeg" mime-type="image/jpeg" src="org.apache.cocoon.serialization.SVGSerializer"><parameter name="background_color" type="color" value="#00FF00"/></map:serializer><map:serializer name="svg2png" mime-type="image/png" src="org.apache.cocoon.serialization.SVGSerializer"></map:serializer>
</map:serializers>Selectors设置(用来在sitemap里面实现简单的逻辑选择,例如if-then-else)
<map:selectors default="browser"><map:selector name="load"src="org.apache.cocoon.selection.MachineLoadSelector">...</map:selector><map:selector name="user"src="org.apache.cocoon.selection.AuthenticationSelector">...</map:selector><map:selector name="browser" src="org.apache.cocoon.selection.BrowserSelector"><browser name="explorer" useragent="MSIE"/><browser name="lynx" useragent="Lynx"/><browser name="mozilla5" useragent="Mozilla/5"/><browser name="mozilla5" useragent="Netscape6/"/><browser name="netscape" useragent="Mozilla"/>...</map:selection>
</map:selection>  Matchers设置(Matcher将pattern映射到resource,也就是实现选择功能)
<map:matchers default="wildcard"><map:matcher name="wildcard" src="org.apache.cocoon.matching.WildcardURIMatcher">...</map:matcher><map:matcher name="regexp" src="org.apache.cocoon.matching.RegexpURIMatcher">...</map:matcher>
</map:matchers> Actions设置(Action是用来运行时参数的,也就是request过来的参数)
她的表现形式为name/value对
<map:actions><map:action name="add-employee"src="org.apache.cocoon.acting.DatabaseAddAction"/><map:action name="locale"src="org.apache.cocoon.acting.LocaleAction"/><map:action name="request"src="org.apache.cocoon.acting.RequestParamAction"/><map:action name="form-validator"src="org.apache.cocoon.acting.FormValidatorAction"/>
</map:actions>

map:views定义

 view是用来定义站点不同的表现形式的。她与pipeline无关,同时可以被sitemap里面的所有的pipeline使用
<map:views><map:view name="content" from-label="content"><map:serialize type="xml"/></map:view><map:view name="links" from-position="last"><map:serialize type="links"/></map:view>
</map:views>
这个定义没有搞明白,也许还需要到view这个部分去了解。RR

map:resources设置

 这里面可以定义被重复使用的东东,用于pipeline的复用。
<map:resources><map:resource name="Access refused"><map:generate src="./error-pages/restricted.xml"/><map:transform src="./stylesheets/general-browser.xsl"/><map:serialize status-code="401"/></map:resource>
</map:resources>

map:action-sets设置

用于将action组织起来使用。
<map:action-sets><map:action-set name="employee"><map:act type="add-employee" action="Add"/><map:act type="del-employee" action="Delete"/><map:act type="upd-employee" action="Update"/><map:act type="sel-employee" action="Select"/></map:action-set>
</map:action-sets>

Pipeline详解

    Cocoon依赖于Pipeline这个模型:一个xml文件通过管道,经过几个流程的处理,然后输出。
这个就是我们使用Cocoon时候的基本流程。一个Pipeline一般由一个generator开始,跟着0到n个transformer,然后以serializer结束。
当然了,这中间还可能会有pipeline的错误处理。除了使用各种部件以外,你还可以以matcher或selector来选择某个特定的pipeline.
Aggregation允许你将几个Pipeline合并起来一起使用。
views定义pipeline的退出点
元素 作用
map:match 根据matching选择pipeline
map:select, map:when, map:otherwise 根据selector选择pipeline
map:mount 装载一个下属sitemap
map:redirect-to 重定向到另外一个uri
map:call 调用另外一个pipeline处理
map:parameter 定义不同的参数
map:act 调用action处理
map:generate 调用Generator处理
map:aggregate, map:part 将几个pipeline聚合起来使用
map:transform 定义Transformer处理
map:serialize 定义序列化处理器
map:handle-errors 定义错误处理方法

转载于:https://www.cnblogs.com/sunsonbaby/archive/2004/09/15/43515.html

Cocoon的sitemap详解相关推荐

  1. 【Java网络编程与IO流】Java之Java Servlet详解

    Java网络编程与IO流目录: [Java网络编程与IO流]Java中IO流分为几种?字符流.字节流.缓冲流.输入流.输出流.节点流.处理流 [Java网络编程与IO流]计算机网络常见面试题高频核心考 ...

  2. python常用内置模块-Python常用内置模块之xml模块(详解)

    xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言.从结构上,很像HTML超文本标记语言.但他们被设计的目的是不同的,超文本标记语言被设计用来显示 ...

  3. Robots.txt 协议详解及使用说明

    一.Robots.txt协议 Robots协议,也称为爬虫协议.机器人协议等,其全称为"网络爬虫排除标准(Robots Exclusion Protocol)".网站通过Robot ...

  4. (转)asp.net夜话之十一:web.config详解

    在开发中经常会遇到这样的情况,在部署程序时为了保密起见并不将源代码随项目一同发布,而我们开发时的环境与部署环境可能不一致(比如数据库不一样),如果在代码中保存这些配置这些信息部署时需要到用户那里更改代 ...

  5. DEDE的安装 和 DEDE文件和目录详解与安全问题

    关于安装 注意如果是重新安装需要先备份文件:数据库文件,data下的数据库配置信息文件common.inc.php 下载需要的织梦压缩包,然后把upload里面的文件上传到网站根目录 在浏览器中输入网 ...

  6. Dede二次开发程序详解(dede爱好者必备)

    Dede二次开发程序详解(dede爱好者必备) 调用说明:推荐会员(带用户头像)  [quote] {dede:sql sql="SELECT mid,mtype,userid,uname, ...

  7. ecshop二次开发手册,ECSHOP文件结构,ECSHOP目录详解

    Ecshop文件结构 :ecshop二次开发手册,ECSHOP文件结构,ECSHOP目录详解 /* ECShop 最新程序 的结构图及各文件相应功能介绍 ECShop文件结构目录 ┣ activity ...

  8. Fuzz工具使用详解

    Fuzz工具使用详解 (1)wfuzz 描述:wfuzz 是一款Python开发的Web安全模糊测试工具.简而言之就是wfuzz可以用在做请求参数参数类的模糊测试,也可以用来做Web目录扫描等操作. ...

  9. python:基础知识详解

    一.基本元素 变量 变量赋值: a="hello world" 变量命名: • 字母:a-z, A-Z, 其他语言的字母符号 • 数字:0-9 (不可以出现在首字符) • 下划线: ...

最新文章

  1. 第十届蓝桥杯大赛软件赛省赛 C/C++ 大学B组
  2. oracle死锁trace,Oracle 学习之性能优化(十)锁
  3. Java获取当前线程的名字以及为线程命名
  4. firefox 39 linux,Mozilla Firefox 39.0 Beta 4 发布下载
  5. Python3 不换行打印
  6. Match Points
  7. access数据库应用系统客观题_随访数据库的建立:易侕DataWeb系统应用
  8. 我认为的android入门学习策略
  9. 小米折叠屏手机真机现身:疑似跳票两年的MIX 4……
  10. Ags 9.3 文档逐步上线
  11. AX2009 的EP开发要点
  12. Win7 旗舰版 SP1环境下安装ArcGIS Pro 2.5
  13. Web接入QQ登陆简单入门操作
  14. 网狐大联盟服务器环境搭建完整教程
  15. pytorch 安装教程
  16. 微信服务器推送文件在哪个文件夹,微信电脑版聊天文件在哪个文件夹?微信电脑版文件位置介绍...
  17. Qt QtabWidget设置背景色 设置标题栏颜色
  18. Strong Convexity
  19. 华为二手价格表(最新2022.2.16)
  20. 正确认识形势 提升信心 增强斗志

热门文章

  1. 网站内链如何布局才能使蜘蛛更喜欢?
  2. java判断时间是不是星期五_Java判断当前日期是星期几
  3. springboot调整请求头大小_【SpringBoot WebFlux 系列】 header 参数解析
  4. 服务器功率一般多少_单机柜供电能力提升后,选择1U服务器还是2U服务器?
  5. html5在线api,HTML5 历史记录API
  6. android隐藏状态栏
  7. tflearn anaconda 安装过程记录
  8. C#网页数据采集(二)WebBrowser
  9. instantclient_11_2 连接oracle数据
  10. java内存分配 常量池详解