<?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.
-->

<xmap remove="/sitemap/components/serializers"
  unless="/sitemap/components/serializers/serializer[@name = 'patch-test']"
  xpath="/sitemap/components"
  insert-after="/sitemap/components/transformers"
  xmlns:map="http://apache.org/cocoon/sitemap/1.0">
  
  <map:serializers default="xhtml">

    <!-- this declaration is just to test if the patch has already been applied -->
    <map:serializer name="patch-test"  src="org.apache.cocoon.components.serializers.HTMLSerializer"/>

    <map:serializer name="html" logger="sitemap.serializer.html" mime-type="text/html; charset=utf-8" pool-grow="4" pool-max="32" 
    pool-min="4" src="org.apache.cocoon.components.serializers.HTMLSerializer">
      <doctype-default>loose</doctype-default>
      <encoding>UTF-8</encoding>
    </map:serializer>
    
    <map:serializer name="html-no-dtd" logger="sitemap.serializer.html-no-dtd" mime-type="text/html; charset=utf-8" pool-grow="4" pool-max="32" pool-min="4" src="org.apache.cocoon.serialization.HTMLSerializer">
      <buffer-size>1024</buffer-size>
    </map:serializer>
    
    <map:serializer name="htmlnoi" logger="sitemap.serializer.htmlnoi" mime-type="text/html; charset=utf-8" pool-grow="4" pool-max="32" pool-min="4" src="org.apache.cocoon.serialization.HTMLSerializer"> 
      <indent>no</indent>
      <doctype-public>-//W3C//DTD HTML 4.01 Transitional//EN</doctype-public>
      <doctype-system>http://www.w3.org/TR/html4/loose.dtd</doctype-system>
      <encoding>UTF-8</encoding>
    </map:serializer>
    
    <map:serializer name="xhtml" src="org.apache.cocoon.serialization.XMLSerializer" mime-type="text/html; charset=utf-8" logger="sitemap.serializer.xhtml" pool-grow="2" pool-max="64" pool-min="2"> 
      <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:serializer name="xml" logger="sitemap.serializer.xml" mime-type="text/xml; charset=utf-8" src="org.apache.cocoon.components.serializers.XMLSerializer">
       <encoding>UTF-8</encoding>
    </map:serializer>
    
    <map:serializer name="links" logger="sitemap.serializer.links" src="org.apache.cocoon.serialization.LinkSerializer"/>
    
    <map:serializer name="wml" logger="sitemap.serializer.wml" mime-type="text/vnd.wap.wml" src="org.apache.cocoon.serialization.XMLSerializer">
     <doctype-public>-//WAPFORUM//DTD WML 1.1//EN</doctype-public>
     <doctype-system>http://www.wapforum.org/DTD/wml_1.1.xml</doctype-system>
     <encoding>ASCII</encoding>
     <omit-xml-declaration>yes</omit-xml-declaration>
    </map:serializer>

    <map:serializer name="text" logger="sitemap.serializer.text" mime-type="text/plain" src="org.apache.cocoon.serialization.TextSerializer">
      <encoding>UTF-8</encoding>
    </map:serializer>

    <map:serializer name="fo2pdf" logger="sitemap.serializer.fo2pdf" mime-type="application/pdf" src="org.apache.cocoon.serialization.FOPSerializer"/>
    <map:serializer name="fo2ps" logger="sitemap.serializer.fo2ps" mime-type="application/postscript" src="org.apache.cocoon.serialization.FOPSerializer"/>
    <map:serializer name="fo2pcl" logger="sitemap.serializer.fo2pcl" mime-type="vnd.hp-PCL" src="org.apache.cocoon.serialization.FOPSerializer"/>
    <map:serializer name="svgxml" logger="sitemap.serializer.svgxml" mime-type="image/svg-xml" src="org.apache.cocoon.serialization.XMLSerializer">
      <doctype-public>-//W3C//DTD SVG 20000303 Stylable//EN</doctype-public>
      <doctype-system>http://www.w3.org/TR/2000/03/WD-SVG-20000303/</doctype-system>
    </map:serializer>
    <map:serializer name="svg2jpeg" logger="sitemap.serializer.svg2png" mime-type="image/jpeg" src="org.apache.cocoon.serialization.SVGSerializer">
      <parameter name="quality" type="float" value="0.9"/>
    </map:serializer>
    <map:serializer name="svg2png" logger="sitemap.serializer.svg2png" mime-type="image/png" src="org.apache.cocoon.serialization.SVGSerializer"/>
    <map:serializer name="svg2tiff" logger="sitemap.serializer.svg2tiff" mime-type="image/tiff" src="org.apache.cocoon.serialization.SVGSerializer"/>

  </map:serializers></xmap>
