Introduction à XSLT 
(Extensible Stylesheet Language Transformation)

XSLT est très puissant



 

Un exemple:
 
 


<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="page">
  <xsl:processing-instruction  name="cocoon-format">type="text/html"
   </xsl:processing-instruction>
   <html>
    <head>
     <title>
         <xsl:value-of select="title"/>
     </title>
    </head>
    <body bgcolor="#ffffff">
         <xsl:apply-templates/>
    </body>
   </html>
  </xsl:template>

  <xsl:template match="title">
   <h1 align="center">
    <xsl:apply-templates/>
   </h1>
  </xsl:template>

  <xsl:template match="content">
   <p align="center">
     <xsl:apply-templates/>
   </p>
  </xsl:template>

  <xsl:template match="comment">
   <hr />
     <xsl:apply-templates/>
  </xsl:template>
 

</xsl:stylesheet>
 


<?xml version="1.0"?>
<?xml-stylesheet href="hello-page-html.xsl" type="text/xsl"?>
<?cocoon-process type="xslt"?>
<!-- modified from an example by Stefano Mazzocchi "stefano@apache.org" -->
<page>
 <title>Hello Cocoon friend</title>
 <content>
      Here is some content :)
 </content> 
 <comment>
      Written by DKS/Tecfa, adapted from S.M./the Cocoon samples
 </comment>
</page>
 simple exemple - tecfa
 



 

Le Modèle objet de document (DOM - Document Object Model)

Le Modèle objet de document est un langage normalisé d'interface (API, Application Programming Interface) qui va permettre à un programme (Java) de naviguer dans un arbre XML (ou HTML) et d'en lire ou d'en modifier le contenu
 
 



 
 
 
 
 

Avec DOM , HTML et XML les documents peuvent être manipulés comme des objets, au lieu d'être simplement un stream. Du point de vue de DOM,  un document est un arbre composé d'objet.

DOM fournit une méthode générale pour accéder aux données structurées d'un document structuré.

Chaque langage qui implémente DOM peut utiliser XML comme une interface pour stocker, retrouver et processer une structure d'objets génériques hiérarchisés.


Templates de base
 

<xsl:apply-templates />

     examine tous les noeuds enfants, voici la règle pour la racine.

    <xsl:template match="/">
          <html>
                <xsl:apply-templates/>
          </html>
    </xsl:template>

 L'attribut "select" de apply-templates

     permet de choisir un enfant nommé (au lieu de tous)

    <xsl:template match="projet">
            <xsl:apply-templates select="titre"/>
    </xsl:template>

xsl:value-of

     prend la valeur de qc et le copie vers le document "sortie"
     autrement dit: sélection d'un seul sous-noeud

    <xsl:template match="project">
         <P>
               <xsl:value-of select="problem/title"/>
         </P>
    </xsl:template>
 
 


Ce qu'il faut retenir, c'est que pour définir une règle de style il faut :


XSLT (XSL Transformation) va permettre, si nécessaire, de transformer une DTD (un arbre XML) "orientée contenu" en une autre DTD (un autre arbre XML) "orientée restitution" (c'est-à-dire constituée d"objets formateurs" (formatting objects). C'est à ce niveau que l'ordre de restitution final sera établi
(par exemple, que la bibliographie sera classée par ordre alphabétique d'auteurs), que les légendes du type "figure n° x" seront ajoutées, que seront fabriqués automatiquement les tables des matières, index alphabétiques, liens (logiques) de navigation, etc.).
 

Le langage normalisé de feuille de style XSL (Extensible Style Language) va permettre ensuite de spécifier
comment un type de document (= une DTD "orientée restitution") donné va être restitué sur un support donné.
C'est à ce niveau que seront réglés les problèmes du type "saut de page", notes présentées en bas de page ou en fin de chapitre, etc., que les liens de navigation seront fabriqués (hyperliens pour les versions électroniques, renvoi à un n° de page ou de paragraphe ou de note pour les versions papier...)
 
 
 

 

 
 
 
 
GULL - Genève - 02 Mars 2000
 next