XSLT Langage de transformation darbre par Yves Bekkers.

Slides:



Advertisements
Présentations similaires
Données structurées et XML
Advertisements

1 3.Langage XSL = XSLT + XSL-FO transformationFormatage.
Transformation de documents XML
DTD Sylvain Salvati
Introduction à XSLT Éric Laporte Institut Gaspard-Monge Université Paris-Est Marne-la-Vallée.
Les espaces de nommage XML par Philippe Poulard 1
Vocabulaire pour la passage du modèle conceptuel des données au modèle relationnel des données. MCDMRD EntitéTable PropriétésChamps, attribut IdentifiantClé
Données structurées et XML
XHTML EXtensible HyperText Markup Language. HTML et XML HTML (HyperText Markup Language) et XML (eXtensible Markup Language) sont deux spécifications.
Cours 2 : Transformation de documents XML
le langage les éléments
Les fonctions de XPath et XSLT
Domaines nominaux XSLT
Programmation et projet encadré
Tutoriel XSLT F. Sajous ERSS – 01/04/2005.
Manipulation d’XML avec XSL
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
CREATION DE FEUILLE DE STYLE pour structuré le document XML
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
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.
Principes de programmation (suite)
Cours de programmation
XSLT XSL : XSL : formatting objects - langage de formattage; XSLT : langage de transformation bas sur la spcificatioon Xpath (langage dadressage dans des.
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.
UNIVERSITE CHOUAIB DOUKKALI Département des mathématiques
8PRO100 Éléments de programmation Comment faire prendre une décision à un ordinateur?
Introduction à DOM Maroua Bouzid
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
Introduction à la structuration des documents: les techniques M2: Gestion des connaissances.
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.
Le langage Javascript pour le web
Xpath XML Path language par Yves Bekkers
STAF 2X XSL/FO Glaus & Ruckstuhl Mars © Glaus & Ruckstuhl TECFA Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et.
8PRO107 Éléments de programmation
XSLT : trier et mettre en valeur le contenu d’un document XML
Support des connaissances TP2 XSL-T
PHP 2° PARTIE : FONCTIONS ET FORMULAIRE
XML Plan du cours Introduction au fichier XML
Animateur : Med HAIJOUBI
8 - XML Cours XML.
Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB
PHP & My SQL.
Les outils de base : XPath, XSL, XLink, XForms
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.
JavaScript.
Le langage XML.
SIF-1053 Architecture des ordinateurs
XPath XML Path UP Web Année universitaire
XSLT - Yves bekkers - IFSIC1 XSLT Langage de transformation d’arbre Yves Bekkers Mise à jour : 12 avril 2015.
XML Stylesheet Language
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
Arbres binaires et tables de hachage
Copyright © 2005 Yves MARCOUX1 Concepts XML de base Yves MARCOUX EBSI - Université de Montréal.
 Syntaxe du langage PHP
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
MJ. Blin et M. CsernelPoleInfo31 XML et ses environnements Documents XML bien formés Prologue Arbre d'éléments Attributs Commentaires Entités internes.
Introduction à XML Yves Bekkers. Plan Introduction - structurer l’information Les langages à balises - un peu d’histoire XML - concepts de base Outils.
 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
Introduction à CSS Généralités. Introduction Beaucoup de documents XML sont destinés à être présentés. Les information du fichier seul (avec ou sans DTD)
eXtensible Markup Language. Généralités sur le XML.
HTML Création et mise en page de formulaire
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
FORMULAIRES FOMULAIRE Permet à l’utilisateur d’entrer des renseignements le concernant. Utilisation –Inscription sur un site –Mise à jour d’une base.
XSLT. Les documents XML peuvent avoir dans leur prologue une instruction de traitement xml-stylesheet. Cette instruction de traitement indique au navigateur.
Extensions à la spécification XML Le "plus petit cercle" XML Yves Bekkers Mise à jour : 9 octobre 2003.
Transcription de la présentation:

XSLT Langage de transformation darbre par Yves Bekkers

XSLT = Transformation darbre

Extraction/génération XSL permet de –sélectionner et extraire linformation dun document XML –générer de nouveaux documents XML

XSLT est un langage XML Les instructions sont des éléments XML <xsl:stylesheet version="1.0" xmlns:xsl= " <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

Prélude dune feuille de style

Elément Élement racine dun document XSLT <xsl:stylesheet version="1.0" xmlns:xsl= " > –Attribut version : version de langage XSL (obligatoire) –Attribut xmlns:xsl : espace de nom XSL

Elément Format de sortie du document résultat <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> –Attribut method : type du document en sortie –Attribut encoding : codage du document –Attribut indent : indentation en sortie

Type de document en sortie Trois types de document en sortie –xml : vérifie que la sortie est bien formée (sortie par défaut) –html : accepte les balises manquantes, génère les entités HTML (é...) (sortie par défaut si XSL reconnaît l'arbre de sortie HTML4) –text : tout autre format textuel : du code Java, format Microsoft RTF, LaTex

Parcours - transformation darbre Règle de réécriture : template – Spécifier un parcours de larbre dentrée – Obtenir une valeur dans larbre source – –les crochets dans un attribut

Élément Règle de réécriture condition action … action … –Attribut match : expression XPATH –Contenu : sous-arbre en sortie Un programme XSLT est un ensemble de règles

Premier exemple complet Condition : « A la racine du document dentrée ! » <xsl:stylesheet version="1.0" xmlns:xsl=" Welcome Welcome! Arbre en sortie Action : « Document html inclus à générer ! »

Arbre en sortie Expressions xpath Modèle de sous-arbre paramétré Le texte HTML est inclus comme contenu délément –le texte HTML doit être bien formé On peut mélanger du texte XSLT au texte HTML –pour extraire des informations du document source –pour générer un texte HTML en relation avec le contenu du document source

Second exemple complet (1) <xsl:stylesheet version="1.0" xmlns:xsl= " <xsl:output method="html" indent="no" encoding="iso "/>... Modèle de sous-arbre Expression xpath

Second exemple complet (suite) Liste des Noms Nom :

Résultat Pour un document source contenant 4 cartes de visite Liste des Noms Nom : Bekkers Nom : Bartold Nom : Letertre Nom : Apolon

Élément Liste des Noms Descente dans les fils dun nœud équivalent à

Élément Nom : Sélection de la valeur : –attribut select : expression xpath –ici : le texte contenu dans lélément nom de lélément carteDeVisite Générer le contenu dun élément

Valeur d'un nœud selon son type Il sagit dun élément –Concaténation de tous les textes qui se trouvent comme contenu de cet élément et de ses descendants Il sagit dun nœud text –Texte du nœud lui même Attribut –Valeur de l'attribut normalisée (pas despace de début et fin) Instruction de traitement –Valeur de l'instruction de traitement (sans les marques et sans le nom) Commentaire –Le texte du commentaire (sans les marques )

Exemple 1 Arbre en entrée Template Nom : Arbre en sortie Bekkers nom : Bekkers

Exemple 2 Arbre en entrée enseigne XML au SEP Template En sortie enseigne XML au SEP

Exemple 3 Arbre en entrée enseigne XML au SEP Template En sortie enseigne Seul le premier élément sélectionné est produit

Exemple 4 Arbre en entrée enseigne XML au SEP Template En sortie note

Exemple 5 Arbre en entrée 4 cartes de visite : Bekkers, Bartold, Letertre, Apolon Template En sortie Bekkers Seul le premier élément sélectionné est produit

Exemple 6 Arbre en entrée 4 cartes de visite : Bekkers, Bartold, Letertre, Apolon Template En sortie BekkersBartoldLetertreApolon Pour chaque carte de visite le template est appliqué

Règles par défaut (1) Traverser la racine et tous les noeuds « élément » Sortir les feuilles « texte » et les « attributs »

Règles par défaut (2) Commentaires et instructions de traitement Ne rien faire

Feuille de style minimum <xsl:stylesheet version="1.0" xmlns:xsl= " Traverse tout larbre et sort les feuilles (contenu délément texte et valeur dattribut)

Les attributs Arbre en entrée Template En sortie

Les attributs - autre moyen Arbre en entrée Template En sortie

Élement Itération sur une ensemble de nœuds

Deux styles de programmation Récursive Itérative Attribut select donne lensemble de nœuds vers lequel on se déplace

Élément Sortir les commentaires à lidentique

Élément Sortir les instructions de traîtement à lidentique

Conflits de Règles Règle implicite de priorité –La règle la plus sélective gagne –Parmi 2 templates de même sélectivité, le dernier dans la feuille de style gagne Exemple –nom est plus sélectif que /|* –note[clé] est plus sélectif que note est plus sélectif que

Les modes Permet de déclarer plusieurs règles pour un même élément Chaque règle traite lélément différemment

Attributs mode Dans un élément apply-templates Dans un élément template <xsl:template match="carteDeVisite" mode="passe1">... Attention un apply-templates nhérite pas du mode du template englobant

Modularité

Modularité des documents sources Document composé de plusieurs documents chap1.xml chap2.xml chap3.xml Utiliser la fonction document() <xsl:apply-templates select="document(.)/*"/>

Elément Modularité des feuilles de style <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:output method="xml" version="1.0" encoding="ISO " indent="yes"/>...

Elément Modularité des documents en sortie Preface Version 1.1 de XSLT –Seul Saxon limplémente actuellement

Autres services Variables Caractères espaces, TAB, CR, LF en sortie Tri Conditionnelle Appel récursif et passage de paramètres Template nommés (procédures)

Déclaration de variable 1 Déclaration de variable 2 #FFFFCC Référence à une variable

XSL est un langage à assignation unique Les « variables » sont des constantes à la manière des constantes #define de C Une variable ne peut être réaffectée La visibilité dune variable est son élément père Une variable peut en cacher une autre

Les espaces Les espaces non significatifs dans larbre xsl ne sont pas produits et ont le même effet

Élément Permet de sortir des espaces, des tabulations ou des fins de ligne dans le document de sortie

Attribut desable-out-escaping Pour sortir des caractères spéciaux tels quel (sans être sous forme dentité) Valeurs possible : yes ou no (par défaut) où –Dans un élément xsl:text –Dans un élément xsl:value-of Attention : cela peut produire des documents qui ne sont pas bien formés Utiles pour produire des pages ASP ou JSP

Élément Permet de trier l'ensemble des nœuds sélectionnés par les instructions avant de les traîter Exemple : trier les cartes de visite par noms...

Tri sur plusieurs critères Trier dabord par noms puis par prénoms

Élément Conditionnelle, Génère une virgule après chaque nom sauf pour le dernier En sortie Bekkers, Bartold, Letertre, Apolon

Élément Conditionnelle à choix multiple

Initialisation conditionnelle Exemple 3 5 if (niveau > 20) code = 3; else code = 5; JavaXSLT

Passage de paramètres Déclaration (paramètre formel)... utilisation de p... Obtenir la valeur dun paramètre select="$p" Appel (paramètre effectif) Valeur par défaut Affectation de valeur

Templates només : attributs name Les procédures Déclaration... Appel

Exemple (1) Exemple : Mettre sous forme darbre titre 1 bla bla 1 bla bla 2 bla bla 3 titre 2 bla bla 4 bla bla 5 bla bla 6

Exemple (2) titre 1 bla bla 1 bla bla 2 bla bla 3 titre 2 bla bla 4 bla bla 5 bla bla 6 Resultat attendu

Exemple (3) Itération sur tous les éléments Sélection des frères qui suivent

Exemple (4) <xsl:with-param name="nds" select="$nds[position()!=1]"/> Appel récursif sur les autres frères après traitement du premier Traitement du premier frère si cest un élément par Arrêt de la récursivité si le premier frère est un h1

Paramètre au sein dun élément Les paramètres descendants directs dun élément sont autorisés... On peut passer une valeur dans la ligne de commande java... dir=monDir

Mise au point Élément code = Trace en sortie dans la fenêtre de commande code = 25

Conclusion Oui –XSLT est un vrai langage de programmation –XSLT na pas son équivalent pour la transformation darbre Mais –La mise au point de programmes XSLT peut savérer « délicate » –La maintenabilité est discutable

Des références XSLT Programmers Reference Micheal H. Kay, Wrox Press Saxon : Michael Kay très bonne documentation en ligne Xalan, Cocoon : projet Apache