<?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.
-->
<!-- ============================================================ -->
<!-- org.apache.forrest.plugin.input.simplifiedDocbook Plugin                                    -->
<!-- This plugin allows Simplified DocBook files to be            -->
<!-- used in a Forrest site                                       -->
<!-- ============================================================ -->
<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="docbook-v4.3">
          <document-declaration public-id="-//OASIS//DTD DocBook XML V4.3//EN" />
        </sourcetype>
        <sourcetype name="docbook-v4.2">
          <document-declaration public-id="-//OASIS//DTD DocBook XML V4.2//EN" />
        </sourcetype>
        <sourcetype name="docbook-v4.1.2">
          <document-declaration public-id="-//OASIS//DTD DocBook XML V4.1.2//EN" />
        </sourcetype>
        <sourcetype name="sdocbook-v1.0">
          <document-declaration public-id="-//OASIS//DTD Simplified DocBook XML 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="docbook-v4.1.2">
            <map:generate src="{lm:project.{../../1}.xml}" />
            <map:transform src="{lm:simplifiedDocbook.transform.sdocbook.document}" />
            <map:serialize type="xml-document"/>
          </map:when>
          <map:when test="docbook-v4.2">
            <map:generate src="{lm:project.{../../1}.xml}" />
            <map:transform src="{lm:simplifiedDocbook.transform.sdocbook.document}" />
            <map:serialize type="xml-document"/>
          </map:when>
          <map:when test="sdocbook-v1.0">
            <map:generate src="{lm:project.{../../1}.xml}" />
            <map:transform src="{lm:simplifiedDocbook.transform.sdocbook.document}" />
            <map:serialize type="xml-document"/>
          </map:when>
          <map:when test="sdocbook-v4.1.2.5">
            <map:generate src="{lm:project.{../../1}.xml}" />
            <map:transform src="{lm:simplifiedDocbook.transform.sdocbook.document}" />
            <map:serialize type="xml-document"/>
          </map:when>
        </map:select>
      </map:act>
    </map:resource>
  </map:resources>
  <map:pipelines>
    <map:pipeline internal="true">
      <map:match pattern="**.xml">
        <map:call resource="transform-to-document">
          <map:parameter name="src" value="{lm:project.{1}.xml}" />
        </map:call>
      </map:match>
    </map:pipeline>
  </map:pipelines>
</map:sitemap>
