I - Introduction
        Traitement de documents XML
        Le langage XSL
                Statut actuel
                Evolutions
        Divers modes d'utilisation de XSLT
                Mode Commande
                Mode Navigateur
                Mode Serveur
        Typologie des utilisations d'XSL
        Un avant-goût d'XSLT
                Exemple
                Extraction individuelle (pull processing)
                Le langage XPath
                Autre exemple
        Parcours de lecture


Chapitre I - Introduction

Traitement de documents XML

Le langage XSL

Statut actuel

Evolutions

Divers modes d'utilisation de XSLT

Mode Commande

Mode Navigateur

Mode Serveur

Typologie des utilisations d'XSL

Un avant-goût d'XSLT

Exemple

AnnonceConcert.xsl
<?xml version="1.0"?>
<html xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xsl:version="1.0">
    
    <head>
        <title>Les "Concerts Anacréon"</title>
    </head>
    
    <body>
    
        <H1 align="center">Les "Concerts Anacréon" présentent</H1>
        
        <hr/>
        
        <br/>
        
        <H1 align="center"> 
            Concert le <xsl:value-of select="/Annonce/Date"/> 
        </H1>
        
        <H4 align="center"> 
            <xsl:value-of select="/Annonce/Lieu"/> 
        </H4>
        
        <H2 align="center"> 
            Ensemble "<xsl:value-of select="/Annonce/Ensemble"/>"
        </H2>
        
        <xsl:for-each select="/Annonce/Interprète">
            <p>
                <xsl:value-of select="./Nom"/>, 
                <xsl:value-of select="./Instrument"/>
            </p>
        </xsl:for-each>
        
        <H3> 
            Oeuvres de <xsl:value-of select="/Annonce/Compositeurs"/>
        </H3>
    
    </body>
</html>
Annonce.xml
<?xml version="1.0" ?>

<Annonce>
    
    <Date>Jeudi 17 Janvier 2002 20H30
    </Date>
    <Lieu>Chapelle des Ursules</Lieu>

    <Ensemble>A deux violes esgales</Ensemble>

    <Interprète>
        <Nom> Jonathan Dunford </Nom>
        <Instrument>Basse de viole</Instrument>
    </Interprète>

    <Interprète>
        <Nom> Sylvia Abramowicz </Nom>
        <Instrument>Basse de viole</Instrument>
    </Interprète>

    <Interprète>
        <Nom> Benjamin Perrot </Nom>
        <Instrument>Théorbe</Instrument>
    </Interprète>

    <Interprète>
        <Nom> Freddy Eichelberger </Nom>
        <Instrument>Clavecin</Instrument>
    </Interprète>
    
    <Compositeurs>
        M. Marais, D. Castello, F. Rognoni
    </Compositeurs>
    
</Annonce>
Ligne de commande (d'un seul tenant)
java -classpath saxon.jar com.icl.saxon.StyleSheet 
                                 -o annonce.html Annonce.xml AnnonceConcert.xsl
Annonce.html
<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
   
      <title>Les &laquo;Concerts Anacr&eacute;on&raquo;</title>
   </head>
   <body>
      <H1 align="center">Les &laquo;Concerts Anacr&eacute;on&raquo; pr&eacute;sentent</H1>
      <hr><br><H1 align="center"> 
                    Concert le Jeudi 17 Janvier 2002 20H30
            
      </H1>
      <H4 align="center">Chapelle des Ursules</H4>
      <H2 align="center"> 
                    Ensemble &laquo;A deux violes esgales&raquo; 
                
      </H2>
      <p> Jonathan Dunford , 
                        Basse de viole
      </p>
      <p> Sylvia Abramowicz , 
                        Basse de viole
      </p>
      <p> Benjamin Perrot , 
                        Th&eacute;orbe
      </p>
      <p> Freddy Eichelberger , 
                        Clavecin
      </p>
      <H3> 
                    Oeuvres de 
                M. Marais, D. Castello, F. Rognoni
            
      </H3>
   </body>
</html>

Extraction individuelle (pull processing)

    <head>
        <title>Les "Concerts Anacréon"</title>
    </head>
    
    <body>
    
        <H1 align="center">Les "Concerts Anacréon" présentent</H1>
        
        <hr/>
        
        <br/>
        
        <H1 align="center"> 
            Concert le <xsl:value-of select="/Annonce/Date"/> 
        </H1>
        
        <H4 align="center"> 
            <xsl:value-of select="/Annonce/Lieu"/> 
        </H4>
        
        <H2 align="center"> 
            Ensemble "<xsl:value-of select="/Annonce/Ensemble"/>" 
        </H2>
    ...

Le langage XPath

<xsl:value-of select="/Annonce/Date"/>
Jeudi 17 Janvier 2002 20H30
<head>
    <title>Les "Concerts Anacréon"</title>
</head>

<body>

    <H1 align="center">Les "Concerts Anacréon" présentent</H1>
    
    <hr/>
    
    <br/>
    
    <H1 align="center"> 
        Concert le Jeudi 17 Janvier 2002 20H30 
    </H1>
    
    <H4 align="center"> 
        Chapelle des Ursules 
    </H4>
    
    <H2 align="center"> 
        Ensemble "A deux violes esgales"
    </H2>
...
<xsl:for-each select="/Annonce/Interprète">
    <p>
        <xsl:value-of select="./Nom"/>, 
        <xsl:value-of select="./Instrument"/>
    </p>
</xsl:for-each>
     <xsl:value-of select="./Nom"/>
     <xsl:value-of select="./Instrument"/>
      <p> Jonathan Dunford , 
                        Basse de viole
      </p>
      <p> Sylvia Abramowicz , 
                        Basse de viole
      </p>
      <p> Benjamin Perrot , 
                        Th&eacute;orbe
      </p>
      <p> Freddy Eichelberger , 
                        Clavecin
      </p>

Autre exemple

Annonce.xml
<?xml version="1.0" ?>

<Annonce>
    
    <Date>Jeudi 17 Janvier 2002 20H30
    </Date>
    <Lieu>Chapelle des Ursules</Lieu>

    <Ensemble>A deux violes esgales</Ensemble>

    <Interprète>
        <Nom> Jonathan Dunford </Nom>
        <Instrument>Basse de viole</Instrument>
    </Interprète>

    <Interprète>
        <Nom> Sylvia Abramowicz </Nom>
        <Instrument>Basse de viole</Instrument>
    </Interprète>

    <Interprète>
        <Nom> Benjamin Perrot </Nom>
        <Instrument>Théorbe</Instrument>
        <Instrument>Luth</Instrument>
        <Instrument>Chitarrone</Instrument>
        <Instrument>Vihuela</Instrument>
        <Instrument>Angelique</Instrument>
    </Interprète>

    <Interprète>
        <Nom> Freddy Eichelberger </Nom>
        <Instrument>Clavecin</Instrument>
    </Interprète>
    
    <Compositeurs>
        M. Marais, D. Castello, F. Rognoni
    </Compositeurs>
    
</Annonce>
AnnonceConcert.xsl
<?xml version="1.0" ?>
<html xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
      xsl:version="1.0">
    
    <head>
        <title>Les "Concerts Anacréon"</title>
    </head>
    
    <body>
    
        <H1 align="center">Les "Concerts Anacréon" présentent</H1>
        
        <hr/>
        
        <br/>
        
        <H1 align="center"> 
            Concert le <xsl:value-of select="/Annonce/Date"/> 
        </H1>
        
        <H4 align="center"> 
            <xsl:value-of select="/Annonce/Lieu"/> 
        </H4>
        
        <H2 align="center"> 
            Ensemble "<xsl:value-of select="/Annonce/Ensemble"/>" 
        </H2>
        
        <xsl:for-each select="/Annonce/Interprète">
            <p>
                <xsl:value-of select="./Nom"/>
                <xsl:text> ( </xsl:text>
                <xsl:for-each select="./Instrument">
                    <xsl:value-of select="."/>
                    <xsl:if test="position() != last()">
                        <xsl:text>, </xsl:text>
                    </xsl:if>
                </xsl:for-each>
                <xsl:text> ) </xsl:text>
            </p>
        </xsl:for-each>
        
        <H3> 
            Oeuvres de <xsl:value-of select="/Annonce/Compositeurs"/>
        </H3>
    
    </body>
</html>
         <xsl:value-of select="./Nom"/>
            <xsl:text> ( </xsl:text>
         <xsl:value-of select="./Nom"/>
            (
          <xsl:value-of select="./Nom"/> ( <xsl:for-each select="./Instrument">
annonce.html
<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
   
      <title>Les &laquo;Concerts Anacr&eacute;on&raquo;</title>
   </head>
   <body>
      <H1 align="center">Les &laquo;Concerts Anacr&eacute;on&raquo; pr&eacute;sentent</H1>
      <hr><br><H1 align="center"> 
                    Concert le Jeudi 17 Janvier 2002 20H30
            
      </H1>
      <H4 align="center">Chapelle des Ursules</H4>
      <H2 align="center"> 
                    Ensemble &laquo;A deux violes esgales&raquo; 
                
      </H2>
      <p> Jonathan Dunford  ( Basse de viole ) </p>
      <p> Sylvia Abramowicz  ( Basse de viole ) </p>
      <p> Benjamin Perrot  ( Th&eacute;orbe, Luth, Chitarrone, Vihuela, Angelique ) </p>
      <p> Freddy Eichelberger  ( Clavecin ) </p>
      <H3> 
                    Oeuvres de 
                M. Marais, D. Castello, F. Rognoni
            
      </H3>
   </body>
</html>
annonce.html
<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
   
      <title>Les &laquo;Concerts Anacr&eacute;on&raquo;</title>
   </head>
   <body>
      <H1 align="center">Les &laquo;Concerts Anacr&eacute;on&raquo; pr&eacute;sentent</H1>
      <hr><br><H1 align="center"> 
                    Concert le Jeudi 17 Janvier 2002 20H30
            
      </H1>
      <H4 align="center">Chapelle des Ursules</H4>
      <H2 align="center"> 
                    Ensemble &laquo;A deux violes esgales&raquo; 
                
      </H2>
      <p> Jonathan Dunford 
                        (
                        Basse de viole
                        )
                    
      </p>
      <p> Sylvia Abramowicz 
                        (
                        Basse de viole
                        )
                    
      </p>
      <p> Benjamin Perrot 
                        (
                        Th&eacute;orbe
                                , 
                            Luth
                                , 
                            Chitarrone
                                , 
                            Vihuela
                                , 
                            Angelique
                        )
                    
      </p>
      <p> Freddy Eichelberger 
                        (
                        Clavecin
                        )
                    
      </p>
      <H3> 
                    Oeuvres de 
                M. Marais, D. Castello, F. Rognoni
            
      </H3>
   </body>
</html>
        <xsl:for-each select="/Annonce/Interprète">
            <p>
                <xsl:value-of select="./Nom"/>
                (
                <xsl:for-each select="./Instrument">
                    <xsl:value-of select="."/>
                    <xsl:if test="position() != last()">
                        , 
                    </xsl:if>
                </xsl:for-each>
                )
            </p>
        </xsl:for-each>
Conclusion

Parcours de lecture

Table following-sibling::*[1]