I appericated that , but guess what its not workin :/

so i have enclosed both my projects sitemap.xmap and the cocoon
sitemap.xmap

i created a src dir under /var/tomcat/webapps/cocoon/lnxserv where i
put the projects sitemap.xmap

heres the sitemap.xmap for that

<?xml version="1.0"?>
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0";>
        <map:components>
                <map:generators default="file"/>
                <map:transformers default="xslt"/>
                <map:readers default="resource"/>
                <map:serializers default="html"/>
                <map:matchers default="wildcard"/>
                <map:selectors default="browser"/>
        </map:components>

        <map:pipelines>
                <map:pipeline>
                        <map:match pattern="">
                                <map:redirect-to uri="index.html" />
                        </map:match>
                        <map:match pattern=*.html">
                                <map:read src="{1}.html" mime-type="text/html" />
                        </map:match>
                </map:pipeline>
        </map:pipelines>
</map:sitemap>



i have attached the cocoon sitemap to the email i added my project info
to the bottom of the page 




and added the info into the cocoons sitemap.xmap

i running on port 8080 pleas have a look and see if u can spot the
errors

im u running tomcat 4.0 binary version , java jdk 1.3.1_01 and the
latest cocoon2.0.2 binary version 
<?xml version="1.0" encoding="UTF-8"?>
<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 basicly 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.
   
   There are some other, less important parts that deal with
   resources, views and action sets. For now, ignore them.
-->



<!-- =========================== 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 character 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 example 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 label="content,data" logger="sitemap.generator.file" name="file" 
pool-grow="4" pool-max="32" pool-min="8" 
src="org.apache.cocoon.generation.FileGenerator"/>

    <map:generator label="content,data" logger="sitemap.generator.serverpages" 
name="serverpages" pool-grow="2" pool-max="32" pool-min="4" 
src="org.apache.cocoon.generation.ServerPagesGenerator"/>
    
    <map:generator label="content,data" logger="sitemap.generator.directory" 
name="directory" pool-grow="2" pool-max="16" pool-min="2" 
src="org.apache.cocoon.generation.DirectoryGenerator"/>

    <map:generator label="data" logger="sitemap.generator.request" name="request" 
pool-grow="2" pool-max="16" pool-min="2" 
src="org.apache.cocoon.generation.RequestGenerator"/>

    <map:generator label="data" logger="sitemap.generator.status" name="status" 
pool-grow="2" pool-max="16" pool-min="2" 
src="org.apache.cocoon.generation.StatusGenerator"/>

   <map:generator label="content,data" logger="sitemap.generator.imagedirectory" 
name="imagedirectory" src="org.apache.cocoon.generation.ImageDirectoryGenerator"/>

   <map:generator label="data" logger="sitemap.generator.extractor" name="extractor" 
src="org.apache.cocoon.generation.FragmentExtractorGenerator"/>
  
    <map:generator label="content,data" name="script" 
src="org.apache.cocoon.generation.ScriptGenerator"/>

    <map:generator label="content,data" name="velocity" 
src="org.apache.cocoon.generation.VelocityGenerator"/>

    <map:generator label="content,data" name="jsp" 
src="org.apache.cocoon.generation.JspGenerator"/>
    <map:generator label="content,data" name="stream" 
src="org.apache.cocoon.generation.StreamGenerator"/>

    <map:generator label="content,data" name="html" 
src="org.apache.cocoon.generation.HTMLGenerator"/>


    <!-- ======================= SunShine =========================== -->
    <map:generator label="content,data" name="sunSpot" 
src="org.apache.cocoon.sunshine.sunspot.generation.PortalGenerator"/>
    <map:generator label="content,data" name="sunSpot-conf" 
src="org.apache.cocoon.sunshine.sunspot.generation.ConfigurationGenerator"/>
    <map:generator label="content,data" name="sunRise-conf" 
src="org.apache.cocoon.sunshine.sunrise.generation.ConfigurationGenerator"/>
</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 logger="sitemap.transformer.xslt" name="xslt" pool-grow="2" 
pool-max="32" pool-min="8" src="org.apache.cocoon.transformation.TraxTransformer">
      <use-request-parameters>false</use-request-parameters>
      <use-browser-capabilities-db>false</use-browser-capabilities-db>
      <use-deli>false</use-deli>
    </map:transformer>

    <map:transformer logger="sitemap.transformer.log" name="log" pool-grow="2" 
pool-max="16" pool-min="2" src="org.apache.cocoon.transformation.LogTransformer"/>

    <map:transformer logger="sitemap.transformer.xinclude" name="xinclude" 
pool-grow="2" pool-max="16" pool-min="2" 
src="org.apache.cocoon.transformation.XIncludeTransformer"/>

    <map:transformer logger="sitemap.transformer.cinclude" name="cinclude" 
pool-grow="2" pool-max="16" pool-min="2" 
src="org.apache.cocoon.transformation.CIncludeTransformer"/>

   <map:transformer logger="sitemap.transformer.sql" name="sql" 
src="org.apache.cocoon.transformation.SQLTransformer"/>

   <map:transformer logger="sitemap.transformer.extractor" name="extractor" 
src="org.apache.cocoon.transformation.FragmentExtractorTransformer"/>

   <map:transformer logger="sitemap.transformer.i18n" name="i18n" 
src="org.apache.cocoon.transformation.I18nTransformer">
    <catalogue-name>messages</catalogue-name>
    <catalogue-location>translations</catalogue-location>
   </map:transformer>

   <map:transformer logger="sitemap.transformer.filter" name="filter" 
src="org.apache.cocoon.transformation.FilterTransformer"/>

   <map:transformer logger="sitemap.transformer.writeDOMsession" 
name="writeDOMsession" 
src="org.apache.cocoon.transformation.WriteDOMSessionTransformer"/>

   <map:transformer logger="sitemap.transformer.readDOMsession" name="readDOMsession" 
src="org.apache.cocoon.transformation.ReadDOMSessionTransformer"/>
   <map:transformer logger="sitemap.transformer.encodeURL" name="encodeURL" 
src="org.apache.cocoon.transformation.EncodeURLTransformer"/>

  
    <map:transformer name="xt" src="org.apache.cocoon.transformation.XTTransformer"/>


    <!-- ======================= SunShine =========================== -->
    <map:transformer name="sunShine" 
src="org.apache.cocoon.sunshine.transformation.SunShineTransformer"/>
    <map:transformer name="sunShinePre" 
src="org.apache.cocoon.sunshine.transformation.SunShinePreTransformer"/>
    <map:transformer name="sunShinePost" 
src="org.apache.cocoon.sunshine.transformation.SunShinePostTransformer"/>
    <map:transformer name="sunShineInsert" 
src="org.apache.cocoon.sunshine.transformation.InsertTransformer"/>
</map:transformers>

<!--
  Readers are an exception to the above rule that a pipline need to
  have exactly one generator and exactly one serializer. 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 logger="sitemap.reader.resource" name="resource" pool-max="32" 
src="org.apache.cocoon.reading.ResourceReader"/>
  
    <map:reader name="jsp" src="org.apache.cocoon.reading.JSPReader"/>
</map:readers>

<!--
  Serializers consume SAX events and produce a character stream. Every
  pipeline needs to be terminated by a serializer.
-->
  <map:serializers default="html">
    <map:serializer logger="sitemap.serializer.links" name="links" 
src="org.apache.cocoon.serialization.LinkSerializer"/>

    <map:serializer logger="sitemap.serializer.xml" mime-type="text/xml" name="xml" 
src="org.apache.cocoon.serialization.XMLSerializer"/>

    <map:serializer logger="sitemap.serializer.html" mime-type="text/html" name="html" 
pool-grow="4" pool-max="32" pool-min="4" 
src="org.apache.cocoon.serialization.HTMLSerializer">
      <buffer-size>1024</buffer-size>
    </map:serializer>

   <map:serializer logger="sitemap.serializer.vrml" mime-type="model/vrml" name="vrml" 
src="org.apache.cocoon.serialization.TextSerializer"/>

   <map:serializer logger="sitemap.serializer.wml" mime-type="text/vnd.wap.wml" 
name="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 logger="sitemap.serializer.svgxml" mime-type="image/svg-xml" 
name="svgxml" 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 logger="sitemap.serializer.xhtml" mime-type="text/html" 
name="xhtml" 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 logger="sitemap.serializer.text" mime-type="text/text" name="text" 
src="org.apache.cocoon.serialization.TextSerializer"/>
  
    <map:serializer mime-type="image/jpeg" name="svg2jpeg" 
src="org.apache.cocoon.serialization.SVGSerializer"/>
    <map:serializer mime-type="image/png" name="svg2png" 
src="org.apache.cocoon.serialization.SVGSerializer"/>

    <map:serializer mime-type="application/pdf" name="fo2pdf" 
src="org.apache.cocoon.serialization.FOPSerializer"/>
    <map:serializer mime-type="application/postscript" name="fo2ps" 
src="org.apache.cocoon.serialization.FOPSerializer"/>
    <map:serializer mime-type="vnd.hp-PCL" name="fo2pcl" 
src="org.apache.cocoon.serialization.FOPSerializer"/>
</map:serializers>

<!--
  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.
  Related concepts are selectors and actions. 

  Since this is important, let me repeat it: Matchers are executed
  during pipeline setup.
-->
  <map:matchers default="wildcard">
    <map:matcher logger="sitemap.matcher.wildcard" name="wildcard" 
src="org.apache.cocoon.matching.WildcardURIMatcher"/>

    <map:matcher logger="sitemap.matcher.regexp" name="regexp" 
src="org.apache.cocoon.matching.RegexpURIMatcher"/>
   <map:matcher logger="sitemap.matcher.request-parameter" name="request-parameter" 
src="org.apache.cocoon.matching.RequestParameterMatcher"/>

   <map:matcher logger="sitemap.matcher.cookie" name="cookie" 
src="org.apache.cocoon.matching.CookieMatcher"/>

   <map:matcher logger="sitemap.matcher.header" name="header" 
src="org.apache.cocoon.matching.HeaderMatcher"/>

   <map:matcher logger="sitemap.matcher.parameter" name="parameter" 
src="org.apache.cocoon.matching.ParameterMatcher"/>

   <map:matcher logger="sitemap.matcher.sessionstate" name="sessionstate" 
src="org.apache.cocoon.matching.WildcardSessionAttributeMatcher">
      <attribute-name>org.apache.cocoon.SessionState</attribute-name>
   </map:matcher>

   <map:matcher logger="sitemap.matcher.next-page" name="next-page" 
src="org.apache.cocoon.matching.WildcardRequestParameterMatcher">
      <parameter-name>next-state</parameter-name>
   </map:matcher>

   <map:matcher logger="sitemap.matcher.referer-match" name="referer-match" 
src="org.apache.cocoon.matching.WildcardHeaderMatcher">
      <header-name>referer</header-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 switch statement in java. Matchers and actions are
  related concepts.

  Since this is important, let me repeat it: Selectors are executed
  during pipeline setup.
-->
  <map:selectors default="browser">
   <map:selector logger="sitemap.selector.browser" name="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 logger="sitemap.selector.request-parameter" name="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 logger="sitemap.selector.request-attribute" name="request-attribute" 
src="org.apache.cocoon.selection.RequestAttributeSelector">
    <!-- <attribute-name>myparam</attribute-name> -->
   </map:selector>

   <map:selector logger="sitemap.selector.session-attribute" name="session-attribute" 
src="org.apache.cocoon.selection.SessionAttributeSelector">
    <!-- <attribute-name>myparam</attribute-name> -->
   </map:selector>

   <map:selector logger="sitemap.selector.parameter" name="parameter" 
src="org.apache.cocoon.selection.ParameterSelector"/>

   <map:selector logger="sitemap.selector.header" name="header" 
src="org.apache.cocoon.selection.HeaderSelector">
    <!-- <header-name>myparam</header-name> -->
   </map:selector>

   <map:selector logger="sitemap.selector.host" name="host" 
src="org.apache.cocoon.selection.HostSelector"/>
  </map:selectors>

<!--
  Actions are executed during pipeline setup. Their purpose is to
  execute some arbitrary complex code. They are the work horses of
  pipelines. Use them to update databases, check external resources
  etc. The execution may fail or complete successfully. Only if the
  execution was successful, the pipeline fragment contained inside is
  used within the pipeline. Related concepts are matchers and
  selectors.

  Since this is important, let me repeat it: Actions are executed
  during pipeline setup.
-->
  <map:actions>
    <map:action logger="sitemap.action.add-employee" name="add-employee" 
src="org.apache.cocoon.acting.DatabaseAddAction"/>

    <map:action logger="sitemap.action.del-employee" name="del-employee" 
src="org.apache.cocoon.acting.DatabaseDeleteAction"/>

    <map:action logger="sitemap.action.upd-employee" name="upd-employee" 
src="org.apache.cocoon.acting.DatabaseUpdateAction"/>

   <map:action logger="sitemap.action.lang-select" name="lang-select" 
src="org.apache.cocoon.acting.LangSelect"/>

   <map:action logger="sitemap.action.locale" name="locale" 
src="org.apache.cocoon.acting.LocaleAction"/>

   <map:action logger="sitemap.action.request" name="request" 
src="org.apache.cocoon.acting.RequestParamAction"/>

   <map:action logger="sitemap.action.form-validator" name="form-validator" 
src="org.apache.cocoon.acting.FormValidatorAction"/>

   <map:action logger="sitemap.action.session-state" name="session-state" 
src="org.apache.cocoon.acting.SessionStateAction"/>

   <map:action logger="sitemap.action.session-isvalid" name="session-isvalid" 
src="org.apache.cocoon.acting.SessionIsValidAction"/>

   <map:action logger="sitemap.action.resource-exists" name="resource-exists" 
src="org.apache.cocoon.acting.ResourceExistsAction"/>

   <map:action logger="sitemap.action.set-header" name="set-header" 
src="org.apache.cocoon.acting.HttpHeaderAction"/>

  

    <!-- ======================= SunShine =========================== -->
    <map:action name="sunShine-session" 
src="org.apache.cocoon.sunshine.acting.SessionAction"/>
    <map:action name="sunRise-auth" 
src="org.apache.cocoon.sunshine.sunrise.acting.AuthAction">
        <handlers>
          <handler name="sunspotdemohandler" 
xmlns:map="http://apache.org/cocoon/sitemap/1.0"; 
xmlns:sunshine="http://sunshine.sundn.de/sunshine/1.0";>
                <redirect-to uri="cocoon://sunspotdemoportal"/>
                <authentication 
uri="cocoon:raw://sunspotdemoresource-sunrise-authuser"/>
                <load-users uri="cocoon:raw://sunspotdemoresource-sunrise-loaduser"/>
                <load-roles uri="cocoon:raw://sunspotdemoresource-sunrise-roles"/>
                <new-user uri="cocoon:raw://sunspotdemoresource-sunrise-newuser"/>
                <new-role uri="cocoon:raw://sunspotdemoresource-sunrise-newrole"/>
                <change-user 
uri="cocoon:raw://sunspotdemoresource-sunrise-changeuser"/>
                <delete-role uri="cocoon:raw://sunspotdemoresource-sunrise-delrole"/>
                <delete-user uri="cocoon:raw://sunspotdemoresource-sunrise-deluser"/>
                <applications>
                        <application loadondemand="true" name="sunspotdemo">
                                <configuration name="sunSpot">
                                        
<auth-redirect>sunspotdemo-portal</auth-redirect>
                                        <portal-uri>sunspotdemo-portal</portal-uri>
                                        <profile-cache>true</profile-cache>
                                        
<process-sunlets-parallel>false</process-sunlets-parallel>
                                        
<default-sunlet-timeout>10000</default-sunlet-timeout> <!-- milliseconds -->
                                        <profile>
                                                <layout-base 
uri="sunspotdemo/profiles/layoutprofile.xml"/>
                                                <sunlet-base 
uri="sunspotdemo/profiles/sunletprofile.xml"/>
                                                <sunlet-base-save 
uri="sunspotdemo/profiles/sunletprofile.xml"/>
                                                <type-base 
uri="sunspotdemo/profiles/types.xml"/>
                                                <admin-type-base 
uri="sunspotdemo/profiles/admintypes.xml"/>
                                                <global-delta-load 
uri="sunspotdemo/profiles/globalprofile.xml"/>
                                                <global-delta-save 
uri="cocoon:raw://sunspotdemoresource-saveglobalprofile"/>
                                                <role-delta-load 
uri="cocoon:raw://sunspotdemoresource-roleprofile"/>
                                                <role-delta-save 
uri="cocoon:raw://sunspotdemoresource-saveroleprofile"/>
                                                <user-delta-load 
uri="cocoon:raw://sunspotdemoresource-userprofile"/>
                                                <user-delta-save 
uri="cocoon:raw://sunspotdemoresource-saveuserprofile"/>
                                                <user-status-load 
uri="cocoon:raw://sunspotdemoresource-userstatus"/>
                                                <user-status-save 
uri="cocoon:raw://sunspotdemoresource-saveuserstatus"/>
                                        </profile>
                                </configuration>
                        </application>
                </applications>
            </handler>
        </handlers>
    </map:action>

    <map:action name="sunRise-login" 
src="org.apache.cocoon.sunshine.sunrise.acting.LoginAction"/>
    <map:action name="sunRise-logout" 
src="org.apache.cocoon.sunshine.sunrise.acting.LogoutAction"/>
    <map:action name="sunRise-loggedIn" 
src="org.apache.cocoon.sunshine.sunrise.acting.LoggedInAction"/>
    <map:action name="sunSpot-auth" 
src="org.apache.cocoon.sunshine.sunspot.acting.AuthAction"/>
</map:actions>
 </map:components>

<!-- =========================== Views =================================== -->

<!--
  Views provide diffent, well, views to resources. Views are
  orthogonal to pipelines. Please refer to the docs.
-->
 <map:views>
  <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: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="slides">
   <map:generate src="docs/samples/slides/slides.xml"/>
   <map:transform src="stylesheets/slides/slides-navigation.xsl">
    <map:parameter name="use-request-parameters" value="true"/>
    <map:parameter name="use-browser-capabilities-db" value="true"/>
   </map:transform>
   <map:transform src="stylesheets/slides/slides-apachecon.xsl"/>
   <map:serialize/>
  </map:resource>

  <map:resource name="dynamic-page">
     <map:generate src="{target}.xsp" type="serverpages"/>
     <map:transform src="stylesheets/dynamic-page2html.xsl">
       <map:parameter name="view-source" value="{target}.xsp"/>
     </map:transform>
     <map:serialize/>
  </map:resource>

  <map:resource name="dynamic-page1">
     <!-- print all current sitemap parameters to log -->
     <map:act type="session-state">
        <map:parameter name="new-state" value="{../0}"/>
        <!-- 
           use the complete string that was matched as a parameter. Compare
           this with the target parameter below. There the third
           sitemap parameter refers to the very same string. Verfy this
           by looking at the log. This irritating effect stems from
           the fact, that the above map:parameter belongs conceptually
           still to the parent element while all other nested tags
           are, well, nested.
        -->
        <map:call resource="dynamic-page">
           <map:parameter name="target" 
value="{../target}/state{../../../0}{../../0}"/>
        </map:call>
     </map:act>
  </map:resource>

  <map:resource name="dynamic-page2">
     <map:act type="session-state">
        <map:parameter name="new-state" value="1"/>
        <map:call resource="dynamic-page">
           <map:parameter name="target" value="{../target}1"/>
        </map:call>
     </map:act>
  </map:resource>

  <map:resource name="simple-page">
     <map:generate src="{target}.xml" type="file"/>
     <map:transform src="stylesheets/page/simple-page2html.xsl">
        <map:parameter name="view-source" value="{target}.xml"/>
     </map:transform>
     <map:serialize/>
  </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-set name="employee">
   <map:act action="Add" type="add-employee"/>
   <map:act action="Delete" type="del-employee"/>
   <map:act action="Update" type="upd-employee"/>
  </map:action-set>
 </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. AFAIK other components are not supported for this.

     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. However,
  it seems that the only purposes would be to specify different error
  handlers.
-->

 <map:pipelines>

  <!-- sub-sitemap example pipeline -->
  <map:pipeline>
    <!-- Matcher: -->
    <map:match pattern="sub/**">
      <!--
        matches all URIs starting with "sub". Have a look at
        the docs for this matcher component. 
        
        "*" means, anything that does not contain a path separator,
        i.e. slash "/", "**" means anything including path
        separators. What is matched by the wildcard is put into sitemap
        variables.
        
        Sitemap variables are organized like a stack, a new set is placed
        on top of the already present ones. Any existing variable can be
        accessed through a simplified path expression. These simplified
        path expression may only use any number of "../" to refer to the
        previous levels.
        
        If a component completes successfully, it sets some sitemap
        variables. Their scope is only within the element of that
        component. Thus they can only be accessed by nested components.
      -->
        
      <!-- Mount: -->
      <map:mount check-reload="yes" src="sub/sitemap.xmap" uri-prefix="sub"/>
      <!--
        Sitemaps may be organized hierarchically. Here such a subsitemap
        is "mounted" (think: unix filesystems) to be responsible for all
        URIs starting with "sub/". The file itself is by
        coincidence located in a subdirectory named "sub/" as
        well. There's no need to do that but it is good practice. The
        check-reload attributes specifies, if changed to the subsitemap
        should result in cocoon rereading the subsitemap or if they are to
        be ignored. See docs for suggestions on this.
      
        Note here, that all component declarations are inherited to a
        subsitemap.
      -->
    </map:match>

    <map:handle-errors>
      <!-- 
        This pipeline specifies a different error handler.
      -->
      <map:transform src="stylesheets/system/error2html.xsl"/>
      <map:serialize status-code="500"/>
    </map:handle-errors>
  </map:pipeline>

  <!-- Cocoon documentation pipeline -->
  <map:pipeline>
    <map:match pattern="documents/index">
      <map:redirect-to uri="index.html"/>
      <!--
        You may direct a client to a more appropriate URI by the above
        command. The above results in a redirect response to the
        client. By redirecting to a ressource it would be handled by
        cocoon internally.

        Since pipelines work on a first match basis, the above wins the
        request although the match below would match as well.
      -->
    </map:match>
    <map:match pattern="documents/**">
      <map:mount check-reload="yes" src="documentation/" uri-prefix="documents"/>
    </map:match>
    <map:match pattern="tutorial/**">
      <map:mount check-reload="yes" src="tutorial/" uri-prefix="tutorial/"/>
    </map:match>

  </map:pipeline>

  

  <map:pipeline internal-only="true">
    <!-- ======================= SunShine =========================== -->
    <!-- This is the sunSpot Cocoon Demo Portal Pipeline              -->
        <map:match pattern="sunspotdemoresource-sunrise-*">
                <!-- authentication -->
                <map:match pattern="sunspotdemoresource-sunrise-authuser">
                        <map:generate src="sunspotdemo/resources/sunrise-user.xml"/>
                        <map:transform src="sunspotdemo/styles/sunrise-user.xsl">
                                <map:parameter name="use-request-parameters" 
value="true"/>
                  </map:transform>
                        <map:serialize type="xml"/>
                </map:match>

                <map:match pattern="sunspotdemoresource-sunrise-changeuser">
                        <map:generate 
src="sunspotdemo/resources/sunrise-changeuser.xml"/>
                        <map:transform type="sunShine"/>
                        <map:transform src="sunspotdemo/styles/changeuser.xsl"/>
                        <map:transform type="sunShineInsert"/>
                        <map:transform src="sunspotdemo/styles/portal.xsl"/>
                        <map:serialize type="xml"/>
                </map:match>

                <map:match pattern="sunspotdemoresource-*">
                        <map:generate src="sunspotdemo/resources/{1}.xml"/>
                        <map:transform type="sunShine"/>
                        <map:transform type="sunShineInsert"/>
                        <map:transform src="sunspotdemo/styles/portal.xsl"/>
                        <map:serialize type="xml"/>
                </map:match>
        </map:match>
  </map:pipeline>
<map:pipeline id="optional">
    <!-- Utility for viewing source xml or html -->
    <!-- sample use of regexp equivalent to "**.source" using wildcard
         this also shows the '\{' notation to escape sitemap values substitution -->
    <map:match pattern="(.*)\.s\{1}ource" type="regexp">
      <map:generate src="cocoon:/{1}"/>
      <map:transform src="stylesheets/simple-xml2html.xsl"/>
      <map:serialize/>
    </map:match>

    <!-- Below goes entries added by Cocoon build system -->
  

    <!-- XSP pages written in Javascript -->
    <map:match pattern="xsp-js/*">
      <map:generate src="docs/samples/xsp-js/{1}.xsp" type="serverpages">
        <map:parameter name="programming-language" value="js"/>
      </map:generate>
      <map:transform src="stylesheets/dynamic-page2html.xsl">
        <map:parameter name="view-source" value="docs/samples/xsp-js/{1}.xsp"/>
      </map:transform>
      <map:serialize/>
    </map:match>


    <!-- Mount search pages sitemap, for using indexing & searching -->
    <map:match pattern="search/**">
      <map:mount check-reload="yes" src="search/" uri-prefix="search"/>
    </map:match>


    <!-- ======================= XML:DB ============================== -->
    <map:match pattern="xmldb/**">
      <map:match pattern="xpath" type="request-parameter">
        <map:generate src="xmldb:xindice://localhost:4080/db/{../1}#{1}"/>
        <map:serialize type="xml"/>
      </map:match>

      <map:generate src="xmldb:xindice://localhost:4080/db/{1}"/>
      <map:serialize type="xml"/>
    </map:match>


    <!-- ======================= SunShine =========================== -->
    <!-- This is the sunSpot Cocoon Demo Portal Pipeline -->
        <map:match pattern="sunspotdemoportal">
                <map:act type="sunRise-loggedIn">
                        <map:parameter name="handler" value="sunspotdemohandler"/> 
                        <map:redirect-to uri="sunspotdemo-portal"/>
                </map:act>
                <map:generate src="sunspotdemo/resources/free/portal.xml"/>
                <map:transform src="sunspotdemo/styles/TO-html.xsl"/>
                <map:transform type="encodeURL"/>
                <map:serialize/>
        </map:match>

        <!-- images -->
         <map:match pattern="sunspotdemoimg-*.gif">
                <map:read mime-type="image/gif" src="sunspotdemo/images/{1}.gif"/>
        </map:match>
        <map:match pattern="sunspotdemoimg-*.jpg">
                <map:read mime-type="image/jpg" src="sunspotdemo/images/{1}.jpg"/>
        </map:match>

        <!-- free sites -->
        <map:match pattern="sunspotdemofree-login">
                <map:act type="sunRise-loggedIn">
                        <map:parameter name="handler" value="sunspotdemohandler"/> 
                        <map:redirect-to uri="sunspotdemo-portal"/>
                </map:act>
                <map:generate src="sunspotdemo/resources/free/login.xml"/>
                <map:transform src="sunspotdemo/styles/login-html.xsl"/>
                <map:transform src="sunspotdemo/styles/TO-html.xsl"/>
                <map:transform type="encodeURL"/>
                <map:serialize/>
        </map:match>
        <map:match pattern="sunspotdemofree-auth">
                <map:act type="sunRise-loggedIn">
                        <map:parameter name="handler" value="sunspotdemohandler"/> 
                        <map:redirect-to uri="sunspotdemo-loggedin"/>
                </map:act>
                <map:act type="sunRise-login">
                <map:parameter name="handler" value="sunspotdemohandler"/>
                        <map:parameter name="parameter_name" value="request:name"/>
                        <map:parameter name="parameter_password" 
value="request:password"/>
                        <map:redirect-to uri="sunspotdemo-portal"/>
              </map:act>
                <map:generate src="sunspotdemo/resources/free/auth.xml"/>
                <map:transform src="sunspotdemo/styles/TO-html.xsl"/>
                <map:transform type="encodeURL"/>
                <map:serialize/>
        </map:match>
        <map:match pattern="sunspotdemofree-*">
                <map:act type="sunRise-loggedIn">
                        <map:parameter name="handler" value="sunspotdemohandler"/> 
                        <map:redirect-to uri="sunspotdemo-portal"/>
                </map:act>
                <map:generate src="sunspotdemo/resources/free/{1}.xml"/>
                <map:transform src="sunspotdemo/styles/TO-html.xsl"/>
                <map:transform type="encodeURL"/>
                <map:serialize/>
        </map:match>

      <map:match pattern="sunspotdemo**">
                <map:act type="sunRise-auth">
                        <map:parameter name="handler" value="sunspotdemohandler"/> 
                        <map:parameter name="application" value="sunspotdemo"/> 
        
                        <map:match pattern="sunspotdemoresource-save*">
                                <map:generate src="sunspotdemo/resources/save{1}.xml"/>
                                <map:transform type="sunShine"/>
                                <map:transform type="sunShineInsert"/>
                                <map:serialize type="xml"/>
                        </map:match>
                        <map:match pattern="sunspotdemoresource-*">
                                <map:generate src="sunspotdemo/resources/{1}.xml"/>
                                <map:transform type="sunShine"/>
                                <map:transform type="sunShineInsert"/>
                                <map:transform src="sunspotdemo/styles/portal.xsl"/>
                                <map:serialize type="xml"/>
                        </map:match>

                <!-- sunlets -->
                        <map:match pattern="sunspotdemosunlet-onlinesundn.xml"> 
                                <map:generate 
src="http://www.s-und-n.de/aktuelles/news.xml"/>
                                <map:transform 
src="sunspotdemo/styles/sunLet_sundnNews.xsl"/>
                                <map:serialize type="xml"/>
                        </map:match>

                        <map:match pattern="sunspotdemosunlet-online-*.xml"> 
                                <map:generate 
src="http://p.moreover.com/cgi-local/page?index_{1}+xml"/>
                                <map:transform 
src="sunspotdemo/styles/sunLet_MoreoverDotCom.xsl"/>
                                <map:serialize type="xml"/>
                        </map:match>
                        <map:match pattern="sunspotdemosunlet-customnews">
                                <map:generate 
src="sunspotdemo/resources/auth/sunlet-customnews.xml"/>
                                <map:transform type="sunShine"/>
                                <map:transform 
src="sunspotdemo/styles/sunLet_MoreoverDotCom.xsl"/>
                                <map:serialize type="xml"/> 
                        </map:match>
                        <map:match pattern="sunspotdemosunletconf-*"> 
                                <map:generate 
src="sunspotdemo/resources/auth/sunletconfig-{1}.xml"/>
                                <map:transform type="sunShine"/>
                                <map:transform 
src="sunspotdemo/styles/sunletconf.xsl"/>
                                <map:serialize type="xml"/>
                        </map:match>

                        <map:match pattern="sunspotdemosunlet-*.xml"> 
                                <map:generate 
src="sunspotdemo/resources/auth/sunlet-{1}.xml"/>
                                <map:serialize type="xml"/>
                        </map:match>
                                        

                <!-- auth sites -->

                        <map:match pattern="sunspotdemo-conf">
                                <map:generate type="sunSpot-conf"/>
                                <map:transform 
src="sunspotdemo/styles/portalconfHTML.xsl"/>
                                <map:transform type="encodeURL"/>
                                <map:serialize/>
                        </map:match>
                        <map:match pattern="sunspotdemo-adminconf">
                                <!-- This pipeline can only be accessed if the current 
user is
                             allowed to configure the 'administration' sunLet -->
                                <map:act type="sunSpot-auth">
                                        <map:parameter name="sunLet" 
value="administration"/>
                                </map:act>
                                <map:generate src="admin" type="sunSpot-conf"/>
                                <map:transform 
src="sunspotdemo/styles/portalconfHTML.xsl"/>
                                <map:transform type="encodeURL"/>
                                <map:serialize/>
                        </map:match> 
                        <map:match pattern="sunspotdemo-sunriseconf">
                                <!-- This pipeline can only be accessed if the current 
user is
                             allowed to configure the 'administration' sunLet -->
                                <map:act type="sunSpot-auth">
                                        <map:parameter name="sunLet" 
value="administration"/>
                                </map:act>
                                <map:generate type="sunRise-conf"/>
                                <map:transform 
src="sunspotdemo/styles/sunriseconfHTML.xsl"/>
                                <map:transform type="encodeURL"/>
                                <map:serialize/>
                        </map:match> 
                        <map:match pattern="sunspotdemo-sunriseedit">
                                <map:generate src="user" type="sunRise-conf"/>
                                <map:transform 
src="sunspotdemo/styles/sunriseeditHTML.xsl"/>
                                <map:transform type="encodeURL"/>
                                <map:serialize/>
                        </map:match> 
                        <map:match pattern="sunspotdemo-portlets">
                                <map:generate type="sunSpot"/>
                                <map:select type="browser">
                                        <map:when test="explorer">
                                                <map:transform 
src="sunspotdemo/styles/portalHTML.xsl"/>
                                        </map:when>
                                        <map:when test="netscape">
                                                <map:transform 
src="sunspotdemo/styles/portalHTML-Netscape.xsl"/>
                                        </map:when>
                                        <map:otherwise>
                                                <map:transform 
src="sunspotdemo/styles/portalHTML.xsl"/>
                                        </map:otherwise>
                                </map:select>
                                <map:transform type="encodeURL"/>
                                <map:serialize/>
                        </map:match>
                        <map:match pattern="sunspotdemo-logout">
                                <map:act type="sunRise-logout"/>
                                <map:generate 
src="sunspotdemo/resources/auth/logout.xml"/>
                                <map:transform src="sunspotdemo/styles/TO-html.xsl"/>
                                <map:transform type="encodeURL"/>
                                <map:serialize/>
                        </map:match>
                        <map:match pattern="sunspotdemo-*">
                                <map:generate 
src="sunspotdemo/resources/auth/{1}.xml"/>
                                <map:transform type="sunShine"/>
                                <map:transform type="sunShineInsert"/>
                                <map:transform src="sunspotdemo/styles/TO-html.xsl"/>
                                <map:transform type="encodeURL"/>
                                <map:serialize/>
                        </map:match>
                </map:act>
    </map:match>

</map:pipeline>

  <!-- "automount" setup
    This causes directories added under "mount"
    (even with Cocoon already running) to be activated automagically
    if they contain a sitemap.xmap, without having to modify the main
    sitemap.xmap
  -->
  <map:pipeline>
    <map:match pattern="mount/*/**">
      <map:mount check-reload="yes" src="mount/{1}/" uri-prefix="mount/{1}"/>
      <!-- 
         This is an example of using a sitemap variable: "{1}" Curly
     brackets denote sitemap variables, here the one named "1".
      -->
    </map:match>
  </map:pipeline>

  <!-- pipeline mounting samples sitemaps -->
  <map:pipeline>
    <!-- protected webapp example pipeline -->
    <map:match pattern="protected/**">
      <map:mount check-reload="yes" src="protected/" uri-prefix="protected"/>
    </map:match>

    <!-- i18n examples sitemap -->
    <map:match pattern="i18n/**">
      <map:mount check-reload="yes" src="i18n/" uri-prefix="i18n"/>
    </map:match>

    <!-- mount other sample pages -->
    <map:match pattern="samples/**">
      <map:mount check-reload="yes" src="samples/" uri-prefix="samples"/>
    </map:match>   
  </map:pipeline>

  <!-- main samples pipeline -->
  <map:pipeline>   
    <map:match pattern="">
      <map:generate src="welcome/welcome.xhtml"/>
      <map:serialize/>      
    </map:match>

    <map:match pattern="cocoon.gif">
      <map:read mime-type="image/gif" src="welcome/cocoon.gif"/>
    </map:match>

   <map:match pattern="welcome">
    <map:generate src="docs/samples/samples.xml"/>
    <!--
      The first 'real' pipeline. The default generator reads from
      "docs/samples/samples.xml" and emits SAX events down the
      pipeline. Here, the default generator just reads XML from a file,
      parses it and generates SAX events while it does so.
    -->
    <!--
    <map:select>
      <map:when test="wap">
        <map:transform src="stylesheets/simple-samples2html.xsl"/>
      </map:when>
      <map:when test="netscape">
        <map:transform src="stylesheets/simple-samples2html.xsl"/>
      </map:when>
      <map:otherwise>
        <map:transform src="stylesheets/simple-samples2html.xsl"/>
      </map:otherwise>
    </map:select>
    -->
    <map:transform src="stylesheets/simple-samples2html.xsl"/>
    <!--
       These events are consumed by the default transformer, which
       uses "stylesheets/simple-samples2html.xsl" as parameter. Since
       here the default transformer is an XSLT transformer, the above
       stylesheet is applied. As soon as some of the transformation's
       result is determined, new SAX events are emitted down the
       pipeline.
    -->
    <map:serialize/>
    <!--
       Finally, those SAX events are consumed by the default
       serializer, assembling a character stream from them which is
       send to the client.
       
       Once a serializer is encountered when assembling the pipeline,
       the setup stops and the pipeline is fired up.
    -->
   </map:match>

   <map:match pattern="sample-*">
    <map:generate src="docs/samples/sample-{1}.xml"/>
    <map:transform src="stylesheets/simple-samples2html.xsl"/>
    <map:serialize/>
   </map:match>



   <map:match pattern="welcome-svg">
    <map:generate src="docs/samples/samples.xml"/>
    <map:transform src="stylesheets/svg-samples2html.xsl"/>
    <map:transform type="extractor"/>
    <!-- 
       Here, several transformers are needed to obtain the desired
       result. Note, that the above is not the default transformer but
       one named "extractor". Interestingly enough, this transformer
       does not need any additional configuration or input.
       
       If we look at it's javadocs it says:

       "[...] The transformation half of the FragmentExtractor. This
       transformer sieves an incoming stream of xml with embedded SVG
       images and replaces the images with an xlink locator pointing
       to the image. [...]"

       So, this interacts with the fragment below, doing the actual
       generating.
    -->
    <map:transform src="stylesheets/fragment-extractor.xsl"/>
    <map:serialize/>
   </map:match>

   <map:match pattern="welcome-svg-images/*.png">
    <map:generate src="{1}" type="extractor"/>
    <!--
       Again, citing the javadocs:

       "[...] The generation half of
       FragmentExtractor. FragmentExtractor is a transformer-generator
       pair which is designed to allow sitemap managers to extract
       certain nodes from a SAX stream and move them into a separate
       pipeline. The main use for this is to extract inline SVG images
       and serve them up through a separate pipeline, usually
       serializing them to PNG or JPEG format first. [...]"
    -->
    <map:serialize type="svg2png"/>
   </map:match>




   <!-- ================  Hello  =========================== -->

   <map:match pattern="deli.html">
     <map:generate src="docs/samples/hello-page.xml"/>
     <map:transform src="stylesheets/deli_test.xsl" type="xslt">
         <map:parameter name="use-deli" value="true"/>
     </map:transform>
     <map:serialize type="html"/>
   </map:match>

   <map:match pattern="deli.wml">
     <map:generate src="docs/samples/hello-page.xml"/>
     <map:transform src="stylesheets/deli_test.xsl" type="xslt">
         <map:parameter name="use-deli" value="true"/>
     </map:transform>
     <map:serialize type="wml"/>
   </map:match>

   <map:match pattern="hello.html">
    <map:generate src="docs/samples/hello-page.xml"/>
    <map:transform src="stylesheets/page/simple-page2html.xsl"/>
    <map:serialize type="html"/>
   </map:match>

   <map:match pattern="hello.wml">
    <map:generate src="docs/samples/hello-page.xml"/>
    <map:transform src="stylesheets/page/simple-page2wml.xsl"/>
    <map:serialize type="wml"/>
   </map:match>

   <map:match pattern="hello.vml">
    <map:generate src="docs/samples/hello-page.xml"/>
    <map:transform src="stylesheets/page/simple-page2vml.xsl"/>
    <map:serialize type="xml"/>
   </map:match>

   <map:match pattern="hello.svg">
    <map:generate src="docs/samples/hello-page.xml"/>
    <map:transform src="stylesheets/page/simple-page2svg.xsl"/>
    <map:serialize type="svg2jpeg"/>
   </map:match>

   <map:match pattern="hello.wrl">
    <map:generate src="docs/samples/hello-page.xml"/>
    <map:transform src="stylesheets/page/simple-page2vrml.xsl"/>
    <map:serialize type="vrml"/>
   </map:match>

   <map:match pattern="hello.pdf">
    <map:generate src="docs/samples/hello-page.xml"/>
    <map:transform src="stylesheets/page/simple-page2fo.xsl"/>
    <map:serialize type="fo2pdf"/>
   </map:match>

   <map:match pattern="redirect">
    <map:act type="request">
     <map:parameter name="parameters" value="true"/>

     <map:redirect-to uri="{dest}"/>
    </map:act>
   </map:match>

   <!-- ================  Sites  =========================== -->

   <map:match pattern="sites/*.apache.org">
    <map:generate src="docs/samples/sites/{1}_apache_org.xml"/>
    <map:transform src="stylesheets/sites/{1}_apache_org-html.xsl"/>
    <map:serialize/>
   </map:match>

   <map:match pattern="sites/images/*.gif">
    <map:read mime-type="image/gif" src="resources/images/{1}.gif"/>
   </map:match>

   <!-- ================  NEWS  =========================== -->

   <map:match pattern="news/slashdot.xml">
    <map:generate src="http://slashdot.org/slashdot.xml"/>
    <map:transform src="stylesheets/news/slashdot.xsl"/>
    <map:serialize/>
   </map:match>

   <map:match pattern="news/**.gif">
    <map:read mime-type="image/gif" src="http://images.slashdot.org/topics/{1}.gif"/>
   </map:match>

   <map:match pattern="news/**.jpg">
    <map:read mime-type="image/jpg" src="http://images.slashdot.org/topics/{1}.jpg"/>
   </map:match>

   <map:match pattern="news/**.gif">
    <map:read mime-type="image/gif" src="http://images.slashdot.org/topics/{1}.gif"/>
   </map:match>

   <map:match pattern="news/**.jpg">
    <map:read mime-type="image/jpg" src="http://images.slashdot.org/topics/{1}.jpg"/>
   </map:match>

   <map:match pattern="news/moreover.xml">
    <map:generate 
src="http://www.moreover.com/cgi-local/page?o=xml&amp;c=Developer%20news"/>
    <map:transform src="stylesheets/news/moreover.xsl"/>
    <map:serialize/>
   </map:match>

   <map:match pattern="news/xmlhack.xml">
    <map:generate src="http://www.xmlhack.com/cdf.cdf"/>
    <map:transform src="stylesheets/news/xmlhack.xsl"/>
    <map:serialize/>
   </map:match>

   <map:match pattern="news/aggregate.xml">
    <map:aggregate element="page" ns="http://foo.bar.com/myspace";>
     <!--
        Aggregation is a very powerful concept that allows a document
        be generated from several other documents. Strictly speaking,
        all parts are just concatenated in this order to a new
        document.

    Several things to note here:

    "cocoon:" is a pseudo protocol and refers to another
      pipeline. "cocoon:/" refers to a pipeline from the current
      sitemap while "cocoon://" refers to a pipeline from the root
      sitemap.

    Other pseudo protocols exist:

    "context:" is another pseudo protocol, "context://" is
      refering to a resource using the servlet context.

    "resource:" is yet another pseudo protocol, "resource://" is
      refering to a resource from the context classloader.

    These pseudo protocols are declared in cocoon.xconf

    Thus the parts refer to the pipeline fragments above.

    The element attribute places the content in a new root element
    named as specified, using the namespace provided by the ns
    attribute.

    Please see docs for further explanations.
     -->
     <map:part element="news" ns="http://foo.bar.com/slashdot"; 
src="cocoon:/news/slashdot.xml"/>
     <map:part element="news" ns="http://foo.bar.com/moreover"; 
src="cocoon:/news/moreover.xml"/>
     <map:part element="news" ns="http://foo.bar.com/xmlhack"; 
src="cocoon:/news/xmlhack.xml"/>
    </map:aggregate>
    <map:transform src="stylesheets/news/news.xsl"/>
    <map:serialize/>
   </map:match>

   <!-- Aggregation using CInclude transformer -->
   <map:match pattern="news/aggregate">
    <map:generate src="docs/samples/xsp/aggregate.xsp" type="serverpages"/>
    <map:transform type="cinclude"/>
    <map:transform src="stylesheets/news/news.xsl"/>
    <map:serialize/>
   </map:match>

   <!-- ==============  Catalog  ========================== -->

   <map:match pattern="**/samples/catalog-demo">
    <map:generate src="docs/samples/catalog/test.xml"/>
    <map:transform src="docs/samples/catalog/style.xsl"/>
    <map:serialize type="html"/>
   </map:match>

   <map:match pattern="catalog-demo">
    <map:generate src="docs/samples/catalog/test.xml"/>
    <map:transform src="docs/samples/catalog/style.xsl"/>
    <map:serialize type="html"/>
   </map:match>

   <map:match pattern="sdocbook-demo">
    <map:generate src="docs/samples/catalog/article.xml"/>
    <map:transform src="docs/samples/catalog/sdocbook2body.xsl"/>
    <map:serialize type="html"/>
   </map:match>

   <!-- ================  Static  =========================== -->

   <map:match pattern="fo">
    <map:generate src="docs/samples/fo/readme.fo"/>
    <map:serialize type="fo2pdf"/>
   </map:match>

   <map:match pattern="svg">
    <map:generate src="docs/samples/svg/henryV.svg"/>
    <map:serialize type="svg2png"/>
   </map:match>

   <map:match pattern="scripts/*">
    <map:generate src="docs/samples/scripts/{1}" type="script"/>
    <map:transform src="stylesheets/page/simple-page2html.xsl"/>
    <map:serialize type="html"/>
   </map:match>

   <map:match pattern="jsp/*.htm">
    <map:read mime-type="text/html" src="/docs/samples/jsp/{1}.jsp" type="jsp"/>
   </map:match>

   <map:match pattern="jsp/*">
    <map:generate src="/docs/samples/jsp/{1}.jsp" type="jsp"/>
    <map:transform src="stylesheets/page/simple-page2html.xsl"/>
    <map:serialize type="html"/>
   </map:match>

   <map:match pattern="templates/*">
    <map:generate src="templates/{1}" type="velocity">
    <map:parameter name="name" value="Velocity"/>
    <map:parameter name="project" value="Cocoon"/>
    </map:generate>
    <map:transform src="stylesheets/page/simple-page2html.xsl"/>
    <map:serialize type="html"/>
   </map:match>

   <map:match pattern="slides/slides">
    <map:call resource="slides"/>
    <!--
       To include common pipeline fragments in a pipeline they can be
       defined in a resource. Such a resource can be called from
       anywhere in your pipeline. Note that this is conceptionally
       more like a "goto" because it will never return.
    -->
   </map:match>

   <map:match pattern="slides/">
    <map:call resource="slides"/>
   </map:match>

   <map:match pattern="slides/style">
    <map:read mime-type="text/css" src="resources/styles/slides-apachecon.css"/>
   </map:match>

   <map:match pattern="style">
    <map:read mime-type="text/css" src="resources/styles/slides-apachecon.css"/>
   </map:match>

   <map:match pattern="slides/**.gif">
    <map:read mime-type="image/gif" src="docs/samples/{1}.gif"/>
   </map:match>

   <map:match pattern="slides/**.jpg">
    <map:read mime-type="image/jpg" src="docs/samples/{1}.jpg"/>
   </map:match>

   <map:match pattern="slides/**.png">
    <map:read mime-type="image/png" src="docs/samples/{1}.png"/>
   </map:match>

   <!-- =========================== Dynamic ================================ -->
   <map:match pattern="xsp/*">
    <map:generate src="docs/samples/xsp/{1}.xsp" type="serverpages"/>
    <map:transform src="stylesheets/dynamic-page2html.xsl">
        <map:parameter name="view-source" value="docs/samples/xsp/{1}.xsp"/>
    <!--
       Run-time configuration is done through these
       <map:parameter/> elements. Again, let's have a look at the
       javadocs: 

       "[...] All <map:parameter> declarations will be made
       available in the XSLT stylesheet as xsl:variables. [...]" 
    -->
    </map:transform>
    <map:serialize/>
   </map:match>

   <map:match pattern="xsp-plain/*">
    <map:generate src="docs/samples/xsp/{1}.xsp" type="serverpages"/>
    <map:serialize/>
   </map:match>

   <map:match pattern="sql/*">
    <map:generate src="docs/samples/sql/{1}.xml"/>
    <map:transform type="sql">
      <map:parameter name="use-connection" value="personnel"/>
    <!--
       Let's have a look at the user docs:  

       "[...] The purpose of the SQLTransformer is to query a
    database and translate the result to XML. [...]" 
    -->
    </map:transform>
    <map:transform src="stylesheets/simple-sql2html.xsl"/>
    <map:serialize/>
   </map:match>

   <!-- ========================== Forms ================================= -->
   <map:match pattern="forms/employee">
     <map:act set="employee">
       <map:parameter name="descriptor" 
value="context://docs/samples/forms/employee.xml"/>
       <!--
          Here an action is used. To be precise: all actions that were
          grouped together to a set named "employee". See user docs on
          actions for more on this.

      This fragment until the closing tag of map:act is only
      included if at least one action of this set completes
      successfully.
       -->
       <map:generate src="docs/samples/forms/employee.xsp" type="serverpages"/>
       <map:transform src="stylesheets/dynamic-page2html.xsl">
          <map:parameter name="view-source" value="docs/samples/forms/employee.xsp"/>
       </map:transform>
       <map:serialize/>
     </map:act>
   </map:match>

   <map:match pattern="forms/*">
     <map:generate src="docs/samples/forms/{1}.xsp" type="serverpages"/>
     <map:transform src="stylesheets/dynamic-page2html.xsl">
        <map:parameter name="view-source" value="docs/samples/forms/{1}.xsp"/>
     </map:transform>
     <map:serialize/>
   </map:match>

   <!-- ======================= FormValidation ============================= -->

   <map:match pattern="formvalidation/test">
     <map:act type="form-validator">
        <map:parameter name="descriptor" 
value="context:///docs/samples/formvalidation/descriptor.xml"/>
        <map:parameter name="validate-set" value="car-reservation"/>
        <map:call resource="dynamic-page">
           <map:parameter name="target" value="docs/samples/formvalidation/OK"/>
        </map:call>
     </map:act>
     <map:call resource="dynamic-page">
        <map:parameter name="target" value="docs/samples/formvalidation/ERROR"/>
     </map:call>
   </map:match>

  <!-- ========================== session state ================================= -->

  <map:match pattern="session-state/example">
      <!--
         This example like the next one show, that matches can be
         nested and don't need to match on URIs alone. By using a
         session attribute or the referer header for matches it is
         easy to model a state machine with the sitemap.

         There are user documents on this.
      -->
      <map:act type="session-isvalid">
        <!-- if session is valid ... -->

        <map:match pattern="1" type="sessionstate">
           <!-- if a specific session attribute matches pattern "1" -->
           <map:match pattern="1" type="next-page">
              <map:call resource="dynamic-page1">
                 <map:parameter name="target" value="docs/samples/session-state"/>
              </map:call>
              <!-- by calling this resource, the rest of this fragment here is 
irrelevant -->
           </map:match>
           <map:match pattern="2" type="next-page">
              <map:call resource="dynamic-page1">
                 <map:parameter name="target" value="docs/samples/session-state"/>
              </map:call>
           </map:match>
        </map:match>

        <map:match pattern="2" type="sessionstate">
           <map:match pattern="1" type="next-page">
              <map:call resource="dynamic-page1">
                 <map:parameter name="target" value="docs/samples/session-state"/>
              </map:call>
           </map:match>
           <map:match pattern="2" type="next-page">
              <map:call resource="dynamic-page1">
                 <map:parameter name="target" value="docs/samples/session-state"/>
              </map:call>
           </map:match>
        </map:match>

        <map:call resource="dynamic-page2">
           <map:parameter name="target" value="docs/samples/session-state/state0"/>
        </map:call>
      </map:act>
      <!-- end if session is valid -->

      <map:call resource="dynamic-page">
         <map:parameter name="target" value="docs/samples/session-state/start"/>
      </map:call>
  </map:match>

   <!-- ========================== referer ================================= -->

  <map:match pattern="referer/*">
     <map:match pattern="http://*/cocoon/referer/a"; type="referer-match">
        <map:call resource="simple-page">
           <map:parameter name="target" value="docs/samples/referer/a/{../1}"/>
        </map:call>
     </map:match>
     <map:match pattern="http://*/cocoon/referer/b"; type="referer-match">
        <map:call resource="simple-page">
           <map:parameter name="target" value="docs/samples/referer/b/{../1}"/>
        </map:call>
     </map:match>

     <map:call resource="simple-page">
        <map:parameter name="target" value="docs/samples/referer/a/a"/>
     </map:call>
  </map:match>

   <!-- ========================== Stream ================================= -->
   <map:match pattern="request1">
     <map:generate type="stream">
       <map:parameter name="form-name" value="Foo"/>
     </map:generate>
     <map:serialize type="xml"/>
   </map:match>

   <map:match pattern="Order">
     <map:generate src="docs/samples/stream/OrderPage.xml"/>
     <map:transform src="stylesheets/dynamic-page2html.xsl"/>
     <map:serialize type="html"/>
   </map:match>

   <!-- ========================== XSP Sources ============================== -->
   <map:match pattern="view-source/*">
    <map:read mime-type="text/plain" src="docs/samples/slides/{1}"/>
   </map:match>

   <map:match pattern="view-source">
    <map:generate src="docs/samples/slides/view-source.xsp" type="serverpages"/>
    <map:serialize/>
   </map:match>


   <!-- ========================== SOAP ============================== -->
   <map:match pattern="soap/*">
    <map:generate src="docs/samples/soap/{1}.xml" type="serverpages"/>
    <map:serialize type="xml"/>
   </map:match>

   <!-- ======================== XScript Samples ========================= -->
   <map:match pattern="xscript/soap-getquote1">
     <map:generate src="docs/samples/xscript/soap-getquote1.xsp" type="serverpages"/>
     <map:transform src="docs/samples/xscript/soap-getquote1.xsl"/>
     <map:transform src="stylesheets/dynamic-page2html.xsl">
       <map:parameter name="view-source" 
value="docs/samples/xscript/soap-getquote1.xsp"/>
     </map:transform>
     <map:serialize/>
   </map:match>

   <map:match pattern="xscript/*">
     <map:generate src="docs/samples/xscript/{1}.xsp" type="serverpages"/>
     <map:transform src="stylesheets/dynamic-page2html.xsl">
       <map:parameter name="view-source" value="docs/samples/xscript/{1}.xsp"/>
     </map:transform>
     <map:serialize/>
   </map:match>

   <!-- ========================== Tidy Samples ============================== -->
   
   <map:match pattern="yahoo">
    <map:generate src="http://www.yahoo.com"; type="html">
      <map:parameter name="xpath" 
value="/html/body/center/table[1]/tr[1]/td[1]/table[position()=last()]"/>
    </map:generate>
    <map:transform src="stylesheets/news/news.xsl"/>
    <map:serialize type="html"/>
   </map:match>

   <!-- ========================= Server ================================ -->
   <map:match pattern="legacyProfiles/**.rdf">
    <map:read mime-type="text/rdf" src="resources/legacyProfiles/{1}.rdf"/>
   </map:match>

   <map:match pattern="request">
    <map:generate type="request"/>
    <map:serialize type="xml"/>
   </map:match>

   <map:match pattern="generror">
    <map:generate src="docs/samples/error-giving-page.xml"/>
    <map:transform src="stylesheets/simple-samples2html.xsl"/>
    <map:serialize/>
   </map:match>

   <map:match pattern="status">
    <map:generate src="status" type="status"/>
    <map:transform src="welcome/status2html.xsl"/>
    <map:serialize/>
   </map:match>

   <map:match pattern="sites/styles/**.css">
    <map:read mime-type="text/css" src="resources/styles/{1}.css"/>
   </map:match>

   <map:match pattern="**favicon.ico">
    <map:read mime-type="application/ico" src="resources/icons/cocoon.ico"/>
   </map:match>
   
   <map:match pattern="images/**.gif">
    <map:read mime-type="image/gif" src="resources/images/{1}.gif"/>
   </map:match>

   <map:match pattern="images/**.jpg">
    <map:read mime-type="image/jpg" src="resources/images/{1}.jpg"/>
   </map:match>

   <map:match pattern="images/**.png">
    <map:read mime-type="image/png" src="resources/images/{1}.png"/>
   </map:match>

   <map:match pattern="**/">
    <map:generate src="{1}" type="directory"/>
    <map:transform src="stylesheets/system/directory2html.xsl"/>
    <map:serialize/>
   </map:match>

   <map:handle-errors>
    <map:transform src="context://stylesheets/system/error2html.xsl"/>
    <map:serialize status-code="500"/>
   </map:handle-errors>

   

   

  

  
          <map:match pattern="lnxserv/**">
                  <map:mount check-reload="yes" src="lnxserv/" uri-prefix="lnxserv" />
          </map:match>
 
  </map:pipeline>
 </map:pipelines>

</map:sitemap><!-- end of file -->

---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail: <[EMAIL PROTECTED]>

Reply via email to