<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:ng="http://docbook.org/docbook-ng"
                xmlns:db="http://docbook.org/ns/docbook"
                xmlns:saxon="http://icl.com/saxon"
                xmlns:NodeInfo="http://org.apache.xalan.lib.NodeInfo"
                xmlns:exsl="http://exslt.org/common"
		xmlns:xlink="http://www.w3.org/1999/xlink"
                exclude-result-prefixes="db ng exsl saxon NodeInfo xlink"
                version='1.0'>

<!-- ********************************************************************
     $Id$
     ********************************************************************

     This file is part of the XSL DocBook Stylesheet distribution.
     See ../README or http://docbook.sf.net/release/xsl/current/ for
     copyright and other information.

     ******************************************************************** -->

<!-- put an xml:base attribute on the root element -->
<xsl:template match="/*" mode="stripNS">
  <xsl:choose>
    <xsl:when test="self::ng:* or self::db:*">
      <xsl:element name="{local-name(.)}">
        <xsl:copy-of select="@*[not(name(.) = 'xml:id')
                                and not(name(.) = 'version')]"/>
        <xsl:if test="@xml:id">
          <xsl:attribute name="id">
            <xsl:value-of select="@xml:id"/>
          </xsl:attribute>
        </xsl:if>

        <xsl:call-template name="add-xml-base"/>

        <xsl:apply-templates mode="stripNS"/>
      </xsl:element>
    </xsl:when>
    <xsl:otherwise>
      <xsl:copy>
        <xsl:copy-of select="@*[not(name(.) = 'xml:id')
                                and not(name(.) = 'version')]"/>
        <xsl:if test="@xml:id">
          <xsl:attribute name="id">
            <xsl:value-of select="@xml:id"/>
          </xsl:attribute>
        </xsl:if>

        <xsl:call-template name="add-xml-base"/>

        <xsl:apply-templates mode="stripNS"/>
      </xsl:copy>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<xsl:template match="*" mode="stripNS">
  <xsl:choose>
    <xsl:when test="self::ng:* or self::db:*">
      <xsl:element name="{local-name(.)}">
        <xsl:copy-of select="@*[not(name(.) = 'xml:id')
                                and not(name(.) = 'version')]"/>
        <xsl:if test="@xml:id">
          <xsl:attribute name="id">
            <xsl:value-of select="@xml:id"/>
          </xsl:attribute>
        </xsl:if>
        <xsl:apply-templates mode="stripNS"/>
      </xsl:element>
    </xsl:when>
    <xsl:otherwise>
      <xsl:copy>
        <xsl:copy-of select="@*[not(name(.) = 'xml:id')
                                and not(name(.) = 'version')]"/>
        <xsl:if test="@xml:id">
          <xsl:attribute name="id">
            <xsl:value-of select="@xml:id"/>
          </xsl:attribute>
        </xsl:if>
        <xsl:apply-templates mode="stripNS"/>
      </xsl:copy>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<xsl:template match="db:info" mode="stripNS">
  <xsl:variable name="info">
    <xsl:choose>
      <xsl:when test="parent::db:article
                      |parent::db:appendix
                      |parent::db:bibliography
                      |parent::db:book
                      |parent::db:chapter
                      |parent::db:glossary
                      |parent::db:index
                      |parent::db:part
                      |parent::db:preface
                      |parent::db:refentry
                      |parent::db:reference
                      |parent::db:refsect1
                      |parent::db:refsect2
                      |parent::db:refsect3
                      |parent::db:refsection
                      |parent::db:refsynopsisdiv
                      |parent::db:sect1
                      |parent::db:sect2
                      |parent::db:sect3
                      |parent::db:sect4
                      |parent::db:sect5
                      |parent::db:section
                      |parent::db:setindex
                      |parent::db:set
                      |parent::db:slides
                      |parent::db:sidebar">
        <xsl:value-of select="local-name(parent::*)"/>
        <xsl:text>info</xsl:text>
      </xsl:when>
      <xsl:when test="parent::db:audioobject
                      |parent::db:imageobject
                      |parent::db:inlinemediaobject
                      |parent::db:mediaobject
                      |parent::db:mediaobjectco
                      |parent::db:textobject
                      |parent::db:videoobject">
        <xsl:text>objectinfo</xsl:text>
      </xsl:when>
      <xsl:otherwise>blockinfo</xsl:otherwise>
    </xsl:choose>
  </xsl:variable>

  <xsl:element name="{$info}">
    <xsl:copy-of select="@*[not(name(.) = 'xml:id')
                         and not(name(.) = 'version')]"/>
    <xsl:if test="@xml:id">
      <xsl:attribute name="id">
        <xsl:value-of select="@xml:id"/>
      </xsl:attribute>
    </xsl:if>
    <xsl:apply-templates mode="stripNS"/>
  </xsl:element>

  <xsl:if test="(not(../db:title) and not(../ng:title))
                and ($info = 'prefaceinfo'
                     or $info = 'chapterinfo'
                     or $info = 'sectioninfo'
                     or $info = 'sect1info'
                     or $info = 'sect2info'
                     or $info = 'sect3info'
                     or $info = 'sect4info'
                     or $info = 'sect5info'
                     or $info = 'refsectioninfo'
                     or $info = 'refsect1info'
                     or $info = 'refsect2info'
                     or $info = 'refsect3info'
                     or $info = 'blockinfo'
                     or $info = 'appendixinfo')">
    <xsl:apply-templates select="db:title|ng:title" mode="stripNS"/>
  </xsl:if>

</xsl:template>

<xsl:template match="ng:tag|db:tag" mode="stripNS">
  <xsl:choose>
    <xsl:when test="@xlink:href">
      <ulink url="{@xlink:href}">
	<sgmltag>
	  <xsl:copy-of select="@*[not(name(.) = 'xml:id')
			       and not(name(.) = 'version')
			       and not(local-name(.) = 'href')]"/>
          <xsl:if test="@xml:id">
            <xsl:attribute name="id">
              <xsl:value-of select="@xml:id"/>
            </xsl:attribute>
          </xsl:if>
	  <xsl:apply-templates mode="stripNS"/>
	</sgmltag>
      </ulink>
    </xsl:when>
    <xsl:otherwise>
      <sgmltag>
	<xsl:copy-of select="@*[not(name(.) = 'xml:id')
                                and not(name(.) = 'version')]"/>
          <xsl:if test="@xml:id">
            <xsl:attribute name="id">
              <xsl:value-of select="@xml:id"/>
            </xsl:attribute>
          </xsl:if>
	<xsl:apply-templates mode="stripNS"/>
      </sgmltag>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<xsl:template match="db:link[@xlink:href]" mode="stripNS">
  <ulink url="{@xlink:href}">
    <xsl:if test="@role">
      <xsl:attribute name="role">
        <xsl:value-of select="@role"/>
      </xsl:attribute>
    </xsl:if>
    <xsl:apply-templates mode="stripNS"/>
  </ulink>
</xsl:template>

<xsl:template match="db:citetitle[@xlink:href]" mode="stripNS">
  <ulink url="{@xlink:href}">
    <citetitle>
      <xsl:copy-of select="@*[not(name(.) = 'xml:id')
			   and not(name(.) = 'version')
			   and not(local-name(.) = 'href')]"/>
      <xsl:if test="@xml:id">
        <xsl:attribute name="id">
          <xsl:value-of select="@xml:id"/>
        </xsl:attribute>
      </xsl:if>
      <xsl:apply-templates mode="stripNS"/>
    </citetitle>
  </ulink>
</xsl:template>

<xsl:template match="db:citetitle[@linkend]" mode="stripNS">
  <citetitle>
    <xsl:copy-of select="@*[not(name(.) = 'xml:id')
			 and not(name(.) = 'version')
			 and not(name(.) = 'linkend')
			 and not(local-name(.) = 'href')]"/>
    <xsl:if test="@xml:id">
      <xsl:attribute name="id">
        <xsl:value-of select="@xml:id"/>
      </xsl:attribute>
    </xsl:if>
      <xsl:apply-templates mode="stripNS"/>
  </citetitle>
</xsl:template>

<xsl:template match="db:alt" mode="stripNS"/>

<xsl:template match="ng:textdata|db:textdata
                     |ng:imagedata|db:imagedata
                     |ng:videodata|db:videodata
                     |ng:audiodata|db:audiodata" mode="stripNS">
  <xsl:element name="{local-name(.)}">
    <xsl:copy-of select="@*[not(name(.) = 'xml:id')
                            and not(name(.) = 'version')
                            and not(name(.) = 'entityref')]"/>
    <xsl:if test="@xml:id">
      <xsl:attribute name="id">
        <xsl:value-of select="@xml:id"/>
      </xsl:attribute>
    </xsl:if>

    <xsl:choose>
      <xsl:when test="@entityref">
        <xsl:attribute name="fileref">
          <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
        </xsl:attribute>
      </xsl:when>
    </xsl:choose>

    <xsl:apply-templates mode="stripNS"/>
  </xsl:element>
</xsl:template>

<xsl:template name="add-xml-base">
  <xsl:if test="not(@xml:base)">
    <xsl:variable name="base">
      <xsl:choose>
        <xsl:when test="function-available('saxon:systemId')">
          <xsl:value-of select="saxon:systemId()"/>
        </xsl:when>
        <xsl:when test="function-available('NodeInfo:systemId')">
          <xsl:value-of select="NodeInfo:systemId()"/>
        </xsl:when>
        <xsl:otherwise>
          <xsl:message>
            <xsl:text>WARNING: cannot add @xml:base to node </xsl:text>
            <xsl:text>set root element.  </xsl:text>
            <xsl:text>Relative paths may not work.</xsl:text>
          </xsl:message>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
    <!-- debug
    <xsl:message>base is <xsl:value-of select="$base"/></xsl:message>
    -->
    <xsl:if test="$base != ''">
      <xsl:attribute name="xml:base">
        <xsl:call-template name="systemIdToBaseURI">
          <xsl:with-param name="systemId">
            <!-- file: seems to confuse some processors. -->
            <xsl:choose>
              <!-- however, windows paths must use file:///c:/path -->
              <xsl:when test="starts-with($base, 'file:///') and
                              substring($base, 10, 1) = ':'">
                <xsl:value-of select="$base"/>
              </xsl:when>
              <xsl:when test="starts-with($base, 'file:/')
                              and substring($base, 8, 1) = ':'">
                <xsl:value-of select="concat('file:///', 
                                      substring-after($base,'file:/'))"/>
              </xsl:when>
              <xsl:when test="starts-with($base, 'file:///')">
                <xsl:value-of select="substring-after($base,'file://')"/>
              </xsl:when>
              <xsl:when test="starts-with($base, 'file://')">
                <xsl:value-of select="substring-after($base,'file:/')"/>
              </xsl:when>
              <xsl:when test="starts-with($base, 'file:/')">
                <xsl:value-of select="substring-after($base,'file:')"/>
              </xsl:when>
              <xsl:otherwise>
                <xsl:value-of select="$base"/>
              </xsl:otherwise>
            </xsl:choose>
          </xsl:with-param>
        </xsl:call-template>
      </xsl:attribute>
    </xsl:if>
  </xsl:if>
</xsl:template>

<xsl:template name="systemIdToBaseURI">
  <xsl:param name="systemId" select="''"/>
  <xsl:if test="contains($systemId,'/')">
    <xsl:value-of select="substring-before($systemId,'/')"/>
    <xsl:text>/</xsl:text>
    <xsl:call-template name="systemIdToBaseURI">
      <xsl:with-param name="systemId"
                      select="substring-after($systemId,'/')"/>
    </xsl:call-template>
  </xsl:if>
</xsl:template>

<xsl:template match="comment()|processing-instruction()|text()" mode="stripNS">
  <xsl:copy/>
</xsl:template>

<xsl:template match="/" priority="-1">
  <!-- need a local version of this variable because this module imported many places-->
  <xsl:variable name="local.exsl.node.set.available">
    <xsl:choose>
      <xsl:when exsl:foo="" xmlns:exsl="http://exslt.org/common"
        test="function-available('exsl:node-set') or
                         contains(system-property('xsl:vendor'),
                           'Apache Software Foundation')">1</xsl:when>
      <xsl:otherwise>0</xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:choose>
    <xsl:when test="$local.exsl.node.set.available != 0
                    and (*/self::ng:* or */self::db:*)">
      <xsl:message>
        <xsl:text>Stripping namespace from DocBook 5 document. </xsl:text>
        <xsl:text>It is suggested to use namespaced version of the stylesheets </xsl:text>
        <xsl:text>available in distribution file 'docbook-xsl-ns' </xsl:text>
        <xsl:text>at //http://sourceforge.net/projects/docbook/files/</xsl:text>
        <xsl:text> which does not require namespace stripping step.</xsl:text>
      </xsl:message>
      <xsl:variable name="nons">
        <xsl:apply-templates mode="stripNS"/>
      </xsl:variable>
      <xsl:message>Processing stripped document.</xsl:message>
      <xsl:apply-templates select="exsl:node-set($nons)"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:copy-of select="node()"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

</xsl:stylesheet>
