<?xml version="1.0" ?><!-- -*- coding: utf-8 -*- -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">




<xsl:output method="xml" encoding="iso-8859-1" indent="yes"
            doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" />




<!-- Les paramètres -->

<xsl:param name="cible" />
<xsl:param name="refsujet" />





<!-- Traitement de la racine -->

<xsl:template match="/sujets">

  <html>
  <head>
    <title>Sujets ID</title>
    <link rel="stylesheet" type="text/css" href="sujets.css" />
  </head>
  <body>
    <div class="contenu">

<p>
  Cette page est produite dans le cadre d'exercices sur XSLT. Son contenu n'est peut-être pas pertinent.
</p>
<ul>
  <li>retour aux <a href="http://www.grappa.univ-lille3.fr/~torre/Enseignement/TPs/XML/Corrections/#xsltfilms">solutions des exercices XML</a></li>
  <li>retour aux <a href="http://www.grappa.univ-lille3.fr/~torre/Enseignement/TPs/XML/XSLT/">exercices XSLT</a></li>
  <li>retour à la page de <a href="http://www.grappa.univ-lille3.fr/~torre/">Fabien Torre</a></li>
</ul>

    <xsl:choose>

    <!-- tous les sujets -->

    <xsl:when test="$cible='tout'">
    <h1>Tous les sujets abordés pendant le Master Informatique et Document</h1>
    <ul>
      <xsl:apply-templates select="sujet[not(@pere)]" mode="tout" />
    </ul>
    </xsl:when>

    

    <!-- un seul sujet -->

    <xsl:when test="$cible='unsujet'">
      <xsl:apply-templates select="sujet[@id=$refsujet]" mode="unseul" />
    </xsl:when>


    <!-- erreur -->

    <xsl:otherwise>
      <h1>Page vide</h1>
    </xsl:otherwise>
    
    </xsl:choose>
    
    <hr />

    <div class="logos">
      <a href="http://www.grappa.univ-lille3.fr/~torre/"><img src="http://www.grappa.univ-lille3.fr/~torre/Images/FabienTorre.png" alt="Fabien Torre" /></a>
      <a href="http://validator.w3.org/check/referer"><img src="http://www.grappa.univ-lille3.fr/~torre/Images/valid-xhtml10.png" alt="Valid XHTML 1.0!" /></a>
      <a href="http://jigsaw.w3.org/css-validator/validator?uri=http://www.grappa.univ-lille3.fr/~torre/Enseignement/Master-ID/Memoire/memoire.css"><img src="http://www.grappa.univ-lille3.fr/~torre/Images/valid_css.png" alt="Valid CSS!" /></a>
    </div>

    </div>
  </body>
  </html>
</xsl:template>


<!-- Règles pour la sortie des URLs -->

<xsl:template name="faireunlien">
  <xsl:param name="adresse" />
  <xsl:param name="texte" />
  <a href="{$adresse}">
    <xsl:value-of select="$texte" />
  </a>
</xsl:template>

<xsl:template match="url">
  <li>
    <xsl:call-template name="faireunlien">
      <xsl:with-param name="texte"   select="." />
      <xsl:with-param name="adresse" select="@href" />
    </xsl:call-template>
  </li>
</xsl:template>


<!-- Sortie des sujets -->

<xsl:template match="sujet" mode="tout">
  <li>
    <xsl:value-of select="@titre" />

    <xsl:if test="count(url) > 0">
      <ul >
	<xsl:apply-templates select="./url" />
      </ul>
    </xsl:if>

    <xsl:copy-of select="description/*" />

    <xsl:variable name="idsujet" select="@id" />
    <xsl:if test="//sujet[@pere=$idsujet]">
      <ul>
	<xsl:apply-templates select="//sujet[@pere=$idsujet]" mode="tout">
	  <xsl:sort select="@titre" order="ascending" />
	</xsl:apply-templates>
      </ul>
    </xsl:if>
  </li>
</xsl:template>



<xsl:template match="sujet" mode="liste">
  <li>
    <xsl:call-template name="faireunlien">
      <xsl:with-param name="texte"   select="@titre" />
      <xsl:with-param name="adresse" select="concat(@id,'.html')" />
    </xsl:call-template>
  </li>
</xsl:template>


<xsl:template match="sujet" mode="ascendance">
  <xsl:if test="@pere">
    <xsl:variable name="idpere" select="@pere" />
    <xsl:apply-templates select="//sujet[@id=$idpere]" mode="ascendance" />
    <xsl:text> &gt; </xsl:text>
  </xsl:if>
  <xsl:call-template name="faireunlien">
    <xsl:with-param name="texte"   select="@titre" />
    <xsl:with-param name="adresse" select="concat(@id,'.html')" />
  </xsl:call-template>
</xsl:template>


<xsl:template match="sujet" mode="unseul">

  <h1><xsl:value-of select="@titre" /></h1>

  <xsl:if test="@pere">
    <div class="chemin">
      <xsl:variable name="idpere" select="@pere" />
      <xsl:apply-templates select="//sujet[@id=$idpere]" mode="ascendance" />
    </div>
  </xsl:if>

  <xsl:if test="count(url) > 0">
    <ul >
      <xsl:apply-templates select="./url" />
    </ul>
  </xsl:if>

  <xsl:copy-of select="description/*" />

  <xsl:variable name="idsujet" select="@id" />

  <xsl:if test="//sujet[@pere=$idsujet]">
    <ul>
      <xsl:apply-templates select="//sujet[@pere=$idsujet]" mode="liste">
	<xsl:sort select="@titre" order="ascending" />
      </xsl:apply-templates>
    </ul>
  </xsl:if>
  
</xsl:template>



</xsl:stylesheet>


