<?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.
-->

<!-- $Id: doctypes.xmap 179488 2005-06-02 02:29:39Z gregor $ -->

<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">

<!-- =========================== Components ================================ -->

  <map:components>
  
    <map:serializers default="xhtml"> 
      <map:serializer name="xml-get" src="org.apache.cocoon.serialization.XMLSerializer" mime-type="text/xml">
        <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:serializers>
 
  </map:components>

  <map:pipelines>

    <map:pipeline>

      <!-- parametrized doctype matcher -->
      <!-- pattern="{format}.xml" -->
      <map:match pattern="*.xml">
        <map:generate src="cocoon:/{1}.xml/{page-envelope:publication-id}/{page-envelope:area}/{page-envelope:document-uuid}/{page-envelope:document-language}"/>
        <map:serialize type="xml"/>
      </map:match>
      
      <!-- pattern="{format}.xml/{pubId}/{area}/{uuid}/{language}" -->
      <map:match pattern="*.xml/*/*/*/*">
        
        <!-- This is a workaround (see below). -->
        <map:generate src="lenya-document:{4},pub={2},area={3},lang={5}{link:rev}"/>
        <map:transform src="fallback://lenya/modules/collection/xslt/prepareCinclude.xsl">
          <map:parameter name="uuid" value="{4}"/>
          <map:parameter name="language" value="{5}"/>
        </map:transform>
        <map:transform type="cinclude"/>
        
        <!-- This would be a nicer way, but causes NPES in AbstractEnvironment.release(AbstractEnvironment.java:561)
        <map:generate src="{resource-type:collection:format-collection}/{2}/{3}/{4}/{5}"/>
        -->
        
        <map:transform src="fallback://lenya/modules/collection/xslt/collection2cinclude.xsl">
          <map:parameter name="uuid" value="{4}"/>
          <map:parameter name="language" value="{5}"/>
        </map:transform>
        <map:transform type="cinclude"/>
        <map:transform src="fallback://lenya/modules/news/xslt/collection2{1}.xsl">
          <map:parameter name="language" value="{5}"/>
          <map:parameter name="title" value=""/>
          <map:parameter name="area" value="{3}"/>
          <map:parameter name="uuid" value="{4}"/>
          <map:parameter name="baseUrl" value="/{2}/{3}"/>
        </map:transform>
        <map:match pattern="rss.xml/**">
          <map:transform type="uuid2url"/>
          <map:transform type="proxy"/>
          <map:transform src="xslt/rss/xhtmllink2rsslink.xsl"/>
          <map:transform type="i18n">
            <map:parameter name="locale" value="{5}"/>
          </map:transform>
        </map:match>
        <map:serialize type="xml"/>
      </map:match>

      <map:match pattern="icon/*/*/*/*">
        <map:read src="fallback://lenya/modules/news/resources/icons/news.gif"/>
      </map:match>
      
    </map:pipeline>
    
  </map:pipelines>
</map:sitemap>
