<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!--
PathUtils.xsl

A set of XSLT templates useful for parsing URI paths:

dirname: return the directory part of a path
filename: return the file part of a path
ext: return the last extension of the filename in a path
filename-noext: return the file part of a path without its last extension

@author Jeff Turner <jefft@apache.org>
$Id$
-->

<!-- Returns the directory part of a path.  Equivalent to Unix 'dirname'.
Examples:
'' -> ''
'foo/index.html' -> 'foo/'
-->
<xsl:template name="dirname">
  <xsl:param name="path" />
  <xsl:if test="contains($path, '/')">
    <xsl:value-of select="concat(substring-before($path, '/'), '/')" />
    <xsl:call-template name="dirname">
      <xsl:with-param name="path"
        select="substring-after($path, '/')" />
    </xsl:call-template>
  </xsl:if>
</xsl:template>

<!-- Normalized (..'s eliminated) version of 'dirname' -->
<xsl:template name="dirname-nz">
  <xsl:param name="path" />
  <xsl:call-template name="normalize">
    <xsl:with-param name="path">
      <xsl:call-template name="dirname">
        <xsl:with-param name="path" select="$path" />
      </xsl:call-template>
    </xsl:with-param>
  </xsl:call-template>
</xsl:template>


<!-- Returns the filename part of a path.  Equivalent to Unix 'basename'
Examples:
'index.html'  ->  'index.html' 
'foo/bar/'  ->  '' 
'foo/bar/index.html'  ->  'index.html' 
-->
<xsl:template name="filename">
  <xsl:param name="path"/>
  <xsl:choose>
    <xsl:when test="contains($path, '/')">
      <xsl:call-template name="filename">
        <xsl:with-param name="path" select="substring-after($path, '/')"/>
      </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="$path"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<!-- Returns the last extension of a filename in a path.
Examples:
'index.html'  ->  '.html' 
'index.dtdx.html'  ->  '.html' 
'foo/bar/'  ->  '' 
'foo/bar/index.html'  ->  '.html' 
'foo/bar/index'  ->  '' 
-->
<xsl:template name="ext">
  <xsl:param name="path"/>
  <xsl:param name="subflag"/> <!-- Outermost call? -->
  <xsl:choose>
    <xsl:when test="contains($path, '.')">
      <xsl:call-template name="ext">
        <xsl:with-param name="path" select="substring-after($path, '.')"/>
        <xsl:with-param name="subflag" select="'sub'"/>
      </xsl:call-template>
    </xsl:when>
    <!-- Handle extension-less filenames by returning '' -->
    <xsl:when test="not($subflag) and not(contains($path, '.'))">
      <xsl:text/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="concat('.', $path)"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<!-- Returns a filename of a path stripped of its last extension.
Examples:
'foo/bar/index.dtdx.html' -> 'index.dtdx'
-->
<xsl:template name="filename-noext">
  <xsl:param name="path"/>
  <xsl:variable name="filename">
    <xsl:call-template name="filename">
      <xsl:with-param name="path" select="$path"/>
    </xsl:call-template>
  </xsl:variable>
  <xsl:variable name="ext">
    <xsl:call-template name="ext">
      <xsl:with-param name="path" select="$filename"/>
    </xsl:call-template>
  </xsl:variable>
  <xsl:value-of select="substring($filename, 1, string-length($filename) - string-length($ext))"/>
</xsl:template>

<!-- Returns a path with the filename stripped of its last extension.
Examples:
'foo/bar/index.dtdx.html' -> 'foo/bar/index.dtdx'
-->
<xsl:template name="path-noext">
  <xsl:param name="path"/>
  <xsl:variable name="ext">
    <xsl:call-template name="ext">
      <xsl:with-param name="path" select="$path"/>
    </xsl:call-template>
  </xsl:variable>
  <xsl:value-of select="substring($path, 1, string-length($path) - string-length($ext))"/>
</xsl:template>

<!-- Normalized (..'s eliminated) version of 'path-noext' -->
<xsl:template name="path-noext-nz">
  <xsl:param name="path" />
  <xsl:call-template name="normalize">
    <xsl:with-param name="path">
      <xsl:call-template name="path-noext">
        <xsl:with-param name="path" select="$path" />
      </xsl:call-template>
    </xsl:with-param>
  </xsl:call-template>
</xsl:template>

<!-- Returns a path with any fragment identifier ('#...') stripped off
Examples:
'foo/bar/index.dtdx.html#blah' -> 'foo/bar/index.dtdx.html'
-->
<xsl:template name="path-nofrag">
  <xsl:param name="path"/>
  <xsl:if test="not(contains($path, '#'))">
    <xsl:value-of select="$path"/>
  </xsl:if>
  <xsl:if test="contains($path, '#')">
    <xsl:value-of select="substring-before($path, '#')"/>
  </xsl:if>
</xsl:template>



<!-- Normalizes a path, converting '/' to '\' and eliminating ..'s
Examples:
'foo/bar/../baz/index.html' -> foo/baz/index.html'
-->
<xsl:template name="normalize">
  <xsl:param name="path"/>
  <xsl:variable name="path-" select="translate($path, '\', '/')"/>
  <xsl:choose>
    <xsl:when test="contains($path-, '/../')">

      <xsl:variable name="pa" select="substring-before($path-, '/../')"/>
      <xsl:variable name="th" select="substring-after($path-, '/../')"/>
      <xsl:variable name="pa-">
        <xsl:call-template name="dirname">
          <xsl:with-param name="path" select="$pa"/>
        </xsl:call-template>
      </xsl:variable>
      <xsl:variable name="pa-th" select="concat($pa-, $th)"/>
      <xsl:call-template name="normalize">
        <xsl:with-param name="path" select="$pa-th"/>
      </xsl:call-template>
    </xsl:when>

    <xsl:otherwise>
      <xsl:value-of select="$path-"/>
    </xsl:otherwise>
  </xsl:choose>

</xsl:template>

<!--
Uncomment this to test.
Usage: saxon pathutils.xsl pathutils.xsl path=foo/bar

<xsl:param name="path" select="'/foo/bar/../baz/index.html'"/>
<xsl:template match="/">
  <xsl:message>
    path           = <xsl:value-of select="$path"/>
    normalize      = <xsl:call-template name="normalize">
      <xsl:with-param name="path" select="$path"/>
    </xsl:call-template>
    dirname        = <xsl:call-template name="dirname">
      <xsl:with-param name="path" select="$path"/>
    </xsl:call-template>
    dirname-nz     = <xsl:call-template name="dirname-nz">
      <xsl:with-param name="path" select="$path"/>
    </xsl:call-template>
    filename       = <xsl:call-template name="filename">
      <xsl:with-param name="path" select="$path"/>
    </xsl:call-template>
    ext            = <xsl:call-template name="ext">
      <xsl:with-param name="path" select="$path"/>
    </xsl:call-template>
    filename-noext = <xsl:call-template name="filename-noext">
      <xsl:with-param name="path" select="$path"/>
    </xsl:call-template>
    path-noext     = <xsl:call-template name="path-noext">
      <xsl:with-param name="path" select="$path"/>
    </xsl:call-template>
    path-noext-nz  = <xsl:call-template name="path-noext-nz">
      <xsl:with-param name="path" select="$path"/>
    </xsl:call-template>
    path-nofrag    = <xsl:call-template name="path-nofrag">
      <xsl:with-param name="path" select="$path"/>
    </xsl:call-template>
 
  </xsl:message>
</xsl:template>
-->

</xsl:stylesheet>
