<?xml version="1.0" encoding="UTF-8"?>

<!-- Génération du fichier docbook index à partir de l'ensemble des fichiers docbook de répertoire -->

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xi="http://www.w3.org/2001/XInclude" exclude-result-prefixes="xi">

 <xsl:template match="/">
  <xsl:apply-templates>
   <xsl:with-param name="path" select="'documents\'"/>
  </xsl:apply-templates>
 </xsl:template>

 <!-- Traitement des inclusions -->
 <xsl:template match="xi:include">
  <xsl:param name="path"/>
  <xsl:variable name="newpath">
   <xsl:call-template name="findpath">
    <xsl:with-param name="p" select="@href"/>
   </xsl:call-template>
  </xsl:variable>
  <xsl:apply-templates select="document(concat('..\',$path,@href))/*">
   <xsl:with-param name="path" select="concat($path,$newpath)"/>
  </xsl:apply-templates>
 </xsl:template>

 <xsl:template name="findpath">
  <xsl:param name="p"/>
  <xsl:if test="contains($p,'\')">
   <xsl:value-of select="concat(substring-before($p,'\'),'\')"/>
   <xsl:call-template name="findpath">
    <xsl:with-param name="p" select="substring-after($p,'\')"/>
   </xsl:call-template>
  </xsl:if>
 </xsl:template>

 <xsl:template match="ulink">
  <xsl:param name="path"/>
  <ulink url="{concat($path,@url)}"><xsl:value-of select="."/></ulink>
 </xsl:template>

 <xsl:template match="@* | node()">
  <xsl:param name="path"/>
  <xsl:copy>
   <xsl:apply-templates select="@* | node()">
    <xsl:with-param name="path" select="$path"/>
   </xsl:apply-templates>
  </xsl:copy>
 </xsl:template>

</xsl:stylesheet>
