Vous êtes sur la page 1sur 42

UNIVERSITÉ GASTON BERGER DE SAINT-LOUIS

Technologies XML

Awa DIATTARA
awa.diattara@ugb.edu.sn

08/02/2024
Technologies XML
Manipulations de données XML

2
XML et feuilles de style ?

3
XML et feuilles de style
◆Un document XML ne contient que des informations sur la
structure, il ne comporte aucune information relative à la façon
d’afficher les données.

◆Comme les balises XML sont données par l'auteur du document


XML, les navigateurs ne savent pas si une balise comme
<table> décrit un tableau HTML ou une table à manger.

◆Sans aucune information sur la façon d'afficher les données, le


navigateur peut simplement afficher le document tel quel.

◆ Pour régler ce problème, il est possible d’utiliser les feuilles de


style :
o CSS (Cascading Style Sheets)
o XSL (eXtensible Stylesheet Language)
DIATTARA Awa Technologies XML
Formatage avec CSS

5
Formatage avec CSS

◆Formater un document XML avec CSS consiste à lui appliquer


une feuille de style CSS externe via la déclaration:
<?xml-stylesheet ... ?>.

◆Cette feuille de style externe contient des règles dont les


sélecteurs sont les noms des éléments du document XML.

DIATTARA Awa Technologies XML


Formatage avec CSS

◆Exemple : formatage d’un document cd_catalog.xml avec un


fichier CSS cd_catalog.css

DIATTARA Awa Technologies XML


Formatage avec CSS vs XSLT

◆CSS n’a pas été conçu pour formater du XML mais plutôt du
html.

◆Il ne permet pas de :


o réorganiser,
o trier les éléments,
o effectuer des tests,
o prendre des décisions sur les éléments (exemple : masquer
ou afficher)
o …

◆Si aucune transformation n’est nécessaire (pas de


classement par ordre alphabétique, pas de sélection d’une
partie du document,..) vous pouvez utiliser CSS, sinon utilisez
XSL.
DIATTARA Awa Technologies XML
Formatage avec XSL/XSLT

9
La norme XSL

◆La norme XSL comporte trois parties :


o XSLT (eXtensible Stylesheet Language Transformation) un
langage permettant de transformer des documents XML en
d'autres formats tels que PDF, HTML, …

o XSL-FO (eXtensible Stylesheet Language - Formatting


Objets) est un langage permettant de faire de la mise en
page.

o XPath est un langage de requête permettant d’extraire des


informations d’un document XML via l’écriture d’expressions.

DIATTARA Awa Technologies XML


Exemple

Exemple tiré du cours de Magali Coutensin

DIATTARA Awa Technologies XML


Un exemple concret

◆Soit le document xml suivant décrivant une collection de films


(movie).

➢ Exemple de transformation
avec XSLT

DIATTARA Awa Technologies XML


Exemple de transformation avec XSL

◆Un document XML peut être transformé avec XSLT en :


o Un document XHTML ou HTML auquel une feuille de style
peut être associée.
o Générant des propriétés de style avec XSL-FO

DIATTARA Awa Technologies XML


Technologies XML
XSLT

14
XSLT

◆XSLT décrit des règles pour transformer un arbre source


représentant un document XML en un arbre résultat.

◆Cette transformation s’effectue par rapport à des modèles


(templates) décrits dans une feuille de style.

◆La construction de l’arbre résultat permet de réordonner ou de


filtrer le contenu du fichier XML source.

◆Une feuille de style contient un ensemble de règles de modèles.

◆Chaque règle comporte deux parties :


o Un motif (ou nœud cible) dont on cherche la correspondance
avec les nœuds de l’arbre source
o Et un modèle qui sera utilisé pour former l’arbre résultat
DIATTARA Awa Technologies XML
Appel de la feuille de style dans le document XML

◆La feuille de style est enregistrée dans un fichier externe et son


nom comporte l’extension .xsl.

◆L’instruction suivante permet d’indiquer le type de la feuille de


style ainsi que son emplacement depuis le document xml :

DIATTARA Awa Technologies XML


Appel de la feuille de style dans le document XML

◆Exemple :

DIATTARA Awa Technologies XML


Technologies XML
Structure d’une feuille de style XSL

18
Structure d’une feuille de style XSL

◆XSL est une application XML, une feuille de style XSL est donc
un document XML. Il doit alors respecter les règles de syntaxe
de ce format.

◆La structure de base d’un document XSL commence par un


prologue, et tous ses éléments sont placés dans l’élément racine
<xsl:stylesheet>. Celui-ci peut contenir quelques attributs,
notamment une déclaration d’espace de noms ainsi que le
numéro de version.

◆Les éléments XSL sont préfixés par xsl

◆Exemple

DIATTARA Awa Technologies XML


Modèle pour un document XML

◆Une feuille de style peut contenir un ou plusieurs modèles.

◆Dans tous les cas, c'est l’élément racine qui contiendra tous les
modèles (templates).

◆Chaque modèle contient des informations sur l’affichage d’une


branche des éléments du document.

◆S’il n y a qu’un seul modèle, alors il s’applique à partir de la


racine du document XML.

DIATTARA Awa Technologies XML


Modèle pour un document XML

◆Pour appliquer un modèle on utilise l'élément <xsl:template>


avec l'attribut match.
o template : indique le format de transformation
o match : mentionne les éléments qui sont concernés par la
transformation.

◆Chaque modèle comporte deux parties :


o Un motif ou nœud cible indiqué par l’attribut match
o Et une action sur le nœud.

DIATTARA Awa Technologies XML


Modèle pour un document XML

◆Le motif ou nœud cible :


o Est désigné par un chemin dans l’arbre avec des expressions
XPATH.
o Exemples de motifs pouvant être utilisés :

DIATTARA Awa Technologies XML


Modèle pour un document XML

◆Action
o Dans un modèle, on peut retrouver deux types d’éléments :
▪ Des éléments XML bien formés pour représenter les
éléments HTML.
▪ Des éléments XSL.
• Exemples :
- L’élément xsl:value-of permet d’accéder au contenu
des éléments du document XML.
- L’attribut select permet d’indiquer le nom de
l’élément auquel on veut accéder. Ce nom est
donné à partir de l’élément courant (exemple :
select="bibliotheque/livre" pour accéder à livre qui
est un élément fils de bibliothèque)
- L’élément xsl:for-each pour tous les nœuds

DIATTARA Awa Technologies XML


Modèle unique pour un document XML : exemple

◆Exemple : le document demo.xml

DIATTARA Awa Technologies XML


Modèle unique pour un document XML : exemple

◆Exemple : soient les document demo.xml et la feuille de style


associée demo.xsl

demo.xml

demo.xsl

DIATTARA Awa Technologies XML


Modèle unique pour un document XML : exemple

◆Exemple :

DIATTARA Awa Technologies XML


Modèle unique pour un document XML : exemple

Résultat

DIATTARA Awa Technologies XML


Autres possibilités du langage XSLT

◆Le langage XSLT permet aussi de :

o Trier les données XML en ordre croissant ou décroissant

o Filtrer des données XML en fonction de certains critères.

o Choisir des éléments.


o Retenir des éléments par des tests conditionnels.
o …

DIATTARA Awa Technologies XML


Technologies XML
Tri des données

29
Tri des données

◆Par défaut les données sont affichées dans l’ordre où elle ont été
entrées dans le document XML.

◆L’élément <xsl:sort> permet de définir l’ordre dans lequel les


éléments seront affichés.
o Il est toujours utilisé comme sous-élément de
<xsl:apply-templates> (abordé plus loin ) ou de <xsl:for-each>
(doit être placé juste après le for-each).
o L’attribut order = "ascending|descending" permet d’obtenir un
ordre croissant ou décroissant.
o Il est possible de préciser plusieurs clés de tri en utilisant
plusieurs éléments xsl:sort.
▪ Le tri est alors réalisé sur le 1èreclé, puis la seconde.
▪ Exemple : trier une liste par nom, puis par âge,…
DIATTARA Awa Technologies XML
Tri des données

◆Exemple : tri décroissant par nom d’auteur, puis tri croissant par
titre.

… Résultat


DIATTARA Awa Technologies XML
Technologies XML
Filtrage des données

32
Filtrage de données

◆Il est possible de n’extraire qu’une partie du document XML.

◆Pour ce faire on utilise l'attribut :


select = "chemin_d'accès [expression]".

◆L’expression peut comporter des opérateurs, des fonctions, des


chemins d’éléments, etc.

DIATTARA Awa Technologies XML


Filtrage de données

◆Opérateurs de Comparaison
o Les opérateurs disponibles sont : = , !=, <, <=, >, >=
o Exemple : extraire les livres dont le nom de l’auteur est
Christie

◆Fonctions
o Il est possible d’utiliser des fonctions XPath pour filtrer :
▪ starts-with (chaine1, chaine2) : retourne vrai si chaine1 commence par
chaine2.
▪ ends-with (chaine1, chaine2) : retourne vrai si chaine1 se termine par
chaine2.
▪ contains (chaine1, chaine2) : retourne vrai si chaine1 contient chaine2.

o Exemple : afficher les livres dont le titre contient ‘’Le’’

DIATTARA Awa Technologies XML


Technologies XML
Expressions conditionnelles

35
Expressions conditionnelles

◆<xsl:if> … </xsl:if>
o Syntaxe :

◆<xsl:choose> … </xsl:choose>
o Syntaxe

o choose permet d’écrire un if/else.


o Le nombre de <xsl:when> … </xsl:when> varie en fonction du nombre de
conditions à tester
DIATTARA Awa Technologies XML
Expressions conditionnelles

◆Exemples

DIATTARA Awa Technologies XML


Technologies XML
Application de plusieurs modèles

38
Plusieurs modèles

◆Lorsqu’il y a plusieurs modèles, il faut toujours qu’il y en ait un


pour l’affichage de la racine du document (le /).

◆Il est possible d’utiliser <xsl:apply-templates> à la place du


<xsl:for-each> dans un document avec plusieurs modèles.

◆<xsl:apply-templates> permet d'appliquer un modèle à un


élément.

DIATTARA Awa Technologies XML


Plusieurs modèles : exemple

Résultat

DIATTARA Awa Technologies XML


Plusieurs modèles

◆Explications de l'exemple précédent :

o L'exemple précédent comporte 3 modèles.


o Dans le premier modèle le xsl:apply-template indique que
pour chaque élément livre enfant de bibliothèque il faut
appliquer le deuxième modèle (celui pour lequel
l'attribut match a pour valeur livre). Le contenu de ce modèle
est placé dans un tableau.
o Le troisième modèle est appliqué à chaque élément titre. Les
titres sont présentés sous la forme d'une liste. Un tri est
effectué par ordre alphabétique pour les éléments du
troisième modèle.

DIATTARA Awa Technologies XML

Vous aimerez peut-être aussi