0% ont trouvé ce document utile (0 vote)
24 vues47 pages

XMLXSLT

Le document présente une introduction aux technologies du web, en se concentrant sur XML et XSLT. Il aborde l'historique, les principes, les structures des documents XML, ainsi que les outils et applications associés. Les avantages de XML, tels que la préservation de la sémantique et la séparation de la structure et de la présentation, sont également discutés.

Transféré par

bobo
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
24 vues47 pages

XMLXSLT

Le document présente une introduction aux technologies du web, en se concentrant sur XML et XSLT. Il aborde l'historique, les principes, les structures des documents XML, ainsi que les outils et applications associés. Les avantages de XML, tels que la préservation de la sémantique et la séparation de la structure et de la présentation, sont également discutés.

Transféré par

bobo
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

LES TECHNOLOGIES DU WEB

1ère Partie : Introduction au Web


1- Introduction à l'Hypertexte
2- Présentation du protocole HTTP
3- Principes de bases des CGI
4- Présentation du WEB2 (AJAX)

2ème Partie : Présentation de HTML & XHTML


3ème Partie : Présentation de Javascript
4ème Partie : Introduction à PHP
5ème Partie : Introduction à XML & XSLT

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 1 / 93 Jean-Marc PUJOS

Une Introduction à XML

eXtensible Markup Language

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 2 / 93 Jean-Marc PUJOS
Plan du cours

 Introduction
 Historique, principes, exemples
 Comparaison avec HTML, SGML
 Apports de XML
 La structure des documents XML
 Les grammaires
 DTD et schémas XSD
 Les outils XML
 XPath, XPointer, XLink
 Conclusion

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 3 / 93 Jean-Marc PUJOS

Objectifs

XML
Introduction  Appréhender les concepts de base de XML
Structures des  Eléments, attributs et contenu
documents XML  DTD
Grammaires  Schémas
Outils XML  Espaces de noms
Conclusion
 Aperçu de deux recommandations annexes :
 Les chemins de balise avec XPath
 Les feuilles de style avec XSL

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 4 / 93 Jean-Marc PUJOS
Historique

XML
 1986
 SGML (Standard Generalized Markup Language)
Introduction  Norme ISO:8879:1986
Structures des  1987
documents XML
 TEI (Text Encoding Initiative)
Grammaires
 1990
Outils XML
 HTML 1.0 (HyperText Markup Language)
Conclusion
 1997/1998
 XML 1.0 (eXtensible Markup Language)
 2000
 XML 2.0 (eXtensible Markup Language)

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 5 / 93 Jean-Marc PUJOS

Qu'est-ce que c'est ?

XML
Introduction
 Une Recommandation du W3C
Structures des  Un Langage de Balisage Extensible
documents XML
 Un méta-langage
Grammaires
 Permet de définir d’autres langages
Outils XML
 Une Simplification de la Norme SGML
Conclusion
 ISO 8879:1986
 Structure logique des documents électroniques
 HTML est une application de SGML

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 6 / 93 Jean-Marc PUJOS
Qu'est-ce que ça n'est pas ?

XML  Surtout pas une nouvelle version de HTML


Introduction  HTML est un ensemble de balises figé, pour afficher du
Structures des texte avec des liens hypertextes et des images
documents XML
Grammaires  XML ne rend pas HTML obsolète (ni SGML !)
Outils XML  HTML devrait être compatible XML (XHTML)
Conclusion

 XML n’a pas de balise pré-définie et permet aux


créateurs de spécifier leur propre jeu de balise pour
structurer leurs données

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 7 / 93 Jean-Marc PUJOS

Limites de HTML

 Une forte rigidité


HTML permet de visualiser le contenu d’un document, mais
XML de façon rigide
Introduction
 Un manque d’extensibilité
Structures des
documents XML HTML ne propose qu’un nombre limité de balises
Grammaires  Une montée en charge difficile
Outils XML HTML ne permet pas de travailler directement sur les
Conclusion informations contenues dans un document sans un accès au
serveur
 Une interopérabilité limitée
HTML ne fourni aucun moyen de décrire l’information
échangée
 limite les tentatives de réutilisation
HTML ne permet pas de partager des données entre
plusieurs applications

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 8 / 93 Jean-Marc PUJOS
Apports de XML

 Vues multiples des données


XML
XML décrit les données, qui peuvent être affichées de différentes
Introduction
façons sur le poste client
Structures des
documents XML  Traitement des données en local
Grammaires Les utilisateurs peuvent travailler directement sur les
Outils XML informations contenues dans un document sans un accès au
Conclusion serveur
 Une interopérabilité limitée
Des données provenant de plusieurs sources peuvent être
intégrées et manipulées par différentes applications
 Standards ouverts
XML est défini par le W3C (XLink, Xpointer, XPath, XSLT, …)

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 9 / 93 Jean-Marc PUJOS

Pour faire quoi ?

XML
 Modélisation de structures de données
Introduction
Structures des  Publication de données structurées sur le Web
documents XML
(documents mais pas seulement)
Grammaires
Outils XML  Séparer la structure logique de l’affichage
Conclusion  Applications distribuées
 Intégration de données en provenance d’applications
hétéroclites

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 10 / 93 Jean-Marc PUJOS
La famille XML

SGML
XML
Introduction
Structures des
XML
documents XML
Grammaires
Outils XML Xlink
XSL XPointer
Conclusion
XLL

DSSL HyTime
+
TEI

XSL : eXtensible Stylesheet Language HyTime : Hypermedia Time-based


structuring language
DSSL : Document Style Semantics and
Specification Language TEI : Text Encoding Initiative

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 11 / 93 Jean-Marc PUJOS

Technologies liées à XML

 CSS, permet de définir une feuille de style pour XML.


XML  XSL, langage évolué pour la définition de feuilles de style.
Introduction
 Xlink pour ajouter des liens hypertextes à un fichier XML.
Structures des
documents XML
 XPointer pour pointer sur des parties d'un document XML,
Grammaires
un XPointer pointe sur des éléments de données au sein
Outils XML
d'un fichier XML.
Conclusion
 DOM Document Object Model pour manipuler des fichiers
XML (et HTML) à partir d'un langage de programmation.
 namespaces (domaines de noms) pour distinguer les noms
utilisés dans les documents XML.
 XForm pour les formulaires.

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 12 / 93 Jean-Marc PUJOS
Applications XML (1)

 AML Astronomical Markup Language langage décrivant


XML
les différents types de données utilisées en astronomie.
Introduction  MathML Mathematical Markup Language notation
Structures des mathématique sur le web.
documents XML
Grammaires  CML Chemical Markup Language pour la publication
Outils XML Internet des formules chimiques, de molécules, des
Conclusion équations, utilise une visionneuse Java nommée Jumbo
pour visualiser les molécules.
 VML Vector Markup Language langage de balisage
d'information graphique vectorielle.
 CDF Channel Definition Format utilisé par Microsoft pour
décrire le contenu Active Channel.

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 13 / 93 Jean-Marc PUJOS

Applications XML (2)

 PGML Precision Graphics Markup Language décrit les


structures de données graphiques complexes avec les
XML primitives du langage Postscript. Il permet la conversion de
Introduction documents aux formats ps et pdf en XML.
Structures des
documents XML  SMIL Synchronized Multimedia Integration Language pour
Grammaires la création multimédia, il spécifie comment et quand des
Outils XML éléments multimédia peuvent apparaître dans une page
Conclusion web.
 RDF les applications traitant les données RDF peuvent
récupérer les informations (auteur, URL, titre, description) et
créer des bases de données permettant la recherche
d'information.
 WML Wireless Markup Language le langage de balisage
pour l'internet mobile.

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 14 / 93 Jean-Marc PUJOS
XML plus en détail

 Considérez le document HTML suivant :


<html>
XML <head>
<title>Construire une application XML</title>
Introduction </head>
<body>
Structures des <p> [Link]@[Link] <br>
documents tél : 01 40 27 00 00 <br>
XML fax : 01 40 27 00 10 <br>
Département : Informatique</p>
Grammaires </body>
</html>I>
Outils XML
)<BR>
Conclusion
 Facile : une sorte de "fichier de signature"
 Mais : le balisage décrit la manière dont l’information sera
affichée par un browser
 Parce que : aucune sémantique, aucune logique !...

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 15 / 93 Jean-Marc PUJOS

En premier exemple de XML

 Considérez le document XML suivant :


XML
Introduction
Structures des
<?xml version="1.0" encoding="iso-8859-1"?>
documents
XML <!DOCTYPE MEMBRE SYSTEM "[Link]
<!-- Un membre du CNAM -->
Grammaires
<MEMBRE TYPE="IE" ID="M28">
Outils XML <NOM> PUJOS </NOM>
Conclusion <PRENOM> Jean-Marc </PRENOM>
<MEL> [Link]@[Link] </MEL>
<TEL> 01 40 27 00 00 </TEL>
<FAX> 01 40 27 00 10 </FAX>
<EQUIPE LAB="Département">Informatique</EQUIPE>
</MEMBRE>

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 16 / 93 Jean-Marc PUJOS
Les avantages de XML

XML
 Préserve la sémantique et la structure des données :
Introduction
 On pourrait utiliser un "script " pour accéder à l’adresse
Structures des
documents électronique du vingt huitième membre figurant dans un
XML
document XML
Grammaires
==> /DB/MEMBRE[28]/MEL/text()
Outils XML
Conclusion  Accent sur l’organisation des données
 Sépare le contenu, de la structure et de la présentation

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 17 / 93 Jean-Marc PUJOS

Quelques propriétés de XML

XML  Supporte les jeux de caractères Unicode


Introduction
 Attention minuscule ≠ majuscule
Structures des
documents  Les données peuvent contenir presque tous les
XML
caractères
Grammaires
Outils XML  Les espaces en dehors du balisage sont par défaut,
Conclusion préservés
 Les chaînes littérales sont délimitées par des quotes
simples ou doubles

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 18 / 93 Jean-Marc PUJOS
Les éléments et leur contenu

balise ouvrante
XML
Introduction <MEMBRE TYPE="IE" ID="M28">
Structures des <LOGIN ID="pujos"/>
documents <NOM> PUJOS </NOM> élément vide
XML <PRENOM> Jean-Marc </PRENOM>
Grammaires
<MEL> [Link]@[Link] </MEL>

Outils XML
<TEL> 01 40 27 00 00 </TEL> élément
<FAX> 01 40 27 00 10 </FAX>
Conclusion <EQUIPE LAB="Département">Informatique</EQUIPE>
</MEMBRE>

balise fermante contenu textuel

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 19 / 93 Jean-Marc PUJOS

Les éléments et leurs attributs

XML nom d'attribut


Introduction
Structures des
documents
XML
<MEMBRE TYPE="IE" ID="M28">
<LOGIN ID="pujos"/>
Grammaires <NOM> PUJOS </NOM>
Outils XML <PRENOM> Jean-Marc </PRENOM> valeur d'attribut
Conclusion <MEL> [Link]@[Link] </MEL>
<TEL> 01 40 27 00 00 </TEL>
<FAX> 01 40 27 00 10 </FAX>
<EQUIPE LAB="Département">Informatique</EQUIPE>
</MEMBRE>

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 20 / 93 Jean-Marc PUJOS
Autres éléments

 Déclaration XML
<?xml version=“1.0"?>
XML <?xml version="1.0" encoding="UTF-8"
Introduction standalone="yes"?>
Structures des
documents
XML  Commentaires
Grammaires <!-- ceci est un commentaire -->
Outils XML
Conclusion  Section CDATA
<![CDATA[Langue & Dialogue]]>

 Instruction de traitement (pour une application)


<?edit line="wrap"?>

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 21 / 93 Jean-Marc PUJOS

Structure d’un document XML (1)

XML
Un document XML comporte des éléments avec ou sans
Introduction
attributs qui fournissent des méta-informations sur
Structures des
documents l'information ou sur le contenu du document.
XML
Un document XML comporte :
Grammaires
 un prologue qui contient toutes les informations autres
Outils XML que les données ou les éléments,
Conclusion
 l'arbre des éléments avec un élément racine,
 éventuellement des commentaires.

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 22 / 93 Jean-Marc PUJOS
Structure d’un document XML (2)
<?xml version="1.0"?>
<!DOCTYPE bibliotheque [ <!ELEMENT bibliotheque
(livre+)>
<!ELEMENT livre(titre,auteur, ref)>
XML <!ELEMENT titre (#PCDATA)>
Prologue
Introduction <!ELEMENT auteur (#PCDATA)>
<!ELEMENT ref (#PCDATA)>
Structures des ]>
documents <bibliotheque>
XML <livre>
<titre>N ou M</titre> Elément
Grammaires <auteur>Agatha Christie</auteur>
Outils XML <ref>Policier-C-15</ref> racine
</livre>
Conclusion <livre>
<titre>Le chien des Baskerville</titre>
<auteur>Sir Arthur Conan Doyle</auteur>
<ref>Policier-D-3</ref>
</livre>
<livre>
<titre>Dune</titre> Arbre
<auteur>Franck Heckbert</auteur> d’éléments
<ref>Fiction-H-1</ref>
</livre>
</bibliotheque>

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 23 / 93 Jean-Marc PUJOS

Structure d’un document XML (3)

XML
Introduction
Structures des
documents
XML
Grammaires
Outils XML
Conclusion

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 24 / 93 Jean-Marc PUJOS
Besoin d'une ontologie

Comment Comment
XML connaître la partager la
Introduction
structure de structure de mes
Structures des
mes documents avec
documents XML documents ? mes collègues ?
Grammaires
Outils XML
Conclusion

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 25 / 93 Jean-Marc PUJOS

Document Type Definition / SCHEMA

 Définition de type de document


 Contraintes sur les noms des éléments et des attributs
XML
Introduction
 Occurrences des éléments et des attributs
Structures des
 Structure et organisation des éléments
documents XML  Approche SGML traditionnelle mais :
Grammaires  Optionnelle en XML et syntaxe simplifiée
Outils XML  Production valide et distribution bien-formée
Conclusion

 Ce sont les DTD Document Type Definition ou les schémas qui définissent les
éléments et les règles d'utilisation (noms des éléments, attributs possibles pour
un élément, imbrications). Cependant des documents XML peuvent ne pas avoir
de DTD. Si un document a une DTD associée et qu'il se conforme à cette DTD, il
est dit valide. S'il n'a pas de DTD et qu'il suit les règles définies par XML (par
exemple : ses éléments sont correctement imbriqués) il est bien formé.

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 26 / 93 Jean-Marc PUJOS
Document XML bien formé

Un document XML est bien formé (l'analyseur XML peut construire


son arborescence) si :
• il contient une déclaration XML ;
XML
• il contient un ou plusieurs éléments ;
Introduction • il contient un élément racine encapsulant tous les autres éléments et leurs attributs (ex
<HTML> ... </HTML>) ;
Structures des • les éléments non vides ont une balise de début et de fin ;
documents XML • les éléments non vides sont correctement imbriqués (<P> <EM> ... </EM> </P>) ;
Grammaires • les éléments vides ont un / à la fin de la balise avant le > ; <toto></toto> = <toto/>
• les noms des balises ouvrantes et fermantes correspondent ;
Outils XML • un nom d'attribut apparaît uniquement dans la balise ouvrante et une seule fois dans cette
Conclusion balise ;
• les valeurs des attributs sont entre guillemets ou apostrophes ;
• la valeur des attributs n'appelle pas d'entités externes directement ou indirectement ;
• les caractères réservés sont remplacés par des références d'entités (par ex. &lt; pour <) ;
• toutes les références à des entités non binaires doivent commencer par & et finir par ;
• s'il n'y a pas de DTD, les seules entités utilisées sont celles réservées de XML &amp;
&lt; &gt; &apos; &quot; ;
• s'il y a une DTD toutes les entités non réservées utilisées sont déclarées dans la DTD.

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 27 / 93 Jean-Marc PUJOS

Arborescence XML

XML Une structure XML représente


Introduction
un arbre hiérarchique
Structures des
documents XML
Grammaires
Outils XML
Conclusion MEMBRE
TYPE="IE" ID="M28"

LOGIN ... EQUIPE


NOM
id="pujos" LAB="Département"

PUJOS Informatique

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 28 / 93 Jean-Marc PUJOS
Document XML valide

Un document est valide s'il :


XML
 est bien formé,
Introduction
 fait référence à une DTD ou à un schéma,
Structures des
documents XML  se conforme à la DTD ou au schéma.
Grammaires
Outils XML Les DTD (Document Type Definition) définissent les
Conclusion éléments et les règles d'utilisation : noms des éléments,
attributs possibles pour un élément, imbrications (HTML
4.0 est une DTD de SGML).
Le document ne contient aucune information
concernant l'affichage, c'est sa feuille de style qui
définira la présentation sur un média.

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 29 / 93 Jean-Marc PUJOS

Schéma XML

 Limite des DTD


XML  description limité des documents structures
Introduction  pas de typage des PCDATA
Structures des  Limite
documents XML  exprimé dans un langage autre XML
Grammaires  autre parseur, ...
Outils XML  Objectif de XML Schéma
Conclusion  Amélioration du typage : xsi
 données obéissant à une expression régulière
 Amélioration de la structure : xsd
 nombre borné d’éléments inclus, ...
 Remplace de plus en plus la DTD car
exprimé en syntaxe XML et extensible

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 30 / 93 Jean-Marc PUJOS
Les 2 parties de XML Schema

XML  Structure (Partie 1)


Introduction  définit la construction de types (dit archetype)
Structures des  simples ou complexes
documents XML  nommés ou anonymes
Grammaires  mécanismes d’héritage
Outils XML  support pour les namespaces
Conclusion  validation de documents utilisant plusieurs namespaces
 Datatype (Partie 2)
 définit un riche ensemble de types prédéfinies
 incluant celui des langages de SGBD, ...

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 31 / 93 Jean-Marc PUJOS

Exemple de schéma XML

Soit le fichier XML :


<?xml version="1.0" encoding="utf-8" ?>
XML <CATALOGUE>
Introduction <PRODUIT NOM="T-shirt">
Structures des <SPECIFICATION TAILLE="XL"
documents XML COULEUR="BLANC"/>
<PRIX GROS="5.00" DETAIL="12.00" TVA="2.35"
Grammaires
EXPED="3.00"/>Euro</PRIX>
Outils XML <NOTES>Collection d'été</NOTES>
Conclusion </PRODUIT>
<PRODUIT NOM="Chemise">
<SPECIFICATION TAILLE="38"
COULEUR="BLEUE"/>
<PRIX GROS="11.00" DETAIL="35.00" TVA="6.86"
EXPED="8.00">Euro</PRIX>
<NOTES> </NOTES>
</PRODUIT>
(autres produits)
</CATALOGUE>

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 32 / 93 Jean-Marc PUJOS
Exemple de schéma XML (2)

<?xml version="1.0" encoding="utf-8" ?>


<catalogue xmlns:xsi="[Link]
si:schemaLocation="[Link]
XML … La suite sans changement.
Introduction
Structures des <?xml version="1.0" encoding="utf-8" ?>
documents XML <xsd:schema targetNamespace="[Link]
Grammaires /MonExemple"
Outils XML "xmlns:xsd="[Link]
<xsd:element name="produit">
Conclusion
<xsd:complexType>
<xsd:element name="specification">
<xsd:complexType>
<xsd:all>
<xsd:attribut name="taille" type="xsd:string" />
<xsd:attribut name="couleur" type="xsd:string" />
</xsd:all>
</xsd:complexType>
</xsd:element>

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 33 / 93 Jean-Marc PUJOS

Exemple de schéma XML (3)


XML
<xsd:element name="prix">
Introduction <xsd:complexType>
Structures des <xsd:all>
documents XML
<xsd:attribut name="gros" type="xsd:decimal" />
Grammaires <xsd:attribut name="detail" type="xsd:decimal" />
Outils XML <xsd:attribut name="tva" type="xsd:decimal" />
Conclusion </xsd:all>
</xsd:complexType>
</xsd:element>

<xsd:element name="notes" minOccurs="0" type="xsd:string" />


</xsd:complexType>
</xsd:element>
</xsd:schema>

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 34 / 93 Jean-Marc PUJOS
Les Espaces de Noms XML

 Eviter les conflits de noms d'élément et d'attribut


XML  Composition de fragments XML (BF)
Introduction  Mixer, ré-utiliser plusieurs vocabulaires, schémas
Structures des  Collection d’identificateurs (élément ou attribut) identifié par
documents XML
un préfixe et une URL
Grammaires
Outils XML
 Déclaration :
Conclusion
<DOC xmlns:mml="[Link]
xmlns="[Link]
<P>blah blah :
<mml:fn mml:definitionURL="[Link]">

</mml:fn> re blah blah</P>
</DOC>

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 35 / 93 Jean-Marc PUJOS

Espaces de Noms Réservés

Le préfixe xml: est réservé pour certains attributs :


XML
<title xml:space="default">...</title>
Introduction
<p xml:lang="FR">…</p>
Structures des
documents XML  On ne le déclare pas !…
Grammaires
Outils XML L'attribut xml:lang a en plus la caractéristique d'être
Conclusion hérité. C'est à dire que tous les éléments (descendants)
qui se trouvent sous un élément qui porte cette attribut
hérite de sa valeur.

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 36 / 93 Jean-Marc PUJOS
XPath (1)

XML Path Langage 1.0 REC 29012000


XML  Langage permettant l'adressage de partie de documents XML
Introduction  Spécification commune pour les pointeurs XML (XPointer) et
Structures des le langage de transformation de XSL (XSLT)
documents XML  Sélection, extraction de fragments XML
Grammaires  Noms d'éléments, noms/valeurs d'attributs
Outils XML
Conclusion
Les XPath résultent d'un vrai consensus entre le groupe de
travail "feuilles de style" et le groupe de travail "liens et
pointers". On dispose ainsi d'une syntaxe commune et d'une
sémantique partagée.

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 37 / 93 Jean-Marc PUJOS

XPath (2)

 Recommandation du W3C
XML  Expression de désignation d’un noeud dans un document
Introduction XML
Structures des  syntaxe simple et non ambiguë
documents XML
 type usuels: chaînes, nombres, booléens, variables, fonctions
Grammaires
 spécifie une bibliothèque de fonctions extensible
Outils XML  position(), …
Conclusion

 Exemples

Utilisé par XPointer et XSLT

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 38 / 93 Jean-Marc PUJOS
L'Adressage avec les XPath

Adressage absolu
XML  A partir d'une URI/URL
Introduction  id(M28), here(), root()
Structures des
documents XML
Adressage relatif en suivant des axes
Grammaires
 ancestor, child
Outils XML  descendant
Conclusion  psibling, fsibling

Il s’agit d'un véritable langage de sélection de


fragments de document XML. La maîtrise de ce
langage est primordiale pour la conception de
feuilles de style XSL.

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 39 / 93 Jean-Marc PUJOS

Expressions XPath (1)

/ parenté
XML section/paragraphe désigne les <paragraphe> fils
Introduction
des <section> de l’élément courant.
Structures des // parenté étendu aux aïeux
documents XML . noeud courant
Grammaires
.. père du noeud courant
Outils XML
| alternative
Conclusion
@zzz attribut zzz du noeud courant
text() noeuds CDATA fils du noeud courant
comment() noeuds commentaires fils du noeud courant
pi() instructions de traitement du noeud courant
id() sélection sur identifiant ou liste d’identifiants

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 40 / 93 Jean-Marc PUJOS
Expressions XPath (2)

 Condition de sélection [ ]
 section[@titre] <section> qui ont un attribut titre
XML  section[paragraphe] <section> qui ont au moins un fils
Introduction <paragraphe>
Structures des  section[@titre=‘introduction’] <section> qui ont un attribut titre
documents XML
dont la valeur est "Introduction"
Grammaires
 section[paragraphe=‘introduction’] <section> qui ont au moins
Outils XML un fils <paragraphe> dont la valeur est "Introduction«
Conclusion

 Positionnement
 position()=5 vrai si l’élément est à la 5ème position
 first-of-any() vrai si l’élément est le premier fils
 last-of-any() vrai si l’élément est le dernier fils
 first-of-type() vrai si l’élément est le premier fils de son type
 last-of-type() vrai si l’élément est le dernier fils de son type

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 41 / 93 Jean-Marc PUJOS

XPath - Exemples

<DB>
<MEMBRE TYPE="IE" ID="M28">
XML <LOGIN ID="pujos"/>
Introduction ...
Structures des <EQUIPE LAB="Département">Informatique</EQUIPE>
documents XML </MEMBRE>
Grammaires <MEMBRE TYPE="CR" ID="M14">
<LOGIN ID="dupont"/>
Outils XML
...
Conclusion
</MEMBRE>
</DB>

/ ou /DB /DB/MEMBRE /DB/MEMBRE[2]


/DB/MEMBRE[@ID=‘M28’]/EQUIPE[1]/text()
/DB/MEMBRE/LOGIN[@ID=‘dupont’]/../@ID

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 42 / 93 Jean-Marc PUJOS
eXtensible Linking Language - XLL

 Limite des références (URL) en HTML


XML
 ne référence qu’un seul document
Introduction
 granularité grosse de référence : le document
Structures des
documents XML
 accèdes au 3ème paragraphe qui suit le chapitre nommé
"Introduction"
Grammaires
 pas de relations entre les documents.
Outils XML
 référence à sens unique.
Conclusion

 Les 2 parties de XLL


 Xlink : XML Linking Specification
 XPointer : XML Extended Pointer Specification

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 43 / 93 Jean-Marc PUJOS

Xpointer

XML XML Extended Pointer Specification :


Introduction
 adresse des objets internes à la structure du document
Structures des
documents XML et ne possédant pas d’identifiant
Grammaires  Utilise les expressions Xpath
Outils XML  Exemple :
Conclusion
 désigne le 6ème objet inclus dans le 2ème objet inclus dans
l’élément ayant un ID égale « faq-hypertext ».
 A lire
 Recommandation XPointer du W3C et le chapitre 17 de « XML
Bible »

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 44 / 93 Jean-Marc PUJOS
XLink

XML Linking Specification


XML Spécifie les hyperliens dans un document XML :
Introduction
 Liens simples, type <A href="...">
Structures des
documents XML  Liens étendus : multisource, multicible, externes
Grammaires  multi-direction, multi-cible, indépendance à la localisation
Outils XML (en cas de changement de place du document), transclusion
Conclusion (document inclus), liens typés (attributs de lien).
A lire
 Recommandation XLink du W3C et le chapitre 16 de
« XML Bible »

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 45 / 93 Jean-Marc PUJOS

XLink - Exemples

 Un lien simple :

XML
 Un lien étendu :
Introduction
Structures des
documents XML
Grammaires
Outils XML
Conclusion

 Annotations :

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 46 / 93 Jean-Marc PUJOS
XML - Conclusion

XML
Introduction  Étape révolutionnaire pour le Web
Structures des  Consensus International (W3C)
documents XML
 Cœxiste avec HTML et SGML
Grammaires
 Ne supplante ni l’un ni l’autre
Outils XML
Conclusion
 Ouvre le Web à l’échange de données structurées et
leur traitement

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 47 / 93 Jean-Marc PUJOS

Une Introduction à XSLT

eXtensible Stylesheet
Language Transformation

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 48 / 93 Jean-Marc PUJOS
Plan du cours

 Introduction
 Les Fondamentaux
 Structure d’une feuille XSL
 Principes de base
 Etude détaillée
 gabarits, éléments, attributs, templates
 Programmation XSLT
 tests, boucles, fonctions
 Exemples
 Conclusion

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 49 / 93 Jean-Marc PUJOS

Pourquoi faire ?

XSL
Introduction
Afficher des documents XML
Fondamentaux
Structures XSL
 Un document XML ne fournit pas d'information sur sa
Principes
présentation
Éléments
 Affichage personnalisé
Programmation
XSLT ➜ Feuilles de style :
Exemples  Casdading Style Sheets (CSS 1 et 2)
Conclusion
 Extensible Style Language (XSL)
 Transformation de documents XML

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 50 / 93 Jean-Marc PUJOS
eXtensible Style Language

 Décrit la manière dont les


documents XML seront affichés,
XSL
imprimés ou ... prononcés
Introduction
Fondamentaux
Structures XSL
Principes
Éléments 80

60

40

20

XSL
0
1st Qtr 2nd Qtr

Programmation
XSLT XML +
Exemples
Conclusion

 Indépendant du média de sortie

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 51 / 93 Jean-Marc PUJOS

Aspects fondamentaux de XSL

 XSL = Transformation + Propriétés d'Affichage


 XSLT : Transformation de documents XML
XSL
 Transformer un doc XML en un autre doc XML
Introduction
 Par défaut : production de documents HTML (Bien formés !)
Fondamentaux
 XSL FO : Formatage des données/objets XML
Structures XSL
 Les Formatting Objects
Principes
 Indépendant (Word/RTF, PS, PDF, MIF, …)
Éléments
Programmation
 XSL comprend XSLT = XSL Transformations
XSLT
 XSLT Version 1.0 est une recommandation W3C depuis le
Exemples
16 novembre 1999
Conclusion
 XSLT utilise XPath (XML Path Language), aussi rec. W3C
depuis le 16 novembre 1999

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 52 / 93 Jean-Marc PUJOS
Transformation XSLT

XSL
Introduction Feuille XSL
Fondamentaux
Structures XSL
Principes Processeur Instance HTML
Éléments XSLT (XHTML)
Programmation
Instance XML
XSLT
Exemples
Conclusion

SORTANTS
ENTRANTS
ou
EXTRANTS
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 53 / 93 Jean-Marc PUJOS

Dans Internet Explorer

XSL
Introduction  Les navigateurs actuels incluent un processeur
Fondamentaux XSLT
Structures XSL
Principes
 Une feuille de styles XSL a priorité sur une
Éléments
feuille CSS
Programmation
XSLT
 « Afficher source » affiche le XML
Exemples  « View XSL output » (du menu contextuel)
Conclusion
affiche l'extrant de la transformation XSLT

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 54 / 93 Jean-Marc PUJOS
Structure d’une feuille XSL

1- Prologue (exemple):
XSL
<?xml version="1.0" encoding="iso-8859-1"?>
Introduction
<xsl:stylesheet version="1.0"
Fondamentaux xmlns:xsl="[Link]
Structures XSL
Principes
Éléments 2- Corps (suite de gabarits ou templates):
Programmation <xsl:template match="exemple">
XSLT
...
Exemples
</xsl:template>
Conclusion
...

3- Epilogue:
</xsl:stylesheet>

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 55 / 93 Jean-Marc PUJOS

Exemple de structure XSL


<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="[Link]
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
XSL <html>
<head> <title>Ma bibliotheque</title> </head>
Prologue
Introduction <body>
<H2> Ma Bibliotheque</H2>
Fondamentaux
<table border="1">
Structures XSL <tr bgcolor="#FFFF00">
Principes
<td>Titre</td> <td>Auteur</td> <td>Ref.</td>
</tr>
Corps
Éléments <xsl:for-each select="bibliotheque/livre">
<tr>
Programmation <td><div style="font-style:italic; padding-right:3pt"> <xsl:value-of
XSLT select="titre"/></div> </td>
<td><div style="color:red; padding-right:3pt"> <xsl:value-of select="auteur"/></div>
Exemples </td>
Conclusion <td><div style="color:blue"> <xsl:value-of select="ref"/></div> </td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Epilogue
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 56 / 93 Jean-Marc PUJOS
Principes de base

XSL  Une feuille de styles XSLT est un document XML


Introduction bien formé mais non valide
Fondamentaux
Structures XSL  Une transformation XSLT est une application non
Principes validante; elle est applicable à toute instance bien
Éléments formée, valide ou non
Programmation
XSLT  Une instruction de traitement:
Exemples <?xml-stylesheet type="text/xsl"
Conclusion href="[Link]" ?>
dans le prologue de l'instance fait le lien avec la
feuille de styles

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 57 / 93 Jean-Marc PUJOS

Approche déclarative

 Suite de règles associées aux propriétés d'affichage qui


spécifie à la fois le "motif" (pattern) et l'action de la règle
XSL  pattern : identifie les éléments du document source sur
Introduction lesquels vont s'appliquer la règle
Fondamentaux
 template : spécifie ce qu'on ajoute à l'arbre résultat lorsque la
Structures XSL règle est activée
Principes
 Pas nécessaire d'utiliser les FO pour le résultat
Éléments
Programmation  Les éléments HTML sont placés directement dans la feuille
XSLT de style
Exemples
 Utilisation importante des Espaces de Noms XML
Conclusion
 Attention ! HTML n'est pas (encore) compatible XML
 Les éléments vides XML (<br/>) peuvent poser des
problèmes avec certains navigateurs

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 58 / 93 Jean-Marc PUJOS
Exemple simple de règle

pattern (XPath)
XSL
Introduction
Fondamentaux <xsl:template match='/DB/MEMBRE/NOM'>
Structures XSL <B>
Principes <xsl:apply-templates/>
Éléments </B>
Programmation </xsl:template>
XSLT
Exemples Le contenu de <B>
Conclusion utilise les résultats
subordonnés
L’instruction HTML

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 59 / 93 Jean-Marc PUJOS

Notion de base : gabarit

 Gabarit = template = règle


XSL
Introduction
 Chaque gabarit indique au processeur XSLT comment
Fondamentaux
traiter certains éléments des instances dans certains
Structures XSL
contextes
Principes  Exemple:
Éléments
Programmation
XSLT
Exemples
Conclusion
<xsl:template match="général">
<p><b>Accessible au public</b></p>
</xsl:template>

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 60 / 93 Jean-Marc PUJOS
Cas simple

match="identificateur-générique"
XSL
Introduction
 S'applique à tous les éléments ayant cet identificateur
générique
Fondamentaux
Structures XSL  Exemple:
Principes
Éléments
Programmation
XSLT <xsl:template match="auteur">
Exemples <p><b>Auteur: </b>
Conclusion <xsl:value-of select="." /></p>
</xsl:template>

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 61 / 93 Jean-Marc PUJOS

Exemple simple de select et de HTML

<xsl:template match='/'>
XSL <html>
Introduction <head>
Fondamentaux
<title>
Structures XSL <xsl:apply-templates
Principes select='/DB/MEMBRE/NOM'/>
Éléments </title>
Programmation </head>
XSLT <body>
Exemples <xsl:apply-templates/>
Conclusion </body>
</html>
</xsl:template>

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 62 / 93 Jean-Marc PUJOS
Pseudo-élément racine

Le processeur XSLT considère que


XSL l’élément de plus haut niveau de
Introduction
l’instance a un parent, désigné par "/":
Fondamentaux
Structures XSL
Principes <?xml version = "1.0" ?>
Éléments
Programmation
<top> /
XSLT
Exemples
<a/><b/>
Conclusion </top>
top

a b
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 63 / 93 Jean-Marc PUJOS

Action du processeur XSLT

 Regarde si (au moins) un des gabarits s'applique au


XSL
pseudo-élément "/"
Introduction  Si oui, applique (ou exécute) ce gabarit
Fondamentaux  l'extrant de cette exécution de gabarit devient l'extrant de la
Structures XSL
transformation XSLT
Principes  [Sinon, applique un gabarit fixe prédéfini]
Éléments
Programmation
XSLT
Si on veut que d'autres gabarits soient exécutés, il
Exemples
faut qu'ils soient appelés, directement ou
Conclusion
indirectement, par le gabarit appliqué à "/"

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 64 / 93 Jean-Marc PUJOS
Extrant d'une exécution de gabarit

« L'extrant d'une exécution de gabarit est une chaîne de


XSL caractères égale au contenu du gabarit, dans lequel les
"instructions XSLT" (s'il y en a) sont remplacées par
Introduction
l'extrant de leur exécution. »
Fondamentaux
Structures XSL
Que peut contenir un gabarit :
Principes
 Des fragments HTML
Éléments
 Ces fragments se retrouvent tels quels dans
Programmation
XSLT
l'extrant du gabarit
Exemples
 Des instructions XSLT:
 <xsl:apply-templates />
Conclusion
 <xsl:apply-templates select="expression" />
 <xsl:value-of select="expression" />
 etc.

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 65 / 93 Jean-Marc PUJOS

Gabarits prédéfinis

Des gabarits fixes prédéfinis existent pour:


 Le pseudo-élément racine "/"
XSL
 Les éléments XML
Introduction
 Les attributs
Fondamentaux  Les nœuds de texte (#PCDATA ou String)
Structures XSL  etc.
Principes
Éléments  Pour "/" et éléments, le gabarit prédéfini est:
Programmation
<xsl:template>
XSLT <xsl:apply-templates />
</xsl:template>
Exemples
Conclusion
 Pour noeuds textuels:
<xsl:template>
<xsl:value-of select="." />
</xsl:template>

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 66 / 93 Jean-Marc PUJOS
Priorité des gabarits

XSL
Introduction
 Problème se pose lorsque plus d'un gabarit de
Fondamentaux
la feuille de styles serait applicable à un même
Structures XSL
Principes
noeud
Éléments  Règles de priorité
Programmation
XSLT
 Si même priorité: dernier gabarit de la feuille
Exemples est appliqué
Conclusion

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 67 / 93 Jean-Marc PUJOS

Elément

 Un élément non-XSLT qui apparaît dans un template


XSL
crée un élément de même nom et avec les mêmes
attributs (sauf attributs XSLT) dans l'arbre résultat
Introduction
Fondamentaux  On peut aussi créer des éléments dont le nom est
Structures XSL engendré à l'exécution, avec l'instruction
Principes <xsl:element name="{attr-template}"
Éléments use-attribute-sets="qnames">
<!-- Content: template -->
Programmation
XSLT </xsl:element>
Exemples
Conclusion  name : une expression XPath entre {} qui retourne
une chaîne de caractères qui est le nom de
l'élément à produire dans l'arbre résultat
 use-attribute-sets : noms des ensembles d'attributs à
engendrer pour l'élément

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 68 / 93 Jean-Marc PUJOS
Élément courant

XSL  "L'élément courant" dans un gabarit est l'élément pour


Introduction lequel le gabarit est exécuté
Fondamentaux  Exemple, avec:
Structures XSL
Principes <xsl:template match="auteur">
Éléments
Programmation
 l'élément courant est un des éléments "auteur" de
XSLT l'instance XML traitée
Exemples
Conclusion

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 69 / 93 Jean-Marc PUJOS

Attribut

 On peut aussi créer des attributs dont le nom et la


XSL
valeur sont engendrés à l'exécution, avec
Introduction
Fondamentaux
l'instruction
Structures XSL
<xsl:attribute name="{attr-template}">
Principes
<!-- Attribute value: template -->
</xsl:attribute>
Éléments
Programmation
XSLT  name : une expression XPath entre {} qui
Exemples retourne une chaîne de caractères qui est
Conclusion le nom de l'attribut à produire dans
l'arbre résultat
 Le contenu de l'élément xsl:attribute est un template
qui engendre la valeur de l'attribut

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 70 / 93 Jean-Marc PUJOS
Production de texte

 On peut engendrer un noeud texte dynamiquement dans


l'arbre résultat avec l'instruction
XSL <xsl:value-of select="string-expression"/>
Introduction
 select : expression XPath de type chaîne qui produit la
Fondamentaux valeur du noeud texte
Structures XSL
Exemple : élément source <personne prenom=" Pierre"
Principes nom="Paul"/>
Éléments <xsl:template match="personne">
Programmation <p>
XSLT <xsl:value-of select="@prenom"/>
Exemples <xsl:text> </xsl:text>
<xsl:value-of select="@nom"/>
Conclusion
</p>
</xsl:template>
 Résultat : <p>Pierre Paul</p>

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 71 / 93 Jean-Marc PUJOS

Expression

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


XSL
Introduction
 Extrait une chaîne de caractères du document,
Fondamentaux
habituellement quelque part dans l'élément courant
Structures XSL
 select="." retourne la valeur textuelle de l'élément
Principes
courant
Éléments
 select="@attrib" retourne la valeur d'un attribut de
Programmation
XSLT l'élément courant
Exemples  select="IDGen" retourne la valeur textuelle d'un (ou
Conclusion plusieurs) sous-éléments de l'élément courant

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 72 / 93 Jean-Marc PUJOS
Templates (1)

XSL
<xsl:apply-templates />
Introduction
Fondamentaux
Structures XSL  Cause le traitement successif de chacun des "noeuds
Principes enfants" de l'élément courant par le gabarit approprié
Éléments  Un noeud enfant est soit un sous-élément, soit un
Programmation noeud #PCDATA ou «string» (texte)
XSLT
 L'ordre des enfants est respecté
Exemples
Conclusion  L'extrant de l'instruction est la concaténation des
extrants résultant du traitement des enfants

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 73 / 93 Jean-Marc PUJOS

Templates (2)

<xsl:apply-templates select="expression"/>
XSL
Introduction
 Fait traiter certains enfants spécifiques (répondant au
Fondamentaux critère de sélection)
Structures XSL
 Cas simple: expression = identif. générique
Principes
 L'extrant de l'instruction est la concaténation des
Éléments
extrants résultant du traitement des enfants
Programmation
XSLT sélectionnés
Exemples  Permet de faire du "réarrangement" de sous-éléments
Conclusion

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 74 / 93 Jean-Marc PUJOS
Bien-formé

XSL
 La feuille XSLT elle-même doit être bien-formée
Introduction  Donc, chaque gabarit doit être bien formé
Fondamentaux
 Donc, tout élément HTML ouvert dans un gabarit
Structures XSL
doit être fermé dans le même gabarit
Principes
Éléments
Programmation
XSLT
Exemples
Conclusion D’ou la recommandation de
bien écrire le code XHTML

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 75 / 93 Jean-Marc PUJOS

Notions avancées

XSL  Il est possible de trier (xsl:sort)


Introduction
 Les valeurs de match= et select= sont
Fondamentaux
des expressions XPath
Structures XSL
Principes  En fait, XSLT est un langage de
Éléments programmation complet
Programmation
XSLT
Exemples
Conclusion
DEMONSTRATION

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 76 / 93 Jean-Marc PUJOS
Programmer avec XSLT

XSL
Introduction
XSLT offre de nombreuses fonctions dignes d'un
Fondamentaux langage de haut-niveau : variables, paramètres,
Structures XSL
Principes
tests, boucles, fonctions, inclusion d'une feuille de
Éléments style XSLT dans une autre, chargement de
Programmation
XSLT plusieurs documents XML dans une même feuille
Exemples
de style XSLT, recherche de balises XML selon
Conclusion
de nombreux critères, etc.

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 77 / 93 Jean-Marc PUJOS

Fonctions XSLT

XSL  xsl:for-each  "Boucle"


Introduction  xsl:if  Si conditionnel
Fondamentaux
Structures XSL  xsl:choose, xsl:when et xsl:otherwise
Principes  Suite de codes conditionnels : instruction
Éléments switch en C
Programmation
XSLT  xsl:template, xsl:call-template, xsl:param et
Exemples xsl:with-param  Déclarer et appler une
Conclusion fonction, avec ou sans paramètre(s)
 xsl:number  Numérotation/compteur

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 78 / 93 Jean-Marc PUJOS
Boucles xsl:for-each

La fonction xsl:for-each va prendre tous les noeuds d'une


requête XPATH, et va leur appliquer un traitement.
XSL
Exemple :
Introduction
<liste>
Fondamentaux
<invite>Moi</invite>
Structures XSL <invite>Amélie</invite>
Le fichier
Principes source <invite>Marie</invite>
Éléments <invite>Jéméry</invite>
Programmation </liste>
XSLT
Exemples <ul>
Conclusion <xsl:for-each>
Le code XSLT <li>
qui va générer le <xsl:apply-templates select="." />
code HTML
</li>
</for-each>
</ul>

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 79 / 93 Jean-Marc PUJOS

Boucles xsl:if

XSL
L'instruction xsl:if permet d'exécuter ou non certaines parties
Introduction
du code.
Fondamentaux
Structures XSL
Exemple d'utilisation de la l'instruction if :
Principes
Éléments
Programmation
<xsl:if test="nom == 'Paul'">
XSLT <xsl:text>Le spécialiste XML</xsl:text>
Exemples </xsl:if>
Conclusion

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 80 / 93 Jean-Marc PUJOS
Boucles xsl:choose

La fonction xsl:choose permet d'exécuter différents codes selon


différentes conditions.
XSL
Introduction Exemple :
Fondamentaux
Structures XSL <xsl:choose>
Principes <xsl:when test="nom = 'Paul'">
Éléments <xsl:text>Le spécialiste XML</xsl:text>
Programmation </xsl:when>
XSLT <xsl:when test="nom = 'Pierre'">
Exemples <xsl:text>L’infographiste</xsl:text>
</xsl:when>
Conclusion
<xsl:when test="nom = 'Pierre'">
<xsl:text>L’ergonome</xsl:text>
</xsl:when>
</xsl:choose>

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 81 / 93 Jean-Marc PUJOS

Fonction sans paramètre

 Pour déclarer une fonction, on utilise la fonction xsl:template.


XSL
Exemple :
Introduction
Fondamentaux <xsl:template name="hello_world">
Structures XSL <xsl:text>Hello World !</xsl:text>
Principes </xsl:template>
Éléments
Programmation
XSLT
Exemples
 Pour appeler la fonction, on utilise xsl:call-template :
Conclusion

<xsl:call-template name="hello_world" />

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 82 / 93 Jean-Marc PUJOS
Fonction avec paramètres (1)

 Pour déclarer des paramètres, on utilise xsl:param

XSL Exemple :
Introduction
Fondamentaux <xsl:template name="affiche_somme">
Structures XSL <xsl:param name="a" select="0" />
Principes
<xsl:param name="b" select="0" />
Éléments
Programmation
<xsl:text>a = </xsl:text>
XSLT <xsl:value-of select="$a" />
Exemples <xsl:text>, b = </xsl:text>
Conclusion <xsl:value-of select="$b" />
<xsl:text>, et a+b = </xsl:text>
<xsl:value-of select="$a + $b" />
<xsl:text>.</xsl:text>
</xsl:template>

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 83 / 93 Jean-Marc PUJOS

Fonction avec paramètres (2)

 Lorsqu'on écrit <xsl:param name="a" select="0" /> : 0


est la valeur par défaut du paramètre a
XSL
Introduction
Appel de la fonction avec xsl:call-template :
Fondamentaux
Structures XSL <xsl:call-template name="affiche_somme">
Principes <xsl:with-param name="a" select="173" />
Éléments
<xsl:with-param name="b">9001</xsl:with-
Programmation
param>
XSLT </xsl:call-template>
Exemples
Conclusion
 Affichage obtenu :

a = 173, b = 9001, et a+b = 9174.

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 84 / 93 Jean-Marc PUJOS
Autres caractéristiques

XSLT offre de nombreuses autres possibilités :


 Contrôle du format de sortie (texte, HTML, XML) : élément
XSL xsl:output
Introduction
 Numérotation : instruction xsl:number
Fondamentaux
 Tri : élément xsl:sort
Structures XSL
Principes  Variables et paramètres : éléments xsl:variable,
Éléments
xsl:param
Programmation  Accès à plusieurs documents source : fonction document
XSLT
 Références croisées implicites : élément xsl:key, fonction key
Exemples
Conclusion  Messages : instruction xsl:message
 Contrôle des espaces : éléments xsl:strip-space et
xsl:preserve-space

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 85 / 93 Jean-Marc PUJOS

Exemple (1)

XSL
Document XML source ([Link]) :
Introduction
Fondamentaux
<?xml version="1.0" encoding="ISO-8859-1"?>
Structures XSL
<liste_nombres>
Principes
<nombre valeur="10">dix</nombre>
Éléments
<nombre valeur="0">zéro</nombre>
Programmation
XSLT <nombre valeur="33">trente trois</nombre>
Exemples
<nombre valeur="6">le premier nombre
Conclusion
parfait</nombre>
</liste_nombres>

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 86 / 93 Jean-Marc PUJOS
Exemple (2)
<?xml version=« 2.0"?>
Feuille de <xsl:stylesheet version="1.0"
xmlns:xsl="[Link]
style XSLT <xsl:output method="html" indent="yes"/>
XSL ([Link]) : <xsl:template match="liste_nombres">
Introduction <html>
Fondamentaux <body>
Structures XSL  pour <p>Liste de nombres :</p>
<ul>
Principes afficher du <xsl:apply-templates select="nombre" />
Éléments HTML </ul>
Programmation </body>
XSLT </html>
</xsl:template>
Exemples
<xsl:template match="nombre">
Conclusion <li>
<xsl:value-of select="@valeur"/>
<xsl:text> : </xsl:text>
<xsl:value-of select="."/>
</li>
</xsl:template>
</xsl:stylesheet>
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 87 / 93 Jean-Marc PUJOS

Exemple (3)

Appel au processeur XSLT en PHP :

XSL <?
Introduction // Crée le processeur XSLT
$xh = xslt_create();
Fondamentaux
xslt_set_base ($xh, '[Link] . getcwd () . '/');
Structures XSL
Principes // Traite le document, puis affiche le résultat
Éléments $result = xslt_process($xh, '[Link]', '[Link]');
Programmation
XSLT if (!$result)
Exemples echo ("Erreur XSLT ...");
Conclusion else
echo ($result);

// Détruit le processeur XSLT


xslt_free($xh);
?>

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 88 / 93 Jean-Marc PUJOS
Visu du fichier "[Link]" sans XSL

XSL
Introduction
Fondamentaux
Structures XSL
Principes
Éléments
Programmation
XSLT
Exemples
Conclusion

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 89 / 93 Jean-Marc PUJOS

Visu du fichier "[Link]"

XSL
Introduction
Fondamentaux
Structures XSL
Principes
Éléments
Programmation
XSLT
Exemples
Conclusion

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 90 / 93 Jean-Marc PUJOS
Visu du fichier "[Link]" avec XSL

XSL
Introduction
Fondamentaux
Structures XSL
Principes
Éléments
Programmation
XSLT
Exemples
Conclusion

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 91 / 93 Jean-Marc PUJOS

Conclusion

 XSLT : « le Perl de XML »


Nombreuses implémentations (en particulier en
XSL
open source), nombreux livres, XSLT propose de
Introduction
Fondamentaux
nombreuses extensions.
Structures XSL  Même si XSLT est puissant, il a des limitations :
Principes
 Contrôle de structure ou de type (DTD, Schéma)
Éléments
Programmation  Traitement de documents streamés
XSLT
 Traitement incrémental
Exemples
Conclusion  Transformations monotones
 Composition de transformations
 Réversibilité des transformations

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 92 / 93 Jean-Marc PUJOS
Références

XSL
 [Link]
Introduction
Fondamentaux  [Link]
Structures XSL  [Link]
Principes
Éléments
 [Link]
Programmation  [Link]
XSLT
Exemples
 [Link]
Conclusion

© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 93 / 93 Jean-Marc PUJOS

Vous aimerez peut-être aussi