| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Copyright 1999-2004 The Apache Software Foundation |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <!-- $Id: global-sitemap.xmap,v 1.64 2004/04/28 16:20:40 andreas Exp $ --> |
| |
| <map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0"> |
| |
| <!--+ |
| | This is the 'heart' of Cocoon. The sitemap maps URI space to |
| | resources. It consists basicaly of two parts: components and |
| | pipelines. Pipelines are made out of components. There is such a |
| | vast number of components available that it would be impossible to |
| | describe them here, please refer to the accompanying |
| | documentation. For specific components, have a look also at the |
| | javadocs for them. Most pipelines are present to demonstrate some |
| | feature or technique, often they are explained in more detail in |
| | the accompanying documentation. |
| +--> |
| |
| <!-- =========================== Components ================================ --> |
| |
| <map:components> |
| |
| <!--+ |
| | All pipelines consist at least of two components: a generator, that |
| | produces the content, and a serialiser, that delivers the content to |
| | the client. |
| | |
| | More precisely: a generator generates SAX events and a serializer |
| | consumes these events and produces a byte stream. |
| | |
| | Some things to note here: each generator has a unique name, this |
| | name is mapped to a java class, one name is declared as default |
| | generator. In addition each generator may have additional |
| | configurations as child elements. |
| | |
| | Additional attributes are targeted at the component manager. The optional |
| | "label" attribute is relevant for the view concept below. The optional |
| | "logger" attribute defines the logging category where messages produced |
| | by a component should go. If there's no "logger" attribute, the category |
| | used is the one defined for the "sitemap" component in cocoon.xconf. |
| | |
| | We have chosen in this sitemap to use a different logging category |
| | for each component, which allows fine-grained classification of log |
| | messages. But you are free to use any category you want. |
| | |
| | It is possible to have the same java class declared as different |
| | generators by using different names. No configuration options are |
| | shared between these instances, however. |
| | |
| | All components follow this schema. |
| +--> |
| <map:generators default="file"> |
| <map:generator name="file" label="content,data" logger="sitemap.generator.file" pool-grow="4" pool-max="32" pool-min="8" src="org.apache.cocoon.generation.FileGenerator"/> |
| <map:generator name="file-nolabel" label="content,data" logger="sitemap.generator.file-nolabel" pool-grow="4" pool-max="32" pool-min="8" src="org.apache.cocoon.generation.FileGenerator"/> |
| <map:generator name="serverpages" label="content,data" logger="sitemap.generator.serverpages" pool-grow="2" pool-max="32" pool-min="4" src="org.apache.cocoon.generation.ServerPagesGenerator"/> |
| <map:generator name="directory" label="content,data" logger="sitemap.generator.directory" pool-grow="2" pool-max="16" pool-min="2" src="org.apache.cocoon.generation.DirectoryGenerator"/> |
| <map:generator name="xpathdirectory" label="content" logger="sitemap.generator.xpathdirectory" src="org.apache.cocoon.generation.XPathDirectoryGenerator"/> |
| <map:generator name="imagedirectory" label="content,data" logger="sitemap.generator.imagedirectory" src="org.apache.cocoon.generation.ImageDirectoryGenerator"/> |
| <map:generator name="request" label="data" logger="sitemap.generator.request" pool-grow="2" pool-max="16" pool-min="2" src="org.apache.cocoon.generation.RequestGenerator"/> |
| <map:generator name="stream" label="content,data" logger="sitemap.generator.stream" pool-grow="2" pool-max="16" pool-min="1" src="org.apache.cocoon.generation.StreamGenerator"/> |
| <map:generator name="status" label="data" logger="sitemap.generator.status" pool-grow="2" pool-max="16" pool-min="2" src="org.apache.cocoon.generation.StatusGenerator"/> |
| <map:generator name="extractor" label="data" logger="sitemap.generator.extractor" src="org.apache.cocoon.generation.FragmentExtractorGenerator"/> |
| <map:generator name="html" label="content,data" src="org.apache.cocoon.generation.HTMLGenerator"/> |
| <map:generator name="proxy" label="content,data" logger="sitemap.generator.proxy" src="org.apache.cocoon.generation.HttpProxyGenerator"/> |
| <map:generator name="notifying" src="org.apache.cocoon.sitemap.NotifyingGenerator"/> |
| <map:generator name="servletproxy" src="org.apache.lenya.cms.cocoon.generation.ProxyGenerator"/> |
| </map:generators> |
| |
| <!--+ |
| | Transformers can be placed inside the pipeline between the generator |
| | and the serializer. You may have as many transformers as you |
| | like. Transformers consume SAX events and emmit SAX events. |
| | |
| | The "xslt" transformer is an example of a component with additional |
| | configuration. |
| +--> |
| <map:transformers default="xslt"> |
| |
| <map:transformer name="xlink" src="org.apache.lenya.cms.cocoon.transformation.IncludeTransformer"> |
| <publication type=""/> |
| </map:transformer> |
| |
| <!-- NOTE: XSLTC is now the default processor. If you use Xalan extensions, use the "xalan" transformer. --> |
| <map:transformer name="xslt" logger="sitemap.transformer.xslt" pool-grow="2" pool-max="32" pool-min="8" src="org.apache.cocoon.transformation.TraxTransformer"> |
| <use-request-parameters>false</use-request-parameters> |
| <use-session-parameters>false</use-session-parameters> |
| <use-cookie-parameters>false</use-cookie-parameters> |
| <transformer-factory>org.apache.xalan.xsltc.trax.TransformerFactoryImpl</transformer-factory> |
| </map:transformer> |
| |
| <map:transformer name="deli" logger="sitemap.transformer.deli" pool-grow="2" pool-max="32" pool-min="8" src="org.apache.cocoon.transformation.DeliTransformer"> |
| <use-request-parameters>false</use-request-parameters> |
| <use-session-parameters>false</use-session-parameters> |
| <use-cookie-parameters>false</use-cookie-parameters> |
| <xslt-processor-role>xalan</xslt-processor-role> |
| </map:transformer> |
| |
| <!-- NOTE: This used to be the default XSLT processor. The default now is XSLTC --> |
| <map:transformer name="xalan" logger="sitemap.transformer.xalan" pool-grow="2" pool-max="32" pool-min="8" src="org.apache.cocoon.transformation.TraxTransformer"> |
| <use-request-parameters>false</use-request-parameters> |
| <use-session-parameters>false</use-session-parameters> |
| <use-cookie-parameters>false</use-cookie-parameters> |
| <transformer-factory>org.apache.xalan.processor.TransformerFactoryImpl</transformer-factory> |
| </map:transformer> |
| |
| <map:transformer name="cinclude" logger="sitemap.transformer.cinclude" pool-grow="2" pool-max="16" pool-min="2" src="org.apache.cocoon.transformation.CIncludeTransformer"/> |
| <map:transformer name="encodeURL" logger="sitemap.transformer.encodeURL" src="org.apache.cocoon.transformation.EncodeURLTransformer"/> |
| <map:transformer name="write-source" logger="sitemap.transformer.write-source" src="org.apache.cocoon.transformation.SourceWritingTransformer"/> |
| <map:transformer name="jpath" logger="sitemap.transformer.jpath" src="org.apache.cocoon.transformation.JPathTransformer"/> |
| <map:transformer name="filter" logger="sitemap.transformer.filter" src="org.apache.cocoon.transformation.FilterTransformer"/> |
| <map:transformer name="writeDOMsession" logger="sitemap.transformer.writeDOMsession" src="org.apache.cocoon.transformation.WriteDOMSessionTransformer"/> |
| <map:transformer name="readDOMsession" logger="sitemap.transformer.readDOMsession" src="org.apache.cocoon.transformation.ReadDOMSessionTransformer"/> |
| <map:transformer name="log" logger="sitemap.transformer.log" pool-grow="2" pool-max="16" pool-min="2" src="org.apache.cocoon.transformation.LogTransformer"/> |
| <map:transformer name="extractor" logger="sitemap.transformer.extractor" src="org.apache.cocoon.transformation.FragmentExtractorTransformer"/> |
| <map:transformer name="lexer" logger="sitemap.transformer.lexer" src="org.apache.cocoon.transformation.LexicalTransformer"/> |
| <map:transformer name="parser" logger="sitemap.transformer.lexer" src="org.apache.cocoon.transformation.ParserTransformer"/> |
| <map:transformer name="pattern" logger="sitemap.transformer.lexer" src="org.apache.cocoon.transformation.PatternTransformer"/> |
| <map:transformer name="session" pool-grow="4" pool-max="32" pool-min="8" src="org.apache.cocoon.webapps.session.transformation.SessionTransformer"/> |
| <map:transformer name="session-pre" pool-grow="4" pool-max="32" pool-min="8" src="org.apache.cocoon.webapps.session.transformation.SessionPreTransformer"/> |
| <map:transformer name="session-post" pool-grow="4" pool-max="32" pool-min="8" src="org.apache.cocoon.webapps.session.transformation.SessionPostTransformer"/> |
| <map:transformer name="workflowmenu" logger="lenya.sitemap.transformer.workflowmenu" src="org.apache.lenya.cms.cocoon.transformation.WorkflowMenuTransformer"/> |
| <map:transformer name="usecasemenu" logger="lenya.sitemap.transformer.usecasemenu" src="org.apache.lenya.cms.cocoon.transformation.UsecaseMenuTransformer"/> |
| <map:transformer name="access-control-sitetree" logger="lenya.sitemap.transformer.accesscontrolsitetree" src="org.apache.lenya.cms.cocoon.transformation.AccessControlSitetreeTransformer"/> |
| <map:transformer name="index" logger="lenya.sitemap.transformer.index" src="org.apache.lenya.cms.cocoon.transformation.DocumentIndexTransformer"/> |
| <map:transformer name="link-rewrite" logger="lenya.sitemap.transformer.link-rewrite" src="org.apache.lenya.cms.cocoon.transformation.SimpleLinkRewritingTransformer"/> |
| <map:transformer name="sql" logger="sitemap.transformer.sql" src="org.apache.cocoon.transformation.SQLTransformer"/> |
| <map:transformer name="ldap" src="org.apache.cocoon.transformation.LDAPTransformer"/> |
| </map:transformers> |
| |
| <!--+ |
| | Serializers consume SAX events and produce a character stream. Every |
| | pipeline needs to be terminated by a serializer. |
| +--> |
| <map:serializers default="html"> |
| <map:serializer name="links" logger="sitemap.serializer.links" src="org.apache.cocoon.serialization.LinkSerializer"/> |
| <map:serializer name="xml" logger="sitemap.serializer.xml" mime-type="text/xml" src="org.apache.cocoon.serialization.XMLSerializer"/> |
| <map:serializer name="html" logger="sitemap.serializer.html" mime-type="text/html" pool-grow="4" pool-max="32" pool-min="4" src="org.apache.cocoon.serialization.HTMLSerializer"> |
| <doctype-public>-//W3C//DTD HTML 4.01 Transitional//EN</doctype-public> |
| <doctype-system>http://www.w3.org/TR/html4/loose.dtd</doctype-system> |
| <encoding>UTF-8</encoding> |
| <buffer-size>1024</buffer-size> |
| </map:serializer> |
| <map:serializer name="wml" logger="sitemap.serializer.wml" 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>ASCII</encoding> |
| <omit-xml-declaration>yes</omit-xml-declaration> |
| </map:serializer> |
| <map:serializer name="svgxml" logger="sitemap.serializer.svgxml" mime-type="image/svg-xml" src="org.apache.cocoon.serialization.XMLSerializer"> |
| <doctype-public>-//W3C//DTD SVG 20000303 Stylable//EN</doctype-public> |
| <doctype-system>http://www.w3.org/TR/2000/03/WD-SVG-20000303/</doctype-system> |
| </map:serializer> |
| <map:serializer name="xhtml" logger="sitemap.serializer.xhtml" mime-type="text/html" pool-grow="2" pool-max="64" pool-min="2" src="org.apache.cocoon.serialization.XMLSerializer"> |
| <doctype-public>-//W3C//DTD XHTML 1.0 Strict//EN</doctype-public> |
| <doctype-system>http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</doctype-system> |
| <encoding>UTF-8</encoding> |
| </map:serializer> |
| <map:serializer name="text" logger="sitemap.serializer.text" mime-type="text/plain" src="org.apache.cocoon.serialization.TextSerializer"/> |
| <map:serializer name="fo2pdf" logger="sitemap.serializer.fo2pdf" mime-type="application/pdf" src="org.apache.cocoon.serialization.FOPSerializer"> |
| <!-- This element specifies URL to FOP user configuration file. |
| It can be absolute file URL or relative to the servlet context. |
| Examples: |
| |
| <user-config>file:/C:/cocoon/fop-config.xml</user-config> |
| <user-config>WEB-INF/fop-config.xml</user-config> |
| --> |
| |
| <!-- Should serializer set content length header or not? |
| Default is true. |
| <set-content-length>true</set-content-length> |
| --> |
| </map:serializer> |
| <map:serializer name="fo2ps" logger="sitemap.serializer.fo2ps" mime-type="application/postscript" src="org.apache.cocoon.serialization.FOPSerializer"/> |
| <map:serializer name="fo2pcl" logger="sitemap.serializer.fo2pcl" mime-type="vnd.hp-PCL" src="org.apache.cocoon.serialization.FOPSerializer"/> |
| <map:serializer name="svgxml" logger="sitemap.serializer.svgxml" mime-type="image/svg-xml" src="org.apache.cocoon.serialization.XMLSerializer"> |
| <doctype-public>-//W3C//DTD SVG 20000303 Stylable//EN</doctype-public> |
| <doctype-system>http://www.w3.org/TR/2000/03/WD-SVG-20000303/</doctype-system> |
| </map:serializer> |
| <map:serializer name="svg2jpeg" logger="sitemap.serializer.svg2png" mime-type="image/jpeg" src="org.apache.cocoon.serialization.SVGSerializer"> |
| <parameter name="quality" type="float" value="0.9"/> |
| </map:serializer> |
| <map:serializer name="svg2png" logger="sitemap.serializer.svg2png" mime-type="image/png" src="org.apache.cocoon.serialization.SVGSerializer"/> |
| </map:serializers> |
| |
| <!--+ |
| | Readers circumvent the XML oriented SAX pipeline model, think of a reader |
| | being a generator and a serializer at once thus a pipeline may not |
| | contain any generator, transformer or serializer in addition to a |
| | reader. They are useful for delivering binary content like images. |
| +--> |
| <map:readers default="resource"> |
| <map:reader name="resource" logger="sitemap.reader.resource" pool-max="32" src="org.apache.cocoon.reading.ResourceReader"/> |
| </map:readers> |
| |
| <!--+ |
| | Matchers are executed during pipeline setup. They decide if a |
| | pipeline fragment is used within a pipeline. Usually, the decision |
| | is based on a match on the requested URI but matchers exist, that |
| | match different things as well. Most often the fragment contained in |
| | a matcher has a generator as well as a serializer. This is not a |
| | necessity, matchers can be nested while chaining does not work. |
| +--> |
| <map:matchers default="wildcard"> |
| <map:matcher name="wildcard" logger="sitemap.matcher.wildcard" src="org.apache.cocoon.matching.WildcardURIMatcher"/> |
| <map:matcher name="regexp" logger="sitemap.matcher.regexp" src="org.apache.cocoon.matching.RegexpURIMatcher"/> |
| <map:matcher name="request-parameter" logger="sitemap.matcher.request-parameter" src="org.apache.cocoon.matching.RequestParameterMatcher"/> |
| <map:matcher name="cookie" logger="sitemap.matcher.cookie" src="org.apache.cocoon.matching.CookieMatcher"/> |
| <map:matcher name="header" logger="sitemap.matcher.header" src="org.apache.cocoon.matching.HeaderMatcher"/> |
| <map:matcher name="parameter" logger="sitemap.matcher.parameter" src="org.apache.cocoon.matching.ParameterMatcher"/> |
| <map:matcher name="sessionstate" logger="sitemap.matcher.sessionstate" src="org.apache.cocoon.matching.WildcardSessionAttributeMatcher"> |
| <attribute-name>org.apache.cocoon.SessionState</attribute-name> |
| </map:matcher> |
| <map:matcher name="referer-match" logger="sitemap.matcher.referer-match" src="org.apache.cocoon.matching.WildcardHeaderMatcher"> |
| <header-name>referer</header-name> |
| </map:matcher> |
| <map:matcher name="usecase" logger="sitemap.matcher.usecase" src="org.apache.cocoon.matching.WildcardRequestParameterMatcher"> |
| <parameter-name>lenya.usecase</parameter-name> |
| </map:matcher> |
| <map:matcher name="step" logger="sitemap.matcher.step" src="org.apache.cocoon.matching.WildcardRequestParameterMatcher"> |
| <parameter-name>lenya.step</parameter-name> |
| </map:matcher> |
| </map:matchers> |
| |
| <!--+ |
| | Selectors are executed during pipeline setup. They can be used to |
| | determine which pipeline fragments should be combined. They are best |
| | compared with a java switch statement. |
| +--> |
| <map:selectors default="browser"> |
| <map:selector name="browser" logger="sitemap.selector.browser" src="org.apache.cocoon.selection.BrowserSelector"> |
| <!--+ |
| | NOTE: The appearance indicates the search order. This is very important since |
| | some words may be found in more than one browser description. (MSIE is |
| | presented as "Mozilla/4.0 (Compatible; MSIE 4.01; ...") |
| +--> |
| <browser name="explorer" useragent="MSIE"/> |
| <browser name="pocketexplorer" useragent="MSPIE"/> |
| <browser name="handweb" useragent="HandHTTP"/> |
| <browser name="avantgo" useragent="AvantGo"/> |
| <browser name="imode" useragent="DoCoMo"/> |
| <browser name="opera" useragent="Opera"/> |
| <browser name="lynx" useragent="Lynx"/> |
| <browser name="java" useragent="Java"/> |
| <browser name="wap" useragent="Nokia"/> |
| <browser name="wap" useragent="UP"/> |
| <browser name="wap" useragent="Wapalizer"/> |
| <browser name="mozilla5" useragent="Mozilla/5"/> |
| <browser name="mozilla5" useragent="Netscape6/"/> |
| <browser name="netscape" useragent="Mozilla"/> |
| </map:selector> |
| <map:selector name="request-parameter" logger="sitemap.selector.request-parameter" src="org.apache.cocoon.selection.RequestParameterSelector"> |
| <!-- Define now which request parameter to use; or do it later, |
| when using this selector, via "parameter-name" parameter. |
| <parameter-name>myparam</parameter-name> |
| --> |
| </map:selector> |
| <map:selector name="request-attribute" logger="sitemap.selector.request-attribute" src="org.apache.cocoon.selection.RequestAttributeSelector"> |
| <!-- <attribute-name>myparam</attribute-name> --> |
| </map:selector> |
| <map:selector name="session-attribute" logger="sitemap.selector.session-attribute" src="org.apache.cocoon.selection.SessionAttributeSelector"> |
| <!-- <attribute-name>myparam</attribute-name> --> |
| </map:selector> |
| <map:selector name="parameter" logger="sitemap.selector.parameter" src="org.apache.cocoon.selection.ParameterSelector"/> |
| <map:selector name="header" logger="sitemap.selector.header" src="org.apache.cocoon.selection.HeaderSelector"> |
| <!-- <header-name>myparam</header-name> --> |
| </map:selector> |
| <map:selector name="host" logger="sitemap.selector.host" src="org.apache.cocoon.selection.HostSelector"/> |
| <map:selector name="resource-exists" logger="sitemap.selector.resource-exists" src="org.apache.cocoon.selection.ResourceExistsSelector"/> |
| <map:selector name="exception" logger="sitemap.selector.exception" src="org.apache.cocoon.selection.ExceptionSelector"> |
| <exception name="sax" class="org.xml.sax.SAXException" unroll="true"/> |
| <exception name="resourcenotfound" class="org.apache.cocoon.ResourceNotFoundException" unroll="true"/> |
| <exception name="document-does-not-exist" class="org.apache.lenya.cms.publication.DocumentDoesNotExistException"/> |
| <exception name="invalid-continuation" class="org.apache.cocoon.components.flow.InvalidContinuationException"/> |
| <exception class="org.apache.cocoon.ProcessingException" unroll="true"/> |
| <!-- The statement below tells the selector to unroll as much exceptions as possible --> |
| <exception class="java.lang.Throwable" unroll="true"/> |
| </map:selector> |
| </map:selectors> |
| |
| <!--+ |
| | Actions are executed during pipeline setup. Their purpose is to |
| | execute some code that doesn't involve touching the stream of |
| | pipeline events. Example usage is to update databases, check external |
| | resources, etc.. The execution may fail or complete successfully. Only |
| | if the execution of the action was successful, the pipeline fragment |
| | nested inside the action element is executed, otherwise, it's skipped |
| | entirely and execution proceeds from the element right below the action. |
| +--> |
| <map:actions> |
| <map:action name="request" logger="sitemap.action.request" src="org.apache.cocoon.acting.RequestParamAction"/> |
| <map:action name="form-validator" logger="sitemap.action.form-validator" src="org.apache.cocoon.acting.FormValidatorAction"/> |
| <map:action name="session-state" logger="sitemap.action.session-state" src="org.apache.cocoon.acting.SessionStateAction"/> |
| <map:action name="session-propagator" logger="sitemap.action.session-propagator" src="org.apache.cocoon.acting.SessionPropagatorAction"/> |
| <map:action name="session-isvalid" logger="sitemap.action.session-isvalid" src="org.apache.cocoon.acting.SessionIsValidAction"/> |
| <map:action name="resource-exists" logger="sitemap.action.resource-exists" src="org.apache.cocoon.acting.ResourceExistsAction"/> |
| <map:action name="set-header" logger="sitemap.action.set-header" src="org.apache.cocoon.acting.HttpHeaderAction"/> |
| <map:action name="clear-cache" logger="sitemap.action.clear-cache" src="org.apache.cocoon.acting.ClearCacheAction"/> |
| <map:action name="clear-persistent-store" logger="sitemap.action.clear-persistent-store" src="org.apache.cocoon.acting.ClearPersistentStoreAction"/> |
| <map:action name="session" src="org.apache.cocoon.webapps.session.acting.SessionAction"/> |
| <map:action name="session-form" src="org.apache.cocoon.webapps.session.acting.SessionFormAction"/> |
| <map:action name="parent-child" logger="sitemap.action.parent-child" src="org.apache.lenya.cms.cocoon.acting.ParentChildCreatorAction"> |
| <tree-authoring href="content/authoring/tree.xml"/> |
| <docs href="content/authoring"/> |
| <doctypes href="config/doctypes/"/> |
| </map:action> |
| <map:action name="xopushandler" logger="sitemap.action.xopus" src="org.apache.lenya.cms.cocoon.acting.XopusHandlerAction"> |
| <xml href="content/authoring/"/> |
| <xsl href="xslt"/> |
| <xsd href="config/doctypes/schemas"/> |
| <temp href="temp"/> |
| <rcmlDirectory href="content/rcml"/> |
| <backupDirectory href="content/rcbak"/> |
| </map:action> |
| <map:action name="reserved-checkout" src="org.apache.lenya.cms.cocoon.acting.ReservedCheckoutAction" logger="sitemap.action.reserved-checkout"/> |
| <map:action name="reserved-checkout-test" src="org.apache.lenya.cms.cocoon.acting.ReservedCheckoutTestAction" logger="sitemap.action.reserved-checkout-test"/> |
| <map:action name="reserved-checkin" src="org.apache.lenya.cms.cocoon.acting.ReservedCheckinAction" logger="sitemap.action.reserved-checkin"/> |
| <map:action name="rollback" src="org.apache.lenya.cms.cocoon.acting.RollbackAction"/> |
| <map:action name="upload" logger="sitemap.action.upload" src="org.apache.lenya.cms.cocoon.acting.UploadAction"> |
| <resources-root href="resources/images/live"/> |
| <docs-root href="content/authoring"/> |
| <meta-root href="content/authoring/"/> |
| <insert-image-before value="false"/> |
| </map:action> |
| <map:action name="task" logger="sitemap.action.task" src="org.apache.lenya.cms.cocoon.acting.TaskAction"/> |
| <map:action name="workflow" logger="sitemap.action.workflow" src="org.apache.lenya.cms.cocoon.acting.WorkflowInvokerAction"/> |
| <map:action name="uriparametrizer" src="org.apache.lenya.cms.cocoon.acting.URIParametrizerAction" logger="sitemap.action.uriparametrizer"/> |
| <map:action name="default-create" src="org.apache.lenya.cms.cocoon.acting.DefaultCreatorAction" logger="sitemap.action.default-create"> |
| <tree-authoring href="content/authoring/sitetree.xml"/> |
| <docs href="content/authoring"/> |
| <doctypes href="config/doctypes/"/> |
| </map:action> |
| <map:action name="resource-exists-enhanced" logger="sitemap.action.resource-exists-enhanced" src="org.apache.lenya.cms.cocoon.acting.ResourceExistsAction"/> |
| <map:action name="authorizer" src="org.apache.lenya.cms.cocoon.acting.DelegatingAuthorizerAction" logger="lenya.sitemap.action.authorizer"/> |
| <map:action name="authenticator" src="org.apache.lenya.cms.cocoon.acting.DelegatingAuthenticatorAction" logger="lenya.sitemap.action.authenticator"/> |
| <map:action name="language-exists" logger="lenya.sitemap.action.language-exists" src="org.apache.lenya.cms.cocoon.acting.LanguageExistsAction"/> |
| </map:actions> |
| |
| <!--+ |
| | The different pipe implementations |
| | |
| | NON-CACHING: |
| | The non caching implementation of cocoon pipelines. |
| | |
| | CACHING: |
| | Traditional longest cachable key caching. |
| | |
| | CACHING-POINT: |
| | The caching-point pipeline implements an extended |
| | caching algorithm which is of particular benefit for use with |
| | those pipelines that utilise cocoon-views and/or provide |
| | drill-down functionality. |
| | |
| | The autoCachingPoint algorithim (if enabled) will automatically |
| | cache common elements of the pipeline currently being processed - as well |
| | as the entire cachable pipeline according to the "longest cachable key" |
| | algorithm. |
| | |
| | Consider the following simple pipeline, where generator G is labelled with |
| | a cocoon-view enabling the pipeline to serialize data to either html or pdf |
| | depending on the value of cocoon-view (as provided by the request): |
| | G - T - S(html) |
| | |__ T - S(pdf) |
| | |
| | If cocoon-view=html, then the caching-point algorithm will not only cache |
| | the longest cachable path, which would be GTS(html) but also the |
| | *common element* which in this case would be the results from G. If the |
| | next request to this pipeline was cocoon-view=pdf, then there would be no |
| | need to invoke the generator a second time, as it's value has already been |
| | cached (provided G generates the same cache key) |
| | |
| | Also note: One can switch "Off" autoCachingPoint and use "pipeline-hints" to |
| | manually indicate that certain pipeline-components should be considered as |
| | cache points. |
| +--> |
| <map:pipes default="caching"> |
| <map:pipe name="caching" src="org.apache.cocoon.components.pipeline.impl.CachingProcessingPipeline"/> |
| <map:pipe name="caching-point" src="org.apache.cocoon.components.pipeline.impl.CachingPointProcessingPipeline"> |
| <autoCachingPoint>On</autoCachingPoint> |
| </map:pipe> |
| <map:pipe name="noncaching" src="org.apache.cocoon.components.pipeline.impl.NonCachingProcessingPipeline"/> |
| <!-- The following two can be used for profiling:--> |
| <map:pipe name="profile-caching" src="org.apache.cocoon.components.profiler.ProfilingCachingProcessingPipeline"/> |
| <map:pipe name="profile-noncaching" src="org.apache.cocoon.components.profiler.ProfilingNonCachingProcessingPipeline"/> |
| </map:pipes> |
| |
| </map:components> |
| |
| <!-- =========================== Views =================================== --> |
| |
| <!--+ |
| | Views provide diffent, well, views to resources. Views are |
| | orthogonal to pipelines. Please refer to the docs. |
| +--> |
| <map:views> |
| |
| <map:view name="first" from-position="first"> |
| <map:serialize type="xml"/> |
| </map:view> |
| |
| <map:view name="last" from-position="last"> |
| <map:serialize type="xml"/> |
| </map:view> |
| |
| <map:view from-label="content" name="content"> |
| <map:serialize type="xml"/> |
| </map:view> |
| |
| <map:view from-label="data" name="pretty-content"> |
| <map:transform src="stylesheets/simple-xml2html.xsl"/> |
| <map:serialize type="html"/> |
| </map:view> |
| |
| <map:view from-position="last" name="links"> |
| <map:serialize type="links"/> |
| </map:view> |
| |
| <map:view from-label="aggregate" name="aggregate"> |
| <map:serialize type="xml"/> |
| </map:view> |
| </map:views> |
| |
| <!-- =========================== Resources ================================= --> |
| |
| <!--+ |
| | Resources are pipeline fragments that may be used from different |
| | pipeline fragments. For our needs, they behave exactly like |
| | pipelines, only that they are not accessible from outside. |
| | Hence I will explain what's inside below for pipelines. |
| +--> |
| <map:resources> |
| |
| <map:resource name="navigation"> |
| <map:generate src="lenya/pubs/{pub_id}/content/live/sitetree.xml" /> |
| <map:transform src="lenya/xslt/util/sitetree2navigation.xsl"> |
| <map:parameter name="nav_id" value="{nav_id}"/> |
| </map:transform> |
| </map:resource> |
| |
| <map:resource name="style-cms-page"> |
| <!-- FIXME: due to resolver issues, i18n can currently not be used outside |
| of a publication IF you do not make a hit into a publication context first. |
| <map:transform type="i18n"> |
| <map:parameter name="locale" value="{request:locale}"/> |
| </map:transform> |
| --> <map:transform src="lenya/xslt/util/page2xhtml.xsl"> |
| <map:parameter name="contextprefix" value="{request:contextPath}"/> |
| </map:transform> |
| <map:transform src="lenya/xslt/util/strip_namespaces.xsl"/> |
| <map:serialize/> |
| </map:resource> |
| |
| <map:resource name="i18n"> |
| <map:transform type="i18n"> |
| <map:parameter name="locale" value="{request:locale}"/> |
| </map:transform> |
| </map:resource> |
| </map:resources> |
| |
| <!-- ========================== Action sets ================================ --> |
| |
| <!--+ |
| | Action sets group actions together. If some actions are often used |
| | together in pipeline fragments, it's easier to group them and refer |
| | to the group. For more info, please see the docs. |
| +--> |
| <map:action-sets> |
| </map:action-sets> |
| |
| <!-- =========================== Pipelines ================================= --> |
| |
| <!--+ |
| | Pipelines. The beef. Pipelines specify how the processing of your |
| | content is done. Usually, a pipeline consists of several fragments |
| | that specify the generation, transformation, and serialization of |
| | SAX events. |
| | |
| | Processing is done in two steps: |
| | |
| | 1) The top level elements are executed in order of appearance until |
| | one signals success. These top level elements are usually |
| | matchers. |
| | |
| | Other components are called depth-first to determine what |
| | fragments make up the processing pipeline. When a component |
| | fails, no nested components are called but the next component on |
| | the same level. |
| | |
| | 2) Once it is determined which generator, which transformers and |
| | wich serializer is used, these components are executed. During |
| | this, the pipeline may not be changed. |
| | |
| | You may have as many pipelines in your sitemap as you like. |
| +--> |
| <map:pipelines> |
| |
| <map:component-configurations> |
| <global-variables> |
| <!--+ |
| | Define global parameters here: |
| | <skin>my_skin</skin> |
| | ... |
| | You can access them by {global:*name*}, e.g. {global:skin}. |
| | These values are inherited into sub-sitemaps and can |
| | be extended there. |
| +--> |
| </global-variables> |
| </map:component-configurations> |
| |
| |
| |
| <!-- =========================== Lenya CMS ================================= --> |
| |
| <!-- =========================== Pipelines ================================= --> |
| |
| <map:pipeline> |
| <map:match pattern="publications.xml"> |
| <map:generate type="directory" src="lenya/pubs"/> |
| <map:transform src="lenya/xslt/util/xinclude.xsl"/> |
| <map:transform type="xlink"> |
| <map:parameter name="href" value="lenya/pubs/dummy.xml"/> |
| </map:transform> |
| <map:serialize type="xml"/> |
| </map:match> |
| </map:pipeline> |
| |
| <map:pipeline> |
| <map:match pattern=""> |
| <map:redirect-to uri="index.html"/> |
| </map:match> |
| <map:match pattern="index.html"> |
| <map:aggregate element="lenya" ns="http://apache.org/cocoon/lenya/publication/1.0" prefix="lenya" label="aggregate"> |
| <map:part src="cocoon:/publications.xml"/> |
| <map:part src="lenya/content/introduction.xml"/> |
| </map:aggregate> |
| <map:transform src="lenya/xslt/util/welcome.xsl"/> |
| <map:call resource="style-cms-page"/> |
| </map:match> |
| <map:match pattern="about.html"> |
| <map:generate src="lenya/content/about.xml"/> |
| <map:call resource="style-cms-page"/> |
| </map:match> |
| |
| <map:handle-errors> |
| <map:select type="exception"> |
| <map:when test="resourcenotfound"> |
| <map:generate src="lenya/content/util/empty.xml" /> |
| <map:transform src="lenya/xslt/exception/document-does-not-exist.xsl"/> |
| <map:call resource="style-cms-page"> |
| <map:parameter name="statusCode" value="404"/> |
| </map:call> |
| </map:when> |
| <map:otherwise> |
| <map:generate type="notifying"/> |
| <map:transform src="stylesheets/system/error2html.xslt"> |
| <map:parameter name="contextPath" value="{request:contextPath}"/> |
| </map:transform> |
| </map:otherwise> |
| </map:select> |
| <map:serialize type="html"/> |
| </map:handle-errors> |
| </map:pipeline> |
| |
| <!-- Search with Lucene --> |
| <map:pipeline> |
| <map:match pattern="*/search-*/lucene*"> |
| <map:mount uri-prefix="" src="lenya/{fallback:lucene.xmap}" check-reload="true" reload-method="synchron"/> |
| </map:match> |
| <map:handle-errors> |
| <map:select type="exception"> |
| <map:when test="resourcenotfound"> |
| <map:generate src="lenya/content/util/empty.xml" /> |
| <map:transform src="lenya/xslt/exception/document-does-not-exist.xsl"/> |
| <map:call resource="style-cms-page"> |
| <map:parameter name="statusCode" value="404"/> |
| </map:call> |
| </map:when> |
| <map:otherwise> |
| <map:generate type="notifying"/> |
| <map:transform src="stylesheets/system/error2html.xslt"> |
| <map:parameter name="contextPath" value="{request:contextPath}"/> |
| </map:transform> |
| </map:otherwise> |
| </map:select> |
| <map:serialize type="html"/> |
| </map:handle-errors> |
| </map:pipeline> |
| <!-- /Search with Lucene --> |
| |
| <!-- Editor Xopus --> |
| <map:pipeline> |
| <map:match pattern="xopus/**"> |
| <map:mount uri-prefix="xopus" src="lenya/xopus.xmap" check-reload="true" reload-method="synchron"/> |
| </map:match> |
| </map:pipeline> |
| |
| <!-- Editor BXE --> |
| <map:pipeline> |
| <map:match pattern="bxeng/**"> |
| <map:read src="lenya/resources/bxeng/{1}"/> |
| </map:match> |
| </map:pipeline> |
| |
| <!-- Editor Epoz --> |
| <map:pipeline> |
| <map:match pattern="kupu/**"> |
| <map:read src="lenya/resources/kupu/{1}"/> |
| </map:match> |
| </map:pipeline> |
| |
| <map:pipeline> |
| <!-- Lenya GUI --> |
| <map:match pattern="lenya/**"> |
| <map:mount uri-prefix="lenya" src="lenya/lenya.xmap" check-reload="true" reload-method="synchron"/> |
| </map:match> |
| |
| <!-- Lenya page transformation --> |
| <!-- lenya-page/{publication-id}/{complete-area}/... --> |
| <map:match pattern="lenya-page/*/*/**"> |
| <map:generate src="cocoon:/menu-xml/{1}/{2}/{3}"/> |
| |
| <map:call resource="i18n"/> |
| |
| <map:act type="resource-exists" src="lenya/pubs/{1}/config/workflow/"> |
| <map:transform type="workflowmenu"/> |
| </map:act> |
| |
| <map:act type="resource-exists" src="lenya/pubs/{1}/config/ac/usecase-policies.xml"> |
| <map:transform type="usecasemenu"/> |
| </map:act> |
| |
| <map:transform src="lenya/xslt/menu/menu2xhtml.xsl"> |
| <map:parameter name="contextprefix" value="{request:contextPath}"/> |
| <map:parameter name="publicationid" value="{1}"/> |
| <map:parameter name="completearea" value="{2}"/> |
| <map:parameter name="documentarea" value="{page-envelope:area}"/> |
| <map:parameter name="documenturl" value="{page-envelope:document-url}"/> |
| <map:parameter name="documentid" value="{page-envelope:document-id}"/> |
| <map:parameter name="userid" value="{access-control:user-id}"/> |
| <map:parameter name="servertime" value="{date-i18n:currentDate}"/> |
| <map:parameter name="workflowstate" value="{workflow:state}"/> |
| <map:parameter name="islive" value="{workflow:variable.is_live}"/> |
| </map:transform> |
| |
| <map:call resource="i18n"/> |
| |
| <map:transform src="lenya/xslt/menu/menu2xslt.xsl"> |
| <map:parameter name="contextprefix" value="{request:contextPath}"/> |
| <map:parameter name="publicationid" value="{1}"/> |
| <map:parameter name="area" value="{2}"/> |
| <map:parameter name="documenturl" value="{page-envelope:document-url}"/> |
| </map:transform> |
| <map:serialize type="xml"/> |
| </map:match> |
| |
| <!-- menus --> |
| |
| <!-- menu-xml/{publication-id}/admin/... --> |
| <map:match pattern="menu-xml/*/admin/**" internal-only="true"> |
| <map:generate type="serverpages" src="lenya/content/menus/admin.xsp"/> |
| <map:serialize type="xml"/> |
| </map:match> |
| |
| <!-- menu-xml/{publication-id}/... --> |
| <map:match pattern="menu-xml/*/**" internal-only="true"> |
| <map:mount uri-prefix="menu-xml/{1}/" src="lenya/pubs/{1}/menus.xmap" check-reload="true" reload-method="synchron"/> |
| </map:match> |
| |
| <!-- navigation --> |
| <map:match pattern="navigation/**"> |
| <map:mount uri-prefix="navigation" src="lenya/navigation.xmap" check-reload="true" reload-method="synchron"/> |
| </map:match> |
| |
| <!-- uri-parameter/{publication-id}/{parameter}/{area}/{uri} --> |
| <map:match pattern="uri-parameter/*/*/*/**"> |
| <map:mount uri-prefix="uri-parameter/{1}/{2}/" src="lenya/pubs/{1}/parameter-{2}.xmap" check-reload="true" reload-method="synchron"/> |
| </map:match> |
| |
| <!-- Access Control Policies --> |
| <map:match pattern="*/policies/**"> |
| <map:mount uri-prefix="{1}/policies" src="lenya/pubs/{1}/policies-sitemap.xmap" check-reload="true" reload-method="synchron"/> |
| </map:match> |
| |
| <!-- Admin Area --> |
| <map:match pattern="*/admin/**"> |
| <map:mount uri-prefix="{1}/admin" src="lenya/admin.xmap" check-reload="true" reload-method="synchron"/> |
| </map:match> |
| |
| <!-- Scheduler --> |
| <map:match pattern="scheduler/**"> |
| <map:mount uri-prefix="scheduler/" src="lenya/scheduler.xmap" check-reload="true" reload-method="synchron"/> |
| </map:match> |
| |
| <!-- Info usecases --> |
| <map:match type="usecase" pattern="info-*"> |
| <map:mount uri-prefix="" src="lenya/info.xmap" check-reload="true" reload-method="synchron"/> |
| </map:match> |
| |
| <!-- Internal usecases --> |
| <map:pipeline internal-only="true"> |
| <map:match type="usecase" pattern="*"> |
| <map:match pattern="*/**"> |
| <map:mount uri-prefix="{1}" src="lenya/pubs/{1}/sitemap.xmap" check-reload="true" reload-method="synchron"/> |
| </map:match> |
| </map:match> |
| </map:pipeline> |
| |
| <!-- Usecases --> |
| <map:match type="usecase" pattern="*"> |
| <map:mount uri-prefix="" src="lenya/usecase.xmap" check-reload="true" reload-method="synchron"/> |
| </map:match> |
| |
| <!-- Info area --> |
| <map:match pattern="*/*/info-sitetree/**"> |
| <map:mount uri-prefix="" src="lenya/info.xmap" check-reload="true" reload-method="synchron"/> |
| </map:match> |
| <map:match pattern="*/info-*/**"> |
| <map:mount uri-prefix="" src="lenya/info.xmap" check-reload="true" reload-method="synchron"/> |
| </map:match> |
| |
| <!-- Publications --> |
| <map:match pattern="*/"> |
| <map:redirect-to uri="introduction.html"/> |
| </map:match> |
| <map:match pattern="*/index.html"> |
| <map:redirect-to uri="introduction.html"/> |
| </map:match> |
| |
| <!-- About Publication --> |
| <map:match pattern="*/introduction.html"> |
| <map:generate src="lenya/pubs/{1}/publication.xml" /> |
| <map:transform src="lenya/xslt/util/publication.xsl"/> |
| <map:call resource="style-cms-page"/> |
| </map:match> |
| <!-- Publication Tests--> |
| <map:match pattern="*/tests.html"> |
| <map:generate src="lenya/pubs/{1}/publication-tests.xml" /> |
| <map:transform src="lenya/xslt/util/publication.xsl"/> |
| <map:call resource="style-cms-page"/> |
| </map:match> |
| |
| <!-- Enter the actual publication (url = "") --> |
| <map:match pattern="*/"> |
| <map:mount uri-prefix="{1}" src="lenya/pubs/{1}/sitemap.xmap" check-reload="true" reload-method="synchron"/> |
| </map:match> |
| |
| <!-- Resources --> |
| |
| <!-- {publication-id}/{area}/{file} --> |
| <map:match pattern="*/*/**"> |
| <map:act type="resource-exists-enhanced"> |
| <map:parameter name="url" value="lenya/pubs/{1}/resources/{2}/{3}"/> |
| <map:parameter name="type" value="file"/> |
| <map:mount uri-prefix="" src="lenya/resources.xmap" check-reload="true" reload-method="synchron"/> |
| </map:act> |
| <map:act type="resource-exists-enhanced"> |
| <map:parameter name="url" value="lenya/pubs/{1}/resources/shared/{3}"/> |
| <map:parameter name="type" value="file"/> |
| <map:mount uri-prefix="" src="lenya/resources-shared.xmap" check-reload="true" reload-method="synchron"/> |
| </map:act> |
| </map:match> |
| |
| <!-- Enter the actual publication --> |
| <map:match pattern="*/**"> |
| <map:mount uri-prefix="{1}" src="lenya/pubs/{1}/sitemap.xmap" check-reload="true" reload-method="synchron"/> |
| </map:match> |
| |
| <map:handle-errors> |
| <map:select type="exception"> |
| <map:when test="resourcenotfound"> |
| <map:generate src="lenya/content/util/empty.xml" /> |
| <map:transform src="lenya/xslt/exception/document-does-not-exist.xsl"/> |
| <map:call resource="style-cms-page"> |
| <map:parameter name="statusCode" value="404"/> |
| </map:call> |
| </map:when> |
| <map:otherwise> |
| <map:generate type="notifying"/> |
| <map:transform src="stylesheets/system/error2html.xslt"> |
| <map:parameter name="contextPath" value="{request:contextPath}"/> |
| </map:transform> |
| </map:otherwise> |
| </map:select> |
| <map:serialize type="html"/> |
| </map:handle-errors> |
| |
| </map:pipeline> |
| |
| </map:pipelines> |
| |
| </map:sitemap> |