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.

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
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
Introduction à XSLT Éric Laporte Institut Gaspard-Monge Université Paris-Est Marne-la-Vallée.
Cours MIAGE Henry Boccon-Gibod 1 XML, langage de structuration documentaire Langage de transformation et langage d'interrogation.
Les espaces de nommage XML par Philippe Poulard 1
XML schema Objectifs Valider un doc. XML pour des contraintes syntaxiques Documenter un type de documents XML caractérisé par des contraintes Encadrer.
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
Xpath XPath is a language for finding information in an XML document.
le langage les éléments
Les fonctions de XPath et XSLT
Domaines nominaux XSLT
version Beta Marie Calberg Ninni Louhelainen SLFN7
Tutoriel XSLT F. Sajous ERSS – 01/04/2005.
Manipulation d’XML avec XSL
CREATION DE FEUILLE DE STYLE pour structuré le document XML
XSL-FO THEORIE PRATIQUE.
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.
XSLT XSL : XSL : formatting objects - langage de formattage; XSLT : langage de transformation bas sur la spcificatioon Xpath (langage dadressage dans des.
UNIVERSITE CHOUAIB DOUKKALI Département des mathématiques
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
XSLT Langage de transformation darbre par Yves Bekkers.
Manipulation de formulaires en Javascript
© Glaus & Ruckstuhl TECFA Le Processeur Apache / FOP.
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.
Standard Template Library
Gestion de Fichiers GF-10: Traitement Co-Sequentiel: Appariment et Fusion de Plusieures Listes (Base sur les sections de Folk, Zoellick & Riccardi,
XSLT : trier et mettre en valeur le contenu d’un document XML
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
Les feuilles de style CSS
Données sous XML Stéphane Marchand-Maillet Groupe Viper Vision par Ordinateur et Multimédia CUI – Université de Genève
8 - XML Cours XML.
Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB
Les outils de base : XPath, XSL, XLink, XForms
Paradigmes des Langages de Programmation
XSLT : XML Stylesheet Language Transformation
XML-schema. Pourquoi XML-schema Les DTD : Pas de typage, peu de contraintes sur les contenus nombre d'apparitions d'un élément à choisir entre 0 et 1.
Le langage XML.
XPath XML Path UP Web Année universitaire
Chapitre 6.2 Les curseurs Cours SGBD 3A Mme hkimi Jihène
XML Stylesheet Language
Créer des packages.
Programmation Web : Introduction à XML
Programmation Web : Schémas XSD Jérôme CUTRONA 19:27:07 Programmation Web
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
 Syntaxe du langage PHP
Le langage Racket (Lisp)
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.
 Formulaires HTML : traiter les entrées utilisateur
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)
Page 1 © Expert-IT s.a. - Développer des projets en XML Pratique.
XSLT. Les documents XML peuvent avoir dans leur prologue une instruction de traitement xml-stylesheet. Cette instruction de traitement indique au navigateur.
Transcription de la présentation:

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 et XPATH 2.0 : nouvelles recommandations du W3C XSLT 2.0 est plus simple et le traitement associé plus efficace

XSL : principe général

XSL "Un moyen de niveau balisage qui fournit une solution déclarative à la plupart des exigences de présentation." J.C. Bernadac & F. Knab Un langage de transformation et de style

XSL Composé de : Un langage de transformation de documents (XSLT) Un langage de mise en forme de documents ( XSL Formatting, XSL FO) Un langage d'adressage (XPath)

Structure d'une feuille de style Un prologue Un fichier XSL doit commencer par les lignes indiquant le numéro de version XML et l'encodage de caractères utilisé : La définition de l'élément xsl:stylesheet La déclaration peut contenir des attributs : la déclaration d'espace de noms le numéro de version, … L'élément contient la déclaration de règles de réécriture

Applications de règles de réécriture Le principe de fonctionnement de XSL est l'application de règles ou "templates" ou modèles Une règle permet de déterminer le texte qui doit être réécrit à la place d'un "motif"/d'un "pattern" (élément, attribut, texte, …)

Réorganiser Présenter Document pdf Document html Document XML

1ère étape : XML vers XML Application de règles de transformation de l'arbre du document XML source : production d'un arbre XML résultat, pouvant être complètement différent. A partir d'un document source, production d'un ou plusieurs documents XML résultats. Ce qui est produit peut contenir des indications de formatage.

Ou du XML vers ??? On peut directement générer du HTML. ou un document dans un langage ad- hoc.

2ème étape : du XML vers ??? Application des règles de mises en forme Ex : FOP (J. Tauber) "an open-source XSL Formatter and Renderer" Génération de PDF ou à partir d'un arbre d'objets de formatage.

Règles de transformation Syntaxe : [actions] L'élément racine indique que c'est une feuille de style XSL Expression au format XPATH

Apply-templates Application récursive des transformations à la racine et à ses descendants : En l’absence de l’attribut « select », traite tous les fils du nœud courant. L’attribut « select » est une expression qui doit retourner un ensemble de nœuds. Expression au format XPATH

XPATH : introduction

Xpath (= location paths) Un langage "d'adressage" (chemins d'accès) Une syntaxe partagée avec d'autres spécifications exemples : chapitre/section: toutes les sections d'un chapitre //section: toutes les sections descendantes de la racine child::*/child::para : les nœuds de nom "para" petit-enfants du nœud courant descendant::para: les nœuds "para" descendant du nœud courant ancestor::para: les nœuds "para" ancêtres du nœud courant

XPATH Extrait de personne d'un noeud

Exemples sélectionne tous les éléments paragraphe descendant d'un élément section, fils du noeud courant. sélectionne tous les éléments paragraphe descendant du noeud courant.

Autres exemples associés aux règles sélectionnera les éléments nommés section quand ceux-ci sont "fils de" chapitre sélectionnera les éléments nommés intervention qui possède l'attribut memorable dont la valeur est 'oui'

XSL : algorithme d'application des règles

Application des règles Par défaut : de l’élément racine vers ses descendants, en suivant l’ordre d’apparition des éléments. Les règles sont activées dans l’ordre de rencontre des éléments L’ordre de définition des règles n’a pas d’importance

L'algorithme du "XSL-processing" 1- le nœud racine est traité 2- chaque nœud de la liste courante est traité en appliquant la règle correspondante. 3- cela peut ajouter de nouveaux nœud à l'arbre résultat : sélection d'une liste de nœuds à traiter qui forment la liste courante de nœuds - on rejoue l'étape 2 4- on continue jusqu'à ce que plus aucun nœud ne soit sélectionné

Règles implicites Citation de la spécification: "Il existe une règle modèle [template] interne permettant à un traitement récursif de continuer même en cas de non-concordance de motif par une règle modèle explicite de la feuille de styles. Cette règle modèle s'applique aussi bien aux noeuds d'éléments qu'au noeud racine.

Règles implicites Ce qui suit montre ce qui équivaut à cette règle interne" : Autre règle implicite : copie implicite par défaut des nœuds texte dans le document résultat (exemple du CUI)

XSL : instructions principales

9 instructions principales xsl:import and xsl:include xsl:importxsl:include xsl:strip-space and xsl:preserve-space xsl:strip-spacexsl:preserve-space xsl:output xsl:variable xsl:param xsl:key xsl:decimal-format xsl:namespace-alias xsl:attribute-set xsl:template

Modulariser sa stylesheet Inclut textuellement la stylesheet référencée. Même niveau de précédence : les templates se comportent comme ceux de la stylesheet. La stylesheet importée étend la stylesheet Les templates importés d’une autre stylesheet à un niveau de précédence différent.

Gérer les espaces xsl:strip-space ne préserve pas les espaces dans les éléments xsl:preserve-space préserve les espaces dans les éléments

Spécifier le type de sortie xsl:output exemples : par défaut, xml, sauf si la première balise de l'arbre résultat est html.

Déclarer des variables xsl:variable permet d'affecter une valeur à une variable nommée xsl:param permet de déclarer un paramètre de la feuille de style.

Autres déclarations xsl:key permet d'associer un identifiant à un nœud xsl:decimal-format permet de définir un modèle de représentation des nombres décimaux (utile si internationalisation) xsl:attribute-set déclare un ensemble d'attributs réutilisables

xsl:apply-templates (suite)

xsl:apply-templates : mode Un nœud peut être calculé plusieurs fois, de façon différente :...

Attribut mode Si xsl:apply-templates a un attribut mode : il s’applique uniquement aux règles modèles des éléments ayant un attribut mode avec la même valeur

mode : exemple

XSL : des fonctions

Principales fonctions xsl:element xsl:attribute xsl:number xsl:sort xsl:node …

xsl:element Permet de calculer dynamiquement le nom d’un élément td

Des exemples… xsl:attribute Permet de rajouter dynamiquement des attributs à une balise HTML par exemple

xsl:number Pour numéroter des nœuds d'un document en fonction de leur position dans l'arbre source level : pour préciser le niveau dans l'arbre, from : point de départ de la numérotation format : format d'affichage de la numérotation

xsl:sort Pour trier les nœuds du document Des attributs : order : le sens du tri (ascending ou descending) lang : la langue du critère de tri data-type : la nature de la clé de tri (text, number) case-ordre (upper-first, lowerfirst)

Des tests xsl:if … (cf. exemple notation)

Des boucles …

Fonctions issues de XPath position() : retourne un nombre égal à la position du nœud dans son contexte last() : retourne un nombre égal à la taille de l'évaluation du contexte

Générer un identifiant unique generate-id() le processeur génère l'ID, Un ID unique par nœud (durant la même transformation) des nœuds différents ont un ID différent. Intéressant pour générer des liens internes dans l'arbre résultat.

generate-id() : exemple

XSLT 2.0

Génération et manipulation de groupes cf. group-by de SQL Création du groupe : Plusieurs options possibles : group-by, group-adjacent, group-starting-with, group-ending-with Manipulation du groupe Voir exemple "Feature 1"

Plusieurs formats de sortie Définition de plusieurs transformation dans une seule feuille de style Permet de générer automatiquement un fichier par sortie Voir exemple "Feature 2"

Création et manipulation de groupes Voir l'exemple "Feature 3"

Introduction des séquences Une séquence est une liste d’objets qui peuvent être ordonnés et manipulés (objets XML, nombres, strings, …) Cf exemple "Sequence and Space Separators in Element Content"

Création de fonctions "An xsl:function declaration declares the name, parameters, and implementation of a stylesheet function that can be called from any XPath expression within the stylesheet." extrait de la recommandation

Autres innovations Conversion possible de texte en expressions régulières, Extension de Xpath par la définition de nouvelles fonctions (écrites en C++, C#, Javascript, Java, Perl, … et XSLT!),

Autres innovations (2) Déclaration de types conformes aux schémas De nouvelles fonctions de manipulation des dates et du temps Cf exemple "Feature 5"

XSLT 2 Five XSLT 2.0 Features that Simplify XML Document Transformations by Jinyu Wang La recommandation du W3C