<?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.
-->
<xsl:stylesheet
    version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method = "xml"  
                version="1.0"
                omit-xml-declaration="no" 
                indent="no"
                encoding="ISO-8859-1"
                doctype-system="document-v11.dtd"
                doctype-public="-//APACHE//DTD Documentation V1.1//EN" />
  <xsl:template match="/">
    <xsl:choose>
      <xsl:when test="name(child::node())='document'">
        <xsl:apply-templates/>
      </xsl:when>
      <xsl:otherwise>
        <document>
          <header>
            <title>Error in conversion</title>
          </header>
          <body>
            <warning>
              This file is not in anakia format, please convert manually.
            </warning>
          </body>
        </document>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
  <xsl:template match="document">
    <document>
      <xsl:apply-templates/>
    </document>
  </xsl:template>
<!-- properties to header -->
  <xsl:template match="properties">
    <header>
      <xsl:apply-templates/>
      <authors>
        <xsl:for-each select = "author">
          <person email="{@email}" name="{.}"/>
        </xsl:for-each>
      </authors>
    </header>
  </xsl:template>
  <xsl:template match="P|p">
    <p>
      <xsl:apply-templates/>
    </p>
  </xsl:template>
  <xsl:template match="figure">
    <figure alt="{title}" src= "{graphic/@fileref}" />
  </xsl:template>
  <xsl:template match="img">
    <xsl:choose>
      <xsl:when test="name(..)='section'">
        <figure alt="{@alt}" src= "{@src}"/>
      </xsl:when>
      <xsl:otherwise>
        <img alt="{@alt}" src= "{@src}"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
  <xsl:template match="source|blockquote">
    <xsl:choose>
      <xsl:when test="name(..)='p'"><code>
        <xsl:value-of select="." /></code>
      </xsl:when>
      <xsl:otherwise>
        <source>
          <xsl:value-of select="." />
        </source>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
<!-- person to author -->
  <xsl:template match="author"/>
  <xsl:template match="section|s1|s2|s3|s4|s5|s6">
    <section>
      <title><xsl:value-of select="@name" /></title>
      <xsl:apply-templates/>
    </section>
  </xsl:template>
  <xsl:template match="subsection">
    <section>
      <title><xsl:value-of select="@name" /></title>
      <xsl:apply-templates/>
    </section>
  </xsl:template>
<!-- convert a to link -->
  <xsl:template match="a">
    <xsl:if test="@name">
<!-- Attach an id to the current node -->
      <xsl:attribute name="id">
        <xsl:value-of select="translate(@name, ' $', '__')"/>
      </xsl:attribute>
      <xsl:apply-templates/>
    </xsl:if>
    <xsl:if test="@href"><link href="{@href}">
      <xsl:apply-templates/></link>
    </xsl:if>
  </xsl:template>
  <xsl:template match="@valign | @align"/>
  <xsl:template match="center">
    <xsl:choose>
      <xsl:when test="name(..)='p'">
        <xsl:apply-templates/>
      </xsl:when>
      <xsl:otherwise>
        <p>
          <xsl:apply-templates/>
        </p>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
  <xsl:template match="ol">
    <xsl:choose>
      <xsl:when test="name(..)='p'">
        <xsl:text disable-output-escaping="yes">
<![CDATA[</p>]]>
        </xsl:text>
        <ol>
          <xsl:apply-templates/>
        </ol>
        <xsl:text disable-output-escaping="yes">
<![CDATA[<p>]]>
        </xsl:text>
      </xsl:when>
      <xsl:otherwise>
        <ol>
          <xsl:apply-templates/>
        </ol>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
  <xsl:template match="ul">
    <xsl:choose>
      <xsl:when test="name(..)='p'">
        <xsl:text disable-output-escaping="yes">
<![CDATA[</p>]]>
        </xsl:text>
        <ul>
          <xsl:apply-templates/>
        </ul>
        <xsl:text disable-output-escaping="yes">
<![CDATA[<p>]]>
        </xsl:text>
      </xsl:when>
      <xsl:otherwise>
        <ul>
          <xsl:apply-templates/>
        </ul>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
  <xsl:template match="b"><strong>
    <xsl:value-of select = "."/></strong>
  </xsl:template>
  <xsl:template match="i"><em>
    <xsl:value-of select = "."/></em>
  </xsl:template>
  <xsl:template match="table">
    <table>
      <xsl:apply-templates select="node()"/>
    </table>
  </xsl:template>
  <xsl:template match="br">
    <xsl:choose>
      <xsl:when test="normalize-space(text())">
        <xsl:choose>
          <xsl:when test="name(..)='p'">
            <xsl:apply-templates/>
            <br/>
          </xsl:when>
          <xsl:otherwise>
            <p>
              <xsl:apply-templates/>
            </p>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:when>
      <xsl:otherwise>
        <br/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
<!-- Strip -->
  <xsl:template match="font">
    <xsl:apply-templates/>
  </xsl:template>
  <xsl:template match="h1|h2|h3|h4">
    <xsl:comment> -ATTENTION- THIS IS A SECTION, PLEASE ENCLOSE THE SECTION CONTENTS... -ATTENTION- </xsl:comment>
    <section>
      <title><xsl:apply-templates/></title>
      <xsl:comment>... HERE! :-)</xsl:comment>
    </section>
  </xsl:template>
  <xsl:template match="node()|@*" priority="-1">
    <xsl:copy>
      <xsl:apply-templates select="node()|@*"/>
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>
