XML Stylesheet Language

Slides:



Advertisements
Présentations similaires
Possibilités de Facebook dans votre club Toastmasters Samedi, le 12 juin 2010 Michel Beaulieu
Advertisements

Introduction aux Web Services Partie 1. Technologies XML
1 3.Langage XSL = XSLT + XSL-FO transformationFormatage.
Transformation de documents XML
DTD Sylvain Salvati
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
Classe : …………… Nom : …………………………………… Date : ………………..
Cours MIAGE Henry Boccon-Gibod 1 XML, langage de structuration documentaire Langage de transformation et langage d'interrogation.
JXDVDTEK – Une DVDthèque en Java et XML
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
XHTML EXtensible HyperText Markup Language. HTML et XML HTML (HyperText Markup Language) et XML (eXtensible Markup Language) sont deux spécifications.
Les technologies XML Cours 3 : Les APIS XML Janvier Version 1.0 -
Cours 2 : Transformation de documents XML
le langage les éléments
Les fonctions de XPath et XSLT
Domaines nominaux XSLT
Tutoriel XSLT F. Sajous ERSS – 01/04/2005.
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
TP 3-4 BD21.
Manipulation d’XML avec XSL
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
JOME, un Composant Logiciel pour le Télé-Enseignement des Mathématiques via le WEB, Compatible OpenMath et MathML Laurent DIRAT OVE / I3S-UNSA.
XSL-FO THEORIE PRATIQUE.
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Introduction aux Web Services Partie 1. Technologies HTML-XML
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
Administration de SharePoint
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
Bienvenue! Qui suis-je? Webmestre depuis 1994 Café Internet en 1996 Commerce électronique Gestion de contenu web Marketing interactif.
Introduction à la structuration des documents: les techniques M2: Gestion des connaissances.
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le.
Xpath XML Path language par Yves Bekkers
XSLT Langage de transformation darbre par Yves Bekkers.
1. 2 PLAN DE LA PRÉSENTATION - SECTION 1 : Code HTML - SECTION 2.1. : CSS (Méthode 1) - SECTION 2.2. : CSS (Méthode 2) - SECTION 3 : JavaScript - SECTION.
Notre calendrier français MARS 2014
PhP-MySQL Pagora 2012/2013 CTD 1 - Presentation de moi ^^
Chapitre 3 Syntaxe et sémantique.
Veuillez trouver ci-joint
1 Couplage dun langage de contrôle de formatage avec un système de formatage existant DEA ISC : 1 avril 2003 Fateh Boulmaiz
Projet de Master première année 2007 / 2008
F L T R Université catholique de Louvain-la-Neuve Faculté de philosophie et lettres FLTR Faculté de Philosophie et Lettres Présentation décembre 2002 Réalisation:
Support des connaissances TP2 XSL-T
Chapitre 3 Les bibliothèques de balises JSP et la JSTL
XML Plan du cours Introduction au fichier XML
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
Structures des données
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
8 - XML Cours XML.
Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
Le langage XHTML 420-S4W-GG Programmation Web Client
Les outils de base : XPath, XSL, XLink, XForms
CALENDRIER-PLAYBOY 2020.
XSL eXtensible Stylesheet Language Historique 1999: XSLT 1.0 et XPATH 1.0 : versions supportées par la plupart des outils depuis février 2007 XSLT 2.0.
LES PILES ET FILES.
Les Chiffres Prêts?
Le langage XML.
XPath XML Path UP Web Année universitaire
Programmation Web : Introduction à XML
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
Publication et Traitement avec XSL
MJ. Blin et M. CsernelPoleInfo31 XML et ses environnements Documents XML bien formés Prologue Arbre d'éléments Attributs Commentaires Entités internes.
 G. Gardarin Les outils de base: Publication avec XML 1. XPATH 2. XSLT 3. XSLFO 4. XLink, XForms, RSS, … 5. XML et la bureautique.
Soutenance du mémoire de synthèse
Module : Langage XML (21h)
Modélisation des documents: DTD et Schéma
eXtensible Markup Language. Généralités sur le XML.
Transcription de la présentation:

XML Stylesheet Language XSL XML Stylesheet Language UP Web Année universitaire 2014-2015

Objectifs Comprendre le rôle de XSL Apprendre les différentes règles de transformations XSLT.

Plan Introduction Présentation de XSL Processeur XSLT Définition des règles XSLT Application des règles XSLT Transformation XSLT avec navigateur Web Transformation XSLT avec l’API JAXP Exemples de transformations.

Introduction: feuilles de style les feuilles de styles (style-sheets) permettent de: Préparer/arranger un contenu pour une « présentation ». Définir le « layout » (mise en forme, formattage). l’utilité des style-sheets est donc de: Séparer le contenu de la présentation. Rationaliser le travail (un style-sheet pour beaucoup de documents). Différents langages: Cascading Style Sheets (CSS). XML Stylsheet Language (XSL). Les feuilles de styles (style-sheets) permettent de: –préparer/arranger un contenu pour une "présentation" –définir le "layout" (mise en forme, formattage) •L’utilité des style-sheetsest donc de: –séparer contenu et présentation –rationaliser le travail (un style-sheetpour beaucoup de documents) •Différents langages –CascadingStyle Sheets(CSS) –Extensible Style Language(XSL)

Présentation de XSL XML Stylesheet Language Langage de programmation conçu pour transformer des documents XML en d'autres formats comme HTML ou des pages HTML. XSL est un dialecte XML Un document XSL est un document XML XSL est une recommendation W3C XSL Version 2.0 XSL utilise intensivement XPath -7-

Présentation de XSL XSL propose deux fonctionnalités distinctes XSLT et XSL-FO. XML Stylesheet Language XSLT XSLTransformation un langage de transformation de documents XML XSL-FO XSL- Formatting Objets un langage permettant de formater l'affichage et/ou l'impression d'un document XML. XSLT permet de transformer la structure des éléments XML. Le processeur XSLT (composant logiciel chargé de la transformation) crée un structure logique arborescente à partir du document XML et lui fait subir des transformations selon les règles XSLT pour produire un arbre résultat représentant, par exemple, la structure d'un document HTML. Les composants de l'arbre résultat sont appelésobjets de flux. XSLT XSL-FO

Principe de XSL Transformation Arborescence initiale Arborescence modifiée XSLT processor resultat.xml resultat.html … source.xml stylesheet.xsl Une feuille de style XSLT contient des règles qui décrivent des transformations. Ces règles sont appliquées à un document source XML pour obtenir un nouveau document résultat. Cette transformation est réalisée par un programme appelé processeur XSLT.

Exemple XML HTML XSLT processor <?xml version="1.0"?> <recette> <titre>Crème au beurre</titre> <categorie>Dessert</categorie> <ingredients> <ingredient> <nom>beurre</nom> <quantite unite="grammes"> 250 </quantite> </ingredient> <nom>sucre</nom> <nom>oeuf</nom> <quantite> 8 </ingredients> </recette> HTML XSLT processor

Processeur XSLT Permet d’analyser une feuille de style XSLT et un document XML source. Permet de transformer le document XML d’entrée en un document de sortie différent en appliquant les règles définies dans la feuille de style. en se basant sur les expressions Xpath décrites dans la feuille de style.

Exemples de processeur XSLT Plusieurs types de processeurs XSLT sont disponibles : Des processeurs intégrés dans des navigateurs web. Des processeurs intégrés dans des serveurs web ou d’applications. Apache Tomcat Des processeurs standalone Xalan: Par la fondation Apache. MSXML: Par Microsoft. Saxon: Par Michael Kay.

Structure d’un document XSL La racine d'un document XSLT est xsl:stylesheet Fichier XSLT <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> </xsl:stylesheet > Une feuille de style XSLT minimaliste applique les règles par défaut. La règle par défaut recopie les contenus textuels de ces élément Association d'une feuille XSL à un document XML Fichier XML <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="fichier.xsl"?>

Définition des règles XSLT xsl:output Se place directement après <xs:stylesheet> et permet de préciser le format de sortie. <xsl:output method=“HTML” version=“…” indent=“yes“ encoding=“…”> </xsl:output> L'attribut method permet de préciser le format. Les valeurs possibles sont: texte, xml ou html. L'attribut version permet de définir la version de la méthode de sortie (xml 1.0, html 4.01…). L'attribut indent permet de définir si les paragraphes de sortie doivent être décalés ou non. Les valeurs possibles sont: yes ou no. L'attribut encoding permet de préciser le jeu de caractères utilisé pour la sortie.

Définition des règles XSLT xsl:template Un programme XSLT est composé d'un ensemble de règles regroupées dans des templates Un modèle (template) de transformation est défini dans l’élément xsl:template. <xsl:template name="ingredientTemplate" match="ingredient"> règles de la template </xsl:template> L'attribut name donne le nom du modèle. L'attribut match contient une expression XPath indiquant les éléments sur lesquels ce modèle s'applique <xsl:template match="ingredients|preparation|cuisson">

Définition des règles XSLT xsl:value-of Permet d’extraire la valeur d'un élément <xsl:template match="ingredient"> <xsl:value-of select="nom"/> <xsl:value-of select="quantite"/> <xsl:value-of select="quantite/@unite"/> </xsl:template> L'attribut select contient une expression XPath de l’élément à extraire

Définition des règles XSLT Les structures de contrôle xsl:if Permet de réaliser un test Cet élément ne propose pas d'alternative car il n'existe pas d'élément xsl:else <xsl:template match="recette"> <xsl:if test="categorie=‘ Dessert'" > Ceci est un dessert </xsl:if> </xsl:template> La condition du test est une expression XPath contenue dans l'attribut test Si le résultat est true, le contenu de l'élément xsl:if est pris en compte. Sinon, le contenu de l'élément xsl:if est ignoré

Définition des règles XSLT Les structures de contrôle xsl:choose Permet de réaliser plusieurs tests consécutivement <xsl:template match="recette"> <xsl:choose> <xsl:when test="categorie=Dessert"> Ceci est un dessert </xsl:when> <xsl:when test="categorie=Entree"> Ceci est une entrée <xsl:otherwise> Ceci est un plat </xsl:otherwise> </xsl:choose> </xsl:template> Cet élément contient des éléments xsl:when et éventuellement un élément xsl:otherwise. Chacun des éléments xsl:when possède un attribut test contenant une expression XPath servant de condition.

Définition des règles XSLT Les structures de contrôle xsl:for-each Permet de réaliser des boucles en XSLT <xsl:template match="recette"> <xsl:for-each select="ingredients/ingredient"> <xsl:value-of select="nom"/> </xsl:for-each> </xsl:template> L'attribut select contient une expression Xpath pour déterminer la liste des objets à traiter. Le contenu de l'élément xsl:for-each est exécuté pour chacun des objets de la liste.

Définition des règles XSLT Variables xsl:variable Créer des variables dans XSLT: <xsl:variable name=nom select= valeur/> name (obligatoire): spécifie le nom de la variable. select: spécifie la valeur de la variable: peut être une valeur constante ou une expression Xpath. <xsl:variable name=" unite_qte" select=" ml" /> <xsl:variable name=" unite_qte" select=" ingredient/quantite/@unite " /> L’appel de la variable se fait avec l’ajout du $ avant son nom. <xsl:value-of select= " $unite_qte " />

Application des règles XSLT Application implicite xsl:apply-templates Permet d’appliquer de règles sur les nœuds sélectionnés par son attribut select qui contient une expression XPath. Appel récursif du template <xsl:template match="recette"> <xsl:apply-templates select="//ingredient"/> </xsl:template> <xsl:template match="ingredient"> <xsl:value-of select="nom"/> <xsl:value-of select="quantite"/> <xsl:value-of select="quantite/@unite"/> L'attribut match permet à la règle d'être invoquée implicitement par un élément xsl:apply-templates

Application des règles XSLT Application explicite xsl:call-template Permet d’appliquer les règles du template dont le nom est donné par l'attribut name. <xsl:template match="recette"> <xsl:for-each select="ingredients/ingredient"> <xsl:call-template name="ingredient"/> </xsl:for-each> </xsl:template> <xsl:template name="ingredient"> <xsl:value-of select="nom"/> <xsl:value-of select="quantite"/> <xsl:value-of select="quantite/@unite"/> l'attribut name permet à la règle d'être appelée explicitement par un élément xsl:call-template

Application des règles XSLT Paramètres xsl:param L’élément xsl:param permet de passer des paramètres aux règles. <xsl:param name=nom select=expression/> name: nom du paramètre. select (optionnel): expression Xpath qui donne la valeur par défaut (convertie en chaîne de caractère) <xsl:template name="show_title" match="/">   <xsl:param name="title" />   <xsl:for-each select="catalog/cd">     <p>Title: <xsl:value-of select="$title" /></p>   </xsl:for-each> </xsl:template> Si l’attribut select est absent, la valeur par défaut est le contenu de l’élément. <xsl:param name=" texte">salut</xsl:param>

Application des règles XSLT Passage de paramètres xsl:with-param Cet élément suit un call-template ou un apply-templates. <xsl:call-template name="show_title">     <xsl:with-param name="title" />   </xsl:call-template>

Application des règles XSLT Tri xsl:sort xsl:sort permet de trier des éléments avant de les traiter L'élément xsl:sort doit être le premier fils des éléments xsl:apply-templates, xsl:call-template ou xsl:for-each <xsl:template match="recette"> <xsl:apply-templates select="ingredients/ingredient"> <xsl:sort select="nom" order="descending"/> </xsl:apply-templates> </xsl:template> L'attribut select permet d’indiquer le critère pour trier ses différents éléments. L’attribut order permet d’indiquer l’ordre de tri: ascending ou desending.

Transformation XSLT avec un navigateur Web Pour tester une transformation XSLT avec un navigateur Web, il suffit de référencer le document XSL au niveau du document XML: Ensuite il suffit d’ouvrir le document XML à l’aide d’un navigateur Web.

Transformation XSLT avec l’API JAXP JAXP (Java Api for XML Parsing) est l’API Java qui: permet la création, la manipulation et le traitement des fichiers XML. Permet d’analyser les fichiers XML selon les normes DOM ou SAX, et de les transformer à l’aide de feuilles de style XSL. Pour la transformation XSLT, JAXP utilise le processeur XALAN. SAX: Simple API for XML DOM: Document Object Model

Transformation XSLT avec l’API JAXP Feuille de style définissant les règles de transformation Document XML cible Document HTML à générer

Exemple1: Transformer .XML en format HTML <?xml version="1.0"?> <ecole> <etudiant> <id>1</id> <nom>ayed</nom> <prenom>aymen</prenom> <cin>07085541</cin> </etudiant> <id>2</id> <nom>gharbi</nom> <prenom>wael</prenom> <cin>09885541</cin> <id>3</id> <nom>ben yedder</nom> <prenom>alia</prenom> </ecole> Le document XML -18-

Exemple1: Transformer .XML en format HTML <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html><body> <h2>Etudiants</h2> <table border="1"> <tr bgcolor="#9acd32"><th>Nom</th><th>Prenom</th></tr> <xsl:for-each select="ecole/etudiant"> <tr> <td><xsl:value-of select="nom"/></td> <td><xsl:value-of select="prenom"/></td> </tr> </xsl:for-each> </table> </body></html> </xsl:template> </xsl:stylesheet> Le document XSL -18-

Exemple1: Transformer .XML en format HTML Le document HTML résultat -18-

Exemple2: Transformer .XML en format XML <?xml version="1.0" encoding="UTF-8"?> <personnes> <personne username=« CA1"> <nom>Chaaben</nom> <prenom>Ahmed</prenom> </personne> <personne username="MA1"> <nom>Makni</nom> <prenom>Ahlem</prenom> </personnes> Le document XML -18-

Exemple2: Transformer .XML en format XML <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes"/> <xsl:template match="/personnes"> <root> <xsl:apply-templates select="personne"/> </root> </xsl:template> <xsl:template match="personne"> <name username="{@username}"> <xsl:value-of select="nom" /> </name> </xsl:stylesheet> Le document XSL -18-

Exemple2: Transformer .XML en format XML <?xml version="1.0" encoding="UTF-8"?> <root> <name username=„CA1">Chaaben</name> <name username="MA1">Makni</name> </root> Le document XML résultat -18-

En résumé L'application d'une feuille de style XSLT à un document XML permet de transformer son arborescence en une autre arborescence. XSL se base sur le langage Xpath pour définir et adresser les éléments du document XML. Les règles de transformation XSLT sont regroupés dans des templates. La template de la racine racine est la première à être appliquée -18-

Référence http://www.cs.toronto.edu/~ryanjohn/teaching/cscc43-s12/lectures/c43-xslt-v02.pdf http://www.fil.univ-lille1.fr/~levaire/pje/td6/TD6.pdf https://www.lri.fr/~roatis/teaching/xslt/2012/13-12-2012.pdf http://deptinfo.unice.fr/twiki/pub/Minfo03/ServletEtXml/04-xml-xpath.pdf https://www.lri.fr/~benzaken/documents/slprog.pdf http://www.jmdoudoux.fr/java/dej/chap-xslt.htm#xslt-2 http://fr.wikipedia.org/wiki/Java_API_for_XML_Processing