<?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:pipelines>
    <map:pipeline>
      <map:match pattern="forrest-issues.xml">
        <map:generate type="file" src="{lm:forrest.issues-rss-url}" />
        <map:transform src="{lm:transform.rssissues.document}" />
        <map:serialize type="xml-document"/>
      </map:match>
      <map:match pattern="forrest-issues.source.xml">
        <map:generate type="file" src="{lm:forrest.issues-rss-url}" />
        <map:serialize type="xml-document"/>
      </map:match>
      <map:match pattern="dtdx/*.dtdx.pdf">
        <map:select type="exists">
          <map:when test="{properties:content}{1}.dtdx.pdf">
            <map:read src="{properties:content}{1}.dtdx.pdf" mime-type="application/pdf"/>
          </map:when>
        </map:select>
      </map:match>
    </map:pipeline>
  </map:pipelines>
</map:sitemap>
