<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You 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.
-->

<!--+
    | Demonstrates internal pipeline error handling.
    |
    | $Id$
    +-->
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
  <map:pipelines>

    <map:pipeline>
      <map:match pattern="default-sitemap">
        <map:act type="exception" src="validation"/>
      </map:match>
      <map:match pattern="default-setup">
        <map:generate type="exception" src="validation">
          <map:parameter name="setup" value="true"/>
        </map:generate>
        <map:serialize type="xml"/>
      </map:match>
      <map:match pattern="default-pipeline">
        <map:generate type="exception" src="validation"/>
        <map:serialize type="xml"/>
      </map:match>
    </map:pipeline>

    <map:pipeline>
      <map:match pattern="custom-sitemap">
        <map:act type="exception" src="validation"/>
      </map:match>
      <map:match pattern="custom-setup">
        <map:generate type="exception" src="validation">
          <map:parameter name="setup" value="true"/>
        </map:generate>
        <map:serialize type="xml"/>
      </map:match>
      <map:match pattern="custom-pipeline">
        <map:generate type="exception" src="validation"/>
        <map:serialize type="xml"/>
      </map:match>
      <map:handle-errors when="always">
        <map:generate type="notifying"/>
        <map:transform src="error2xml.xslt"/>
        <map:serialize type="html"/>
      </map:handle-errors>
    </map:pipeline>

    <map:pipeline>
      <map:match pattern="">
        <map:redirect-to uri="welcome"/>
      </map:match>

      <map:match pattern="welcome">
        <map:generate src="samples.xml"/>
        <map:transform src="context://samples/common/style/xsl/html/simple-samples2html.xsl">
          <map:parameter name="contextPath" value="{request:contextPath}"/>
        </map:transform>
        <map:serialize/>
      </map:match>

      <map:match pattern="aggregate/*">
        <map:aggregate element="html">
          <map:part src="one.xml"/>
          <map:part src="cocoon:/{1}"/>
          <map:part src="two.xml"/>
        </map:aggregate>
        <map:serialize type="html"/>
      </map:match>

      <map:match pattern="include/*">
        <map:generate src="one.xml"/>
        <map:transform src="include.xslt">
          <map:parameter name="uri" value="{1}"/>
        </map:transform>
        <map:transform type="cinclude"/>
        <map:serialize type="html"/>
      </map:match>
    </map:pipeline>

  </map:pipelines>
</map:sitemap>
