<?xml version="1.0"?>
<!--
  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.
-->
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
  <map:components>
    <map:actions>
      <map:action logger="sitemap.action.sourcetype" name="sourcetype" src="org.apache.forrest.sourcetype.SourceTypeAction">
        <sourcetype name="locations-v12">
          <document-declaration public-id="-//Apache Forrest//DTD Locations V1.2//EN" />
        </sourcetype>
        <sourcetype name="locations-v11">
          <document-declaration public-id="-//Apache Forrest//DTD Locations V1.1//EN" />
        </sourcetype>
        <sourcetype name="locations-v10">
          <document-declaration public-id="-//Apache Forrest//DTD Locations V1.0//EN" />
        </sourcetype>
      </map:action>
    </map:actions>
    <map:selectors default="parameter">
      <map:selector logger="sitemap.selector.parameter" name="parameter" src="org.apache.cocoon.selection.ParameterSelector" />
    </map:selectors>
  </map:components>
  <map:resources>
    <map:resource name="transform-to-document">
      <map:act type="sourcetype" src="{src}">
        <map:select type="parameter">
          <map:parameter name="parameter-selector-test" value="{sourcetype}" />
          <map:when test="locations-v12">
            <map:generate type="file" src="{lm:project.{../../1}.xml}"/>
            <map:transform src="{lm:listLocations.transform.locations.document}"/>
            <map:serialize type="xml-document"/>
          </map:when>
          <map:when test="locations-v11">
            <map:generate type="file" src="{lm:project.{../../1}.xml}"/>
            <map:transform src="{lm:listLocations.transform.locations.document}"/>
            <map:serialize type="xml-document"/>
          </map:when>
          <map:when test="locations-v10">
            <map:generate type="file" src="{lm:project.{../../1}.xml}"/>
            <map:transform src="{lm:listLocations.transform.locations.document}"/>
            <map:serialize type="xml-document"/>
          </map:when>
        </map:select>
      </map:act>
    </map:resource>
  </map:resources>
  <map:pipelines>
    <map:pipeline internal="true">
<!-- Use the SourceType Action in preference -->
      <map:match pattern="**.xml">
        <map:call resource="transform-to-document">
          <map:parameter name="src" value="{lm:project.{1}.xml}" />
        </map:call>
      </map:match>
<!-- Support old behaviour to match **-locations.xml and to
        enable processing of xml instances with no document type declaration.
      -->
      <map:match type="regexp" pattern="^(.*?)([^/]*)locations.xml$">
        <map:generate type="file" src="{lm:project.{1}{2}locations.xml}"/>
        <map:transform src="{lm:listLocations.transform.locations.document}"/>
        <map:serialize type="xml-document"/>
      </map:match>
    </map:pipeline>
  </map:pipelines>
</map:sitemap>
