XMLXSLT
XMLXSLT
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 1 / 93 Jean-Marc PUJOS
© 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
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 ?
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 7 / 93 Jean-Marc PUJOS
Limites de HTML
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 8 / 93 Jean-Marc PUJOS
Apports de XML
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 9 / 93 Jean-Marc PUJOS
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
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 11 / 93 Jean-Marc PUJOS
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 12 / 93 Jean-Marc PUJOS
Applications XML (1)
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 13 / 93 Jean-Marc PUJOS
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 14 / 93 Jean-Marc PUJOS
XML plus en détail
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 15 / 93 Jean-Marc PUJOS
© 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
© 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>
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 19 / 93 Jean-Marc PUJOS
© 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]]>
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 21 / 93 Jean-Marc PUJOS
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
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
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é
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 27 / 93 Jean-Marc PUJOS
Arborescence XML
PUJOS Informatique
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 28 / 93 Jean-Marc PUJOS
Document XML valide
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 29 / 93 Jean-Marc PUJOS
Schéma XML
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 30 / 93 Jean-Marc PUJOS
Les 2 parties de XML Schema
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 31 / 93 Jean-Marc PUJOS
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 32 / 93 Jean-Marc PUJOS
Exemple de schéma XML (2)
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 33 / 93 Jean-Marc PUJOS
…
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>
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 34 / 93 Jean-Marc PUJOS
Les Espaces de Noms XML
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 35 / 93 Jean-Marc PUJOS
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 36 / 93 Jean-Marc PUJOS
XPath (1)
© 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
© 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
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 39 / 93 Jean-Marc PUJOS
/ 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>
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 42 / 93 Jean-Marc PUJOS
eXtensible Linking Language - XLL
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 43 / 93 Jean-Marc PUJOS
Xpointer
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 44 / 93 Jean-Marc PUJOS
XLink
© 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
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
60
40
20
XSL
0
1st Qtr 2nd Qtr
Programmation
XSLT XML +
Exemples
Conclusion
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 51 / 93 Jean-Marc PUJOS
© 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
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
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 57 / 93 Jean-Marc PUJOS
Approche déclarative
© 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
© 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
<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
a b
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 63 / 93 Jean-Marc PUJOS
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 64 / 93 Jean-Marc PUJOS
Extrant d'une exécution de gabarit
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 65 / 93 Jean-Marc PUJOS
Gabarits prédéfinis
© 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
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 68 / 93 Jean-Marc PUJOS
Élément courant
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 69 / 93 Jean-Marc PUJOS
Attribut
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 70 / 93 Jean-Marc PUJOS
Production de texte
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 71 / 93 Jean-Marc PUJOS
Expression
© 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
© 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
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 78 / 93 Jean-Marc PUJOS
Boucles xsl:for-each
© 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
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 81 / 93 Jean-Marc PUJOS
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 82 / 93 Jean-Marc PUJOS
Fonction avec paramètres (1)
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
© CNAM – UE IHM – NSY110 Introduction à XML & XSLT Diapositive 84 / 93 Jean-Marc PUJOS
Autres caractéristiques
© 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)
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);
© 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
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
© 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