• Aucun résultat trouvé

[PDF] Tutoriel Transformation et Formatage de documents XML | Formation informatique

N/A
N/A
Protected

Academic year: 2021

Partager "[PDF] Tutoriel Transformation et Formatage de documents XML | Formation informatique"

Copied!
37
0
0

Texte intégral

(1)

Les technologies XML

Les technologies XML

Cours 2 :

Cours 2 :

Transformation et Formatage de

Transformation et Formatage de

documents XML :

documents XML :

Cours 2.2 :

Cours 2.2 :

XSLT

XSLT

Novembre 2010 Novembre 2010 - Version 3.2 - - Version 3.2 -

(2)

SOMMAIRE DU COURS

SOMMAIRE DU COURS

TRANSFORMATIONS DE DOCUMENTS XML

TRANSFORMATIONS DE DOCUMENTS XML

Introduction à XSL

Introduction à XSL

Noeuds et arbre XML

Noeuds et arbre XML

XSLT en bref

XSLT en bref

Objectifs

Objectifs

Principes

Principes

Exemple XML + XSL

Exemple XML + XSL

XHTML

XHTML

XSL en résumé

XSL en résumé

Structure d'un document XML

Structure d'un document XML

Règles de transformation

Règles de transformation

Variables et paramètres

Variables et paramètres

Fonctions

Fonctions

Conclusion

Conclusion

(3)

Les outils destinés à

Les outils destinés à

transformer

transformer

les

les

documents XML représentent ceux-ci comme un

documents XML représentent ceux-ci comme un

arbre de nœuds XML.

arbre de nœuds XML.

XSL

XSL

est le langage qui permet d’écrire des

est le langage qui permet d’écrire des

feuilles de style. Une feuille de style est

feuilles de style. Une feuille de style est

constituée d’un ensemble de règles de

constituée d’un ensemble de règles de

transformations, s’appliquant chacune à un ou

transformations, s’appliquant chacune à un ou

plusieurs nœuds de l’arbre et permettant de

plusieurs nœuds de l’arbre et permettant de

transformer ce nœud en un nouveau nœud de

transformer ce nœud en un nouveau nœud de

l’arbre résultat.

l’arbre résultat.

INTRODUCTION A XSL

(4)

INTRODUCTION A XSL

INTRODUCTION A XSL

2/32/3

XSL est plus riche que CSS :

XSL est plus riche que CSS :

XSL supporte toutes les fonctionnalités de la norme CSS1 et a été conçu dans la perspective de pouvoir facilement "traduire" une feuille de style CSS en feuille de style XSL (et vice-versa pour des feuilles XSL simples).

XSL apporte des mécanisme de sélection des cibles stylistiques plus performant que celui de CSS ainsi que des mécanismes de ré-organisation des données.

Il existe décomposé en trois parties :

XSL Transform (XSLT)

XSL Transform (XSLT)

XSL Formatting Object (XSL-FO)

XSL Formatting Object (XSL-FO)

XML Path Language (XPATH)

(5)

INTRODUCTION A XSL

INTRODUCTION A XSL

3/33/3

XSL : eXtensible Stylesheet Language.

XSL : eXtensible Stylesheet Language.

Objectifs :

Objectifs :

Ce langage déclaratif permet de

Ce langage déclaratif permet de

transformer un document XML en :

transformer un document XML en :

un autre document texte ou XML (XHTML, ...)

un autre document texte ou XML (XHTML, ...)

via XSLT

un autre format de rendu : PDF, Postscript, image,

un autre format de rendu : PDF, Postscript, image,

audio, etc.

audio, etc.

via XSL-FO

(6)

RAPPEL : LES DIFFERENTS

RAPPEL : LES DIFFERENTS

TYPES DE NOEUDS

TYPES DE NOEUDS

1/21/2

Exemple de fichiers XML :

(7)

RAPPEL : LES DIFFERENTS

RAPPEL : LES DIFFERENTS

TYPES DE NOEUDS

TYPES DE NOEUDS

2/22/2

Arbre correspondant :

(8)

XSLT

XSLT

1/41/4

Principes :

Principes :

Le langage XSLT

Le langage XSLT

décrit des règles pour

décrit des règles pour

transformer un document XML.

transformer un document XML.

Ces règles

Ces règles

de transformations s’appliquent

de transformations s’appliquent

chacune à un ou plusieurs nœuds de l’arbre et

chacune à un ou plusieurs nœuds de l’arbre et

spécifient la transformation à effectuer sur un nœud

spécifient la transformation à effectuer sur un nœud

pour le transformer en un nouveau nœud de l’arbre

pour le transformer en un nouveau nœud de l’arbre

résultat.

résultat.

Un processeur XSLT

Un processeur XSLT

lit d’une part un

lit d’une part un

document XML et d’autre part un document XSLT

document XML et d’autre part un document XSLT

et génère un nouveau document en appliquant les

et génère un nouveau document en appliquant les

règles de transformation.

(9)

XSLT

XSLT

2/42/4

Fonctions de base (transformations)

Fonctions de base (transformations)

offertes par une feuille de style XSLT :

offertes par une feuille de style XSLT :

extraction de données

extraction de données

génération de texte

génération de texte

suppression de contenu (noeuds)

suppression de contenu (noeuds)

déplacement de contenu (noeuds)

déplacement de contenu (noeuds)

duplication de contenu (noeuds)

duplication de contenu (noeuds)

tri de données

tri de données

Site de référence :

Site de référence :

http://www.laltruiste.com/coursxsl/sommaire.html http://www.laltruiste.com/coursxsl/sommaire.html

(10)

XSLT

XSLT

3/43/4

Dans l’exemple qui suit

Dans l’exemple qui suit

, on souhaite

, on souhaite

transformer un document XML en document

transformer un document XML en document

HTML :

HTML :

Document XML source:

Document XML source:

<personne id="0001"> <nom>Durand</nom> <prénom>Martine</prénom> </personne>

Document HTML cible :

Document HTML cible :

<html> <body> <p><b>Durand</b> Martine</p> </body> </html>

(11)

XSLT

XSLT

4/44/4

Document XSLT correspondant :

Document XSLT correspondant :

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/> <xsl:template match="personne"> <html> <body> <p> <b> <xsl:value-of select="nom"/> </b> <xsl:value-of select="prenom"/> </p> </body> </html> </xsl:template> </xsl:stylesheet>

(12)

Un exemple complet: XML & XSL

Le fichier essai.xml (eXtensible Markup Language) :

<?xml version="1.0" encoding="iso­8859­1" ?> <!DOCTYPE stock SYSTEM "essai.dtd"> <stock>   <produit>     <nom> Livre </nom>     <prix monnaie="Francs"> 50 </prix>     <comment> Un article très recherché </comment>   </produit>   <produit>     <nom> CD </nom><prix monnaie="Euros"> 23 </prix>   </produit> </stock>

(13)

Un exemple complet: production HTML

le traitement des fichiers essai.xml, essai.dtd, essai.xsl donne le fichier essai.html suivant: <html>   <body>        <h1>Stock de la soci&eacute;t&eacute;</h1>              <h2>Produit  Livre </h2>              <p>Prix :  50 en Francs</p>     <p> Un article tr&egrave;s recherch&eacute; </p>              <h2>Produit  CD </h2>              <p>Prix :  23 en Euros</p>            </body> </html>

(14)

Un exemple complet: XSL

Le fichier essai.xsl (eXtensible Style Language) :

<?xml version="1.0" encoding="iso­8859­1" ?>  <xsl:stylesheet     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"     version="1.0"> <xsl:output method="html"/> <xsl:template match="/">     <html><body>     <xsl:apply­templates/>     </body></html> </xsl:template> <xsl:template match="stock">     <h1>Stock de la société</h1>     <xsl:apply­templates/> </xsl:template>

(15)

<xsl:template match="produit">     <h2>Produit <xsl:value­of select="nom"/></h2>     <p>Prix : <xsl:value­of select="prix"/>     en <xsl:value­of select="prix/@monnaie"/></p>     <xsl:if test="comment">         <p><xsl:value­of select="comment"/></p>     </xsl:if> </xsl:template> </xsl:stylesheet>

(16)

STRUCTURE D’UN DOCUMENT XSLT

STRUCTURE D’UN DOCUMENT XSLT

1/6

1/6

Structure d’un document XSLT :

Structure d’un document XSLT :

<xsl:stylesheet version="1.0"     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:import href="..."/> <xsl:include href="..."/> <xsl:strip­space elements="..."/> <xsl:preserve­space elements="..."/> <xsl:output method="..."/> <xsl:key name="..." match="..." use="..."/> <xsl:decimal­format name="..."/> <xsl:attribute­set name="...">...</xsl:attribute­set> <xsl:variable name="...">...</xsl:variable> <xsl:param name="...">...</xsl:param> <xsl:template match="...">...</xsl:template> <xsl:template name="...">...</xsl:template> </xsl:stylesheet>

(17)

STRUCTURE D’UN DOCUMENT XSLT

STRUCTURE D’UN DOCUMENT XSLT

2/6

2/6

L’élément racine :

L’élément racine :

<xsl:stylesheet>

<xsl:stylesheet>

L’attribut

L’attribut

version

version

indique la version de XSLT

indique la version de XSLT

exigées

exigées

par la feuille de styles

par la feuille de styles

L’attribut

L’attribut

xmlns:xsl

xmlns:xsl

indique l’URI de l’espace

indique l’URI de l’espace

de nom xsl (il est nécessaire pour indiquer à

de nom xsl (il est nécessaire pour indiquer à

un éventuel processeur XSL que notre fichier

un éventuel processeur XSL que notre fichier

est du XSL valide).

est du XSL valide).

Les éléments fils de <xsl:stylesheet> sont

Les éléments fils de <xsl:stylesheet> sont

appelés

(18)

STRUCTURE D’UN

STRUCTURE D’UN

DOCUMENT XSLT

DOCUMENT XSLT

3/63/6

<xsl:import>

<xsl:import>

et

et

<xsl:include>

<xsl:include>

permettent

permettent

d’inclure des règles d’un document XSLT dans

d’inclure des règles d’un document XSLT dans

un autre.

un autre.

La différence entre ces 2 instructions

La différence entre ces 2 instructions

résident dans la gestion des conflits en

résident dans la gestion des conflits en

terme d’application des règles :

terme d’application des règles :

avec xsl:import les règles importées ont

une préséance moindre que celles du

programme importateur (l’ordre d’importation

est important)

avec xsl:include il n’y a pas de notion de

préséance xsl:import doit être le premier

élément de premier niveau du programme.

(19)

STRUCTURE D’UN

STRUCTURE D’UN

DOCUMENT XSLT

DOCUMENT XSLT

4/64/6

<xsl:output>

permet de définir le format de

permet de définir le format de

sortie.

sortie.

Exemple :

Exemple :

<xsl:output method=“html” indent=“yes”

<xsl:output method=“html” indent=“yes”

encoding=“iso-8859-1”>

encoding=“iso-8859-1”>

Cette déclaration précise que :

Cette déclaration précise que :

le document cible est le format HTML,

le fichier cible sera indenté,

les caractères du fichier XML d’entrée sont

encodé selon la norme iso-8859-1.

XHTML est du xml, donc

(20)

STRUCTURE D’UN

STRUCTURE D’UN

DOCUMENT XSLT

DOCUMENT XSLT

5/65/6

<xsl:output>

(suite) :

(suite) :

La notion d’encoding a son importance si le

La notion d’encoding a son importance si le

fichier

XML

contient

des

caractères

fichier

XML

contient

des

caractères

accentués et est déclaré avec l’entête

accentués et est déclaré avec l’entête

<?xml version=1.0 encoding=iso-8859-1 ?>.

<?xml version=1.0 encoding=iso-8859-1 ?>.

En

En

effet

effet

le fichier XML sera correctement

le fichier XML sera correctement

transformé si l’on déclare le même encodage

transformé si l’on déclare le même encodage

au

(21)

STRUCTURE D’UN

STRUCTURE D’UN

DOCUMENT XSLT

DOCUMENT XSLT

6/66/6

<xsl:strip-space>

<xsl:strip-space>

et

et

<xsl:preserve-space>

<xsl:preserve-space>

:

:

<xsl:strip-space elements="liste_éléments"/>

<xsl:strip-space elements="liste_éléments"/>

permet la suppression des espaces blancs superflus

permet la suppression des espaces blancs superflus

pour les éléments énumérés dans la liste.

pour les éléments énumérés dans la liste.

Exemple :

<xsl:strip-space elements="nom prenom"/>

<xsl:preserve-space

<xsl:preserve-space elements="liste_éléments"/>elements="liste_éléments"/>

permet de préserver les espaces blancs tels quels

permet de préserver les espaces blancs tels quels

pour des éléments énumérés dans une liste.

pour des éléments énumérés dans une liste.

Exemple :

(22)

LES REGLES DE

LES REGLES DE

TRANSFORMATION

TRANSFORMATION

1/111/11

<xsl:template>

<xsl:template>

définit une règle XSLT :

définit une règle XSLT :

Un document XSLT se compose d’un ensemble de

Un document XSLT se compose d’un ensemble de

règles (template) permettant de construire le

règles (template) permettant de construire le

résultat.

résultat.

L’application d’une règle produit un fragment du

L’application d’une règle produit un fragment du

document résultat.

document résultat.

L’ordre des règles n’a pas d’importance.

L’ordre des règles n’a pas d’importance.

Une règle s’applique dans le contexte d’un nœud de

Une règle s’applique dans le contexte d’un nœud de

l’arbre.

l’arbre.

Le corps d’une règle se compose d’un ensemble

Le corps d’une règle se compose d’un ensemble

d’instructions.

(23)

LES REGLES DE

LES REGLES DE

TRANSFORMATION

TRANSFORMATION

2/112/11

<

<

xsl:template

xsl:template

match=match=""patternpattern" name= "qname"" name= "qname">> : : L'attribut match est un motif (XPath) qui identifie le ou

L'attribut match est un motif (XPath) qui identifie le ou

les nœud(s) source pour lesquels la règle s'applique. Cet

les nœud(s) source pour lesquels la règle s'applique. Cet

attribut

attribut est exigé à moins que l'élément <xsl:template> est exigé à moins que l'élément <xsl:template> ait un attribut name.

ait un attribut name.

Exemple : Exemple : <xsl:template match="personne"> ­ <B><xsl:value­of select="nom"/></B> <xsl:value­of select="prenom"/> </xsl:template>

Si un template contient du texte ou des éléments XML

Si un template contient du texte ou des éléments XML

(autres que des instructions XSL), ces éléments seront

(autres que des instructions XSL), ces éléments seront

écrits sur la sortie.

(24)

LES REGLES DE

LES REGLES DE

TRANSFORMATION

TRANSFORMATION

3/113/11

Les fonctions de création de noeuds

Les fonctions de création de noeuds

:

:

Création d’un élément

Création d’un élément

:

:

<<xsl:elementxsl:element name= name=qnameqname>>

Création d’un attribut :

Création d’un attribut :

<<xsl:attributexsl:attribute name= name=qname> valeurqname> valeur

Création de texte :

Création de texte :

<<xsl:textxsl:text> > textetexte

Création d’instructions de traitement :

Création d’instructions de traitement :

<<xsl:processing-instructionxsl:processing-instruction name= name=qname>qname>

Création de commentaires :

Création de commentaires :

(25)

LES REGLES DE

LES REGLES DE

TRANSFORMATION

TRANSFORMATION

4/114/11

<xsl:value-of>

<xsl:value-of>

et

et

<xsl:copy-of>

<xsl:copy-of>

<xsl:value-of>

<xsl:value-of> crée un nœud de type texte crée un nœud de type texte correspondant au résultat de l’évaluation de l’expression.

correspondant au résultat de l’évaluation de l’expression.

Syntaxe :

<xsl:value-of select="expr"/>

Exemples :

<xsl:value-of select="nom"/>

<xsl:value-of select="montant@devise"/>

<xsl:copy-of>

<xsl:copy-of> fournit un moyen simple pour copier le fournit un moyen simple pour copier le nœud courant

nœud courant. .

Syntaxe :

<xsl:copy select="pattern"/>

Exemple :

(26)

LES REGLES DE

LES REGLES DE

TRANSFORMATION

TRANSFORMATION

5/115/11

Les instructions <xsl:if>

Les instructions <xsl:if>

et <xsl-choose>

et <xsl-choose>

:

:

L’attribut test spécifie une expression. Après

L’attribut test spécifie une expression. Après

évaluation de cette expression, le résultat est

évaluation de cette expression, le résultat est

converti en booléen. Si le résultat est vrai alors le

converti en booléen. Si le résultat est vrai alors le

contenu du modèle est appliqué, sinon rien.

contenu du modèle est appliqué, sinon rien.

Exemples :

Exemples :

<xsl:if test="@devise=‘EURO‘"> <img src="euro.gif"> </xsl:if> <xsl:choose> <xsl:when test="@devise=‘EURO‘"> <img src="euro.gif"> </xsl:when> <xsl:otherwise> <img src="dollar.gif"> </xsl:otherwise> </xsl:choose>

(27)

LES REGLES DE

LES REGLES DE

TRANSFORMATION

TRANSFORMATION

6/116/11

L’instruction de répétition <xsl:for-each>

L’instruction de répétition <xsl:for-each>

:

:

Cet

Cet

élément permet d'appliquer des règles de

élément permet d'appliquer des règles de

style sur chaque nœud identique d'un

style sur chaque nœud identique d'un

template

template

.

.

Le contenu de cette instruction est un modèle.

Le contenu de cette instruction est un modèle.

Exemple :

Exemple :

<xsl:for-each select="personne">

<tr>

<td><xsl:value-of select="nom"/></td>

<td><xsl:value-of select="prenom"/></td>

</tr>

</xsl:for-each>

(28)

LES REGLES DE

LES REGLES DE

TRANSFORMATION

TRANSFORMATION

7/117/11

<xsl:sort>

<xsl:sort>

permet d'effectuer un tri sur des données

permet d'effectuer un tri sur des données

selon des critères spécifiés

selon des critères spécifiés

:

:

Lorsqu'un

élément

<xsl:apply-templates>

ou

Lorsqu'un

élément

<xsl:apply-templates>

ou

<xsl:for-each> a un ou plusieurs fils <xsl:sort>, les

<xsl:for-each> a un ou plusieurs fils <xsl:sort>, les

nœuds sélectionnés sont triés et traités en fonction

nœuds sélectionnés sont triés et traités en fonction

des clés de tri spécifiés. Lorsque des éléments

des clés de tri spécifiés. Lorsque des éléments

xsl:sort sont utilisés dans xsl:for-each, ils doivent

xsl:sort sont utilisés dans xsl:for-each, ils doivent

apparaître en premier.

apparaître en premier.

Exemple :

Exemple :

<xsl:for-each select="personne">

<xsl:sort select="nom" order="ascending"

data-type="text" case-order="lower-first"/>

(29)

LES REGLES DE

LES REGLES DE

TRANSFORMATION

TRANSFORMATION

8/118/11

<xsl:apply-templates>

<xsl:apply-templates> permet d’appliquer un modèle de

permet d’appliquer un modèle de

manière récursive aux fils du nœud courant

manière récursive aux fils du nœud courant

:

:

En l'absence de l'attribut select, l'instruction

En l'absence de l'attribut select, l'instruction

<xsl:apply-templates> traite tous les fils du nœud

<xsl:apply-templates> traite tous les fils du nœud

courant, y compris les nœuds textuels

courant, y compris les nœuds textuels

.

.

Exemple :

Exemple :

<xsl:template match="personne"> <table>

<xsl:apply-templates select="nom">

<xsl:sort select="nom" order="ascending"/> </xsl:apply-templates> </table> </xsl:template> <xsl:template match="nom"> <tr>…</tr> </xsl:template>

(30)

LES REGLES DE

LES REGLES DE

TRANSFORMATION

TRANSFORMATION

9/119/11

Il existe trois façons d’appeler un template

Il existe trois façons d’appeler un template

:

:

Sélectionner les nœuds à traiter à l’aide d’une

Sélectionner les nœuds à traiter à l’aide d’une

requête XPath et leur appliquer les templates

requête XPath et leur appliquer les templates

correspondants :

correspondants :

<xsl:apply-templates select="nom">

Appliquer les templates correspondants à tous les

Appliquer les templates correspondants à tous les

fils du nœud courant :

fils du nœud courant :

<xsl:apply-templates/>

Appeler un template grâce à son nom (à la manière

Appeler un template grâce à son nom (à la manière

d’un sous-programme). Contrairement aux deux

d’un sous-programme). Contrairement aux deux

méthodes précédentes, on ne l’applique pas à un

méthodes précédentes, on ne l’applique pas à un

ensemble de sous-éléments du nœud courant mais à

ensemble de sous-éléments du nœud courant mais à

ce même nœud (pas de changement de contexte).

ce même nœud (pas de changement de contexte).

(31)

LES REGLES DE

LES REGLES DE

TRANSFORMATION

TRANSFORMATION

10/1110/11

Sélection d’une règle

Sélection d’une règle

parmi plusieurs règles

parmi plusieurs règles

candidates

candidates

:

:

Il existe des priorités implicites qui permettent au

Il existe des priorités implicites qui permettent au

processeur de choisir

processeur de choisir

On peut aussi donner explicitement une priorité

On peut aussi donner explicitement une priorité

Lorsque le choix est impossible, le processeur s’arrête.

Lorsque le choix est impossible, le processeur s’arrête.

Priorités implicite

Priorités implicite

:

:

plus c’est spécifique, plus c’est prioritaireplus c’est spécifique, plus c’est prioritaire

Priorité - 0.5 : Les motifs simples (autres qu’un nom

Priorité - 0.5 : Les motifs simples (autres qu’un nom

d’élément ou d’attribut) tels que * par exemple.

d’élément ou d’attribut) tels que * par exemple.

Priorité 0 : Les motifs

Priorité 0 : Les motifs constitués d’une seule étape XPath, constitués d’une seule étape XPath, avec un nom d’élément ou d’attribut et sans prédicat.

avec un nom d’élément ou d’attribut et sans prédicat.

Priorité 0.5 : Tous les autres (prédicats, plusieurs étapes)

(32)

LES REGLES DE

LES REGLES DE

TRANSFORMATION

TRANSFORMATION

11/1111/11

Les modes

Les modes

:

:

Leur raison d’être réside dans le fait qu’un même nœud

Leur raison d’être réside dans le fait qu’un même nœud

peut être traité par plusieurs règles (un chapitre par

peut être traité par plusieurs règles (un chapitre par

exemple peut être traité une fois pour construire l’index

exemple peut être traité une fois pour construire l’index

et une autre fois pour publier le contenu).

et une autre fois pour publier le contenu). Pour distinguer Pour distinguer les deux règles, on les distinguera par mode.

les deux règles, on les distinguera par mode.

<

<xsl:template match=“CHAPITRE" xsl:template match=“CHAPITRE" mode="INDEX"mode="INDEX">>

<a href="#{TITRE}"><a href="#{TITRE}"><xsl:value-of select="TITRE"/></a><xsl:value-of select="TITRE"/></a>

</xsl:template>

</xsl:template>

<xsl:template match="CHAPITRE">

<xsl:template match="CHAPITRE">

<a name="{TITRE}"/><a name="{TITRE}"/>

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

<p><xsl:value-of select=“TEXTE"/></p><p><xsl:value-of select=“TEXTE"/></p>

<br/><br/>

</xsl:template>

(33)

VARIABLES ET

VARIABLES ET

PARAMETRES

PARAMETRES

1/21/2

<xsl:variable>

<xsl:variable>

définit une variable XSLT :

définit une variable XSLT :

Syntaxe de la déclaration :

Syntaxe de la déclaration :

<xsl:variable name="MIN">0</xsl:variable> <xsl:variable name="MAX" select="99"/>

Syntaxe de l’invocation :

Syntaxe de l’invocation :

<xsl:apply-templates select="personne[$MIN]"> <xsl:text name="MAX">Max :{$MAX}</xsl:text>

La portée d’une variable est limitée à l’élément dans

La portée d’une variable est limitée à l’élément dans

lequel elle a été définie.

lequel elle a été définie.

Une fois déclarée, la valeur d’une variable ne peut

Une fois déclarée, la valeur d’une variable ne peut

être modifiée par la suite.

(34)

VARIABLES ET

VARIABLES ET

PARAMETRES

PARAMETRES

2/22/2

<xsl:param>

<xsl:param>

définit un paramètre XSLT:

définit un paramètre XSLT:

Syntaxe de la déclaration :

Syntaxe de la déclaration :

<xsl:param name="MIN">0</xsl:variable> <xsl:param name="MAX" select="99"/>

La principale différence entre une variable et un

La principale différence entre une variable et un

paramètre est qu’un paramètre peut être passé

paramètre est qu’un paramètre peut être passé

comme argument à un template. Cela se fait de la

comme argument à un template. Cela se fait de la

manière suivante :

manière suivante :

<xsl:param name="MIN">0</xsl:param> <xsl:param name="MIN">0</xsl:param> <xsl:call-template name="annee"> <xsl:call-template name="annee">

<xsl:with-param name="MIN" select="$MIN+1"/>

</xsl:call-template> </xsl:call-template>

(35)

FONCTIONS XSLT

FONCTIONS XSLT

1/21/2

XSLT

fournit

un

certain

nombre

de

XSLT

fournit

un

certain

nombre

de

fonctions :

fonctions :

La fonction

La fonction format-numberformat-number convertit son premier convertit son premier

argument en une chaîne utilisant le motif de formatage

argument en une chaîne utilisant le motif de formatage

spécifié par le second argument.

spécifié par le second argument.

Ce motif

Ce motif de formatage est composée d’un préfixe de formatage est composée d’un préfixe optionnel, d’un

optionnel, d’un motif de formatage motif de formatage et d’un suffixe et d’un suffixe

optionnel. Le motif de formatage est une séquence de

optionnel. Le motif de formatage est une séquence de

caractères spéciaux définis dans le tableau ci-dessous :

caractères spéciaux définis dans le tableau ci-dessous :

Exemples Exemples : : <xsl:value-of select="format-number($REMISE,’ ##% ’)"/> <xsl:value-of select="format-number($REMISE,’ ##% ’)"/> <xsl:value-of select="format-number(PRIX,’##,##0.00 FF ’)"/> <xsl:value-of select="format-number(PRIX,’##,##0.00 FF ’)"/>

(36)

FONCTIONS XSLT

FONCTIONS XSLT

2/22/2

Caractères de formattage de la fonction

Caractères de formattage de la fonction

format-number :

(37)

CONCLUSION SUR XSLT

CONCLUSION SUR XSLT

Avantages d’XSLT :

A partir d’un même document XML, on peut

générer plusieurs formats en sortie (HTML, WML…)

Inconvénients d’XSLT :

Bien que la version 1.0 ait été stabilisée, les outils

implémentant XSLT ne respectent pas tous la

recommandation (fonctionnalités manquantes, ajout

de fonctionnalités et d’éléments propriétaires).

XSLT versus CSS :

XSLT peut tout à fait être utilisé de manière

combinée avec les CSS, en particulier quand la cible

est du HTML4 ou du XHTML1.

Références

Documents relatifs

Consigne: observe, découpe, puis colle les étiquettes pour compléter l’algorithme.... Prénom:

• Si dans la feuille de style on prévoit une instruction xsl:template pour traiter un certain élément, ne pas oublier de préciser dans l’instruction ce qui doit se passer avec

Technologie : l’élève développe des aptitudes à utiliser, à gérer et à comprendre les technologies de l’information et de la communication en explorant les langages

Cela est principalement dû à la mutation N501Y dans la RBD qui augmente la liaison du CoV-2 du SRAS aux cellules humaines (Volz et al., 2021). Cependant, des études

Objectif : préparation à la lecture: être capable de discrimination visuelle reconnaître et associer des images identiques..

- Mettre en œuvre les démarches et connaissances du programme d’histoire - Exploiter des documents pour analyser une situation historique. Sujet 1 : la chute du Mur

 Mettre en œuvre les démarches et les connaissances du programme (6 points) Les éléments suivants peuvent être envisagés, sans attendre l’exhaustivité :.. -

Les éléments suivants peuvent être envisagés, sans attendre l’exhaustivité : - George Bush exerce la fonction de Président des États-Unis. - Les éléments explicatifs de