<?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">
  
  <map:components>
    <map:generators default="file">
      <map:generator name="session-attr" logger="sitemap.generator.session-attr"
           src="org.apache.cocoon.generation.SessionAttributeGenerator"/>
    </map:generators>
  </map:components>

  <map:pipelines>
  
    <map:pipeline internal-only="true">
      
      <map:match pattern="*">
        <map:generate type="session-attr">
          <map:parameter name="attr-name" value="notification.dom"/>
        </map:generate>
        <map:transform type="i18n">
          <map:parameter name="locale" value="{locale}"/>
        </map:transform>
        <map:serialize type="xml"/>
      </map:match>
      
    </map:pipeline>
    
  </map:pipelines>
</map:sitemap>
