le langage les éléments

Slides:



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

HTML Abda Anne Plan Présentation Structure Texte Listes Images Liens Tableaux Formulaires.
Introduction aux Web Services Partie 1. Technologies XML
XML.
FragmentsManuelle : XML Publication et Fragments La publication de canaux Processus de mise à disposition de nouveaux contenus extérieurs au portail :
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
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.
Les fonctions de XPath et XSLT
Domaines nominaux XSLT
Nicolas Singer Maître de conférence, université Champollion
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.
Introduction aux Web Services Partie 1. Technologies HTML-XML
UNIVERSITE CHOUAIB DOUKKALI Département des mathématiques
Présentation de la séquence de cours sur les interactions HTML-javascript Laure Walser, 11 juin 2010.
Introduction à DOM Maroua Bouzid
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
RDF(S)
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.
Xpath XML Path language par Yves Bekkers
XSLT Langage de transformation darbre par Yves Bekkers.
Rappel (très) succint d’éléments techniques (XML, DTD, XSL, PHP)
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.
M. Larooussi Formatage de documents - CSS École dété INSAT Août 2006.
Chapitre 9 Les sous-programmes.
XSLT : trier et mettre en valeur le contenu d’un document XML
1 Couplage dun langage de contrôle de formatage avec un système de formatage existant DEA ISC : 1 avril 2003 Fateh Boulmaiz
Support des connaissances TP2 XSL-T
XML Plan du cours Introduction au fichier XML
8 - XML Cours XML.
Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB
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.
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
Programmation objet La base.
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
Copyright © 2005 Yves MARCOUX1 Concepts XML de base Yves MARCOUX EBSI - Université de Montréal.
MJ. Blin et M. CsernelPoleInfo31 XML et ses environnements Documents XML bien formés Prologue Arbre d'éléments Attributs Commentaires Entités internes.
Sélection de colonnes (la projection)
François CARCENAC,Frédéric BONIOL ONERA-DTIM Zoubir MAMMERI IRIT
 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
1. Introduction 2. DTD 3. Schémas
XSD XML Schema Definition Année universitaire UP web.
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)
SOAP et les RPC XML SOAP WSDL RPC. Rappels sur le XML Langage avec des balises Très lisible Pour stocker des données Séparation entre contenu et présentation.
XSLT. Les documents XML peuvent avoir dans leur prologue une instruction de traitement xml-stylesheet. Cette instruction de traitement indique au navigateur.
1 er séance SI28 A2004 YIN Lei Emmanuel Eugene. Plan de l’exposé  Introduction au HTML  Le HTML dans le bloc-notes (notepad)  Présentation de Dreamweaver.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
Transcription de la présentation:

le langage les éléments XSLT le langage les éléments

Plan introduction exemple template XSLT

Le langage XSLT Une feuille de style XSLT est composée d'une série de règles modèles. Chaque règle décrit la manière dont un type d'élément doit être traité. XSLT est un langage déclaratif On spécifie la sortie à produire pour un motif d'entrée l'ordre des règles n'a pas d'importance Un langage procédural ennonce les tâches à exécuter et leur ordre.

Transformation date ex P38 XSLT 2eme edition M. Kay

La feuille de style L'entête les règles modèles

La feuille de style L'entête les règles modèles

xmlns:prefix = "namespace-URI" L'entête L'entête standard : <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> Les espaces de noms constitue une partie essentielle de la recommendation XML. Ils permettent de mélanger les balises de plusieurs vocabulaires dans une même feuille. Ils sont identifiés par un URI Utilisation en qualité de préfixe de noms d'élément et d'attribut xmlns:prefix = "namespace-URI"

La feuille de style L'entête les règles modèles

Les règles Pour chaque type d'élément est établie une règle modèle

Les règles <poem> <xsl:template match="poem"> <html> <head> </head> <body> </body> </html> </xsl:template> Création du squelette HTML,

Les règles <poem> <xsl:template match="poem"> <html> <head> <title><xsl:value-of select="title"/></title> </head> <body> </body> </html> </xsl:template>

Les règles <poem> <xsl:template match="poem"> <html> <head> <title><xsl:value-of select="title"/></title> </head> <body> <xsl:apply-templates select="title"/> <xsl:apply-templates select="author"/> <xsl:apply-templates select="stanza"/> <xsl:apply-templates select="date"/> </body> </html> </xsl:template> définition de l'ordre des éléments

Exemple de règle modèle <xsl:template match="stanza"> <p> <xsl:apply-templates select="line"/> </p> </xsl:template> <xsl:template match="line"> <xsl:if test="position() mod 2 = 0"> </xsl:if> <xsl:value-of select="." /> <br /> ">  espace insécable

Exemple de règle modèle <xsl:template match="stanza"> <p> <xsl:apply-templates select="line"/> </p> </xsl:template> <xsl:template match="line"> <xsl:if test="position() mod 2 = 0"> </xsl:if> <xsl:value-of select="." /> <br /> Changement du nœud courant ">  espace insécable

Comportement <stanza> <line> And suddenly the wind comes soft, </line> <line> And Spring is here again; </line> <line> And the hawthorn quickens with buds of green </line> <line>And my heart with buds of pain. </line> </stanza> <xsl:template match="stanza"> <p> <xsl:apply-templates select="line"/> </p> </xsl:template>

Comportement <stanza> <line> And suddenly the wind comes soft, </line> <line> And Spring is here again; </line> <line> And the hawthorn quickens with buds of green </line> <line>And my heart with buds of pain. </line> </stanza> <xsl:template match="stanza"> <p> <xsl:apply-templates select="line"/> </p> </xsl:template>

<p> Comportement <stanza> <line> And suddenly the wind comes soft, </line> <line> And Spring is here again; </line> <line> And the hawthorn quickens with buds of green </line> <line>And my heart with buds of pain. </line> </stanza> <xsl:template match="stanza"> <p> <xsl:apply-templates select="line"/> </p> </xsl:template> <p>

Comportement <p> … <xsl:template match="stanza"> <p> <xsl:apply-templates select="line"/> </p> </xsl:template>

Comportement <stanza> <line> And suddenly the wind comes soft, </line> <line> And Spring is here again; </line> <line> And the hawthorn quickens with buds of green </line> <line>And my heart with buds of pain. </line> </stanza> <xsl:template match="stanza"> <p> <xsl:apply-templates select="line"/> </p> </xsl:template>

Comportement <stanza> <line> And suddenly the wind comes soft, </line> <line> And Spring is here again; </line> <line> And the hawthorn quickens with buds of green </line> <line>And my heart with buds of pain. </line> </stanza> <xsl:template match="line"> <xsl:if test="position() mod 2 = 0"> </xsl:if> <xsl:value-of select="." /> <br /> </xsl:template>

And suddenly the wind comes soft, Comportement <stanza> <line> And suddenly the wind comes soft, </line> <line> And Spring is here again; </line> <line> And the hawthorn quickens with buds of green </line> <line>And my heart with buds of pain. </line> </stanza> <xsl:template match="line"> <xsl:if test="position() mod 2 = 0"> </xsl:if> <xsl:value-of select="." /> <br /> </xsl:template> And suddenly the wind comes soft,

And suddenly the wind comes soft, Comportement <p> And suddenly the wind comes soft, … <xsl:template match="line"> <xsl:if test="position() mod 2 = 0"> </xsl:if> <xsl:value-of select="." /> <br /> </xsl:template> And suddenly the wind comes soft,

<br/> Comportement <stanza> <line> And suddenly the wind comes soft, </line> <line> And Spring is here again; </line> <line> And the hawthorn quickens with buds of green </line> <line>And my heart with buds of pain. </line> </stanza> <xsl:template match="line"> <xsl:if test="position() mod 2 = 0"> </xsl:if> <xsl:value-of select="." /> <br /> </xsl:template> <br/>

Comportement <p> And suddenly the wind comes soft,<br/> … <xsl:template match="line"> <xsl:if test="position() mod 2 = 0"> </xsl:if> <xsl:value-of select="." /> <br /> </xsl:template>

Comportement <stanza> <line> And suddenly the wind comes soft, </line> <line> And Spring is here again; </line> <line> And the hawthorn quickens with buds of green </line> <line>And my heart with buds of pain. </line> </stanza> <xsl:template match="line"> <xsl:if test="position() mod 2 = 0"> </xsl:if> <xsl:value-of select="." /> <br /> </xsl:template>

And Spring is here again; Comportement <stanza> <line> And suddenly the wind comes soft, </line> <line> And Spring is here again; </line> <line> And the hawthorn quickens with buds of green </line> <line>And my heart with buds of pain. </line> </stanza> <xsl:template match="line"> <xsl:if test="position() mod 2 = 0"> </xsl:if> <xsl:value-of select="." /> <br /> </xsl:template> And Spring is here again;

Comportement <p> And suddenly the wind comes soft,<br/> And Spring is here again; … <xsl:template match="line"> <xsl:if test="position() mod 2 = 0"> </xsl:if> <xsl:value-of select="." /> <br /> </xsl:template>

<br/> Comportement <stanza> <line> And suddenly the wind comes soft, </line> <line> And Spring is here again; </line> <line> And the hawthorn quickens with buds of green </line> <line>And my heart with buds of pain. </line> </stanza> <xsl:template match="line"> <xsl:if test="position() mod 2 = 0"> </xsl:if> <xsl:value-of select="." /> <br /> </xsl:template> <br/>

Comportement <p> And suddenly the wind comes soft,<br/> And Spring is here again;<br/> … <xsl:template match="line"> <xsl:if test="position() mod 2 = 0"> </xsl:if> <xsl:value-of select="." /> <br /> </xsl:template>

Comportement <stanza> <line> And suddenly the wind comes soft, </line> <line> And Spring is here again; </line> <line> And the hawthorn quickens with buds of green </line> <line>And my heart with buds of pain. </line> </stanza> <xsl:template match="stanza"> <p> <xsl:apply-templates select="line"/> </p> </xsl:template>

</p> Comportement <stanza> <line> And suddenly the wind comes soft, </line> <line> And Spring is here again; </line> <line> And the hawthorn quickens with buds of green </line> <line>And my heart with buds of pain. </line> </stanza> <xsl:template match="stanza"> <p> <xsl:apply-templates select="line"/> </p> </xsl:template> </p>

Comportement <p> And suddenly the wind comes soft,<br/> And Spring is here again;<br/> And the hawthorn quickens with buds of green<br/> And my heart with buds of pain.<br/> </p> <xsl:template match="stanza"> <p> <xsl:apply-templates select="line"/> </p> </xsl:template>

Résultat <p> </p> … <html> <head> <body>… <p> And suddenly the wind comes soft,<br> And Spring is here again;<br> And the hawthorn quickens with buds of green<br> And my heart with buds of pain.<br> </p> … </body> </html>

Retour sur les étapes

Retour sur les étapes

Retour sur les étapes <xsl:template match="poem"> <html> <head> <title><xsl:value-of select="title"/></title> </head> <body> <xsl:apply-templates select="title"/> <xsl:apply-templates select="author"/> <xsl:apply-templates select="stanza"/> <xsl:apply-templates select="date"/> </body> </html> </xsl:template>

Retour sur les étapes <xsl:template match="poem"> <html> <head> <title><xsl:value-of select="title"/></title> </head> <body> <xsl:apply-templates select="title"/> <xsl:apply-templates select="author"/> <xsl:apply-templates select="stanza"/> <xsl:apply-templates select="date"/> </body> </html> </xsl:template>

template : title <xsl:template match="title"> <div align="center"> <h1> <xsl:value-of select="." /> </h1> </div> </xsl:template>

Retour sur les étapes <xsl:template match="poem"> <html> <head> <title><xsl:value-of select="title"/></title> </head> <body> <xsl:apply-templates select="title"/> <xsl:apply-templates select="author"/> <xsl:apply-templates select="stanza"/> <xsl:apply-templates select="date"/> </body> </html> </xsl:template>

tempalte : author <xsl:template match="author"> <div align="center"> <h2>By <xsl:value-of select="." /> </h2> </div> </xsl:template>

Retour sur les étapes <xsl:template match="poem"> <html> <head> <title><xsl:value-of select="title"/></title> </head> <body> <xsl:apply-templates select="title"/> <xsl:apply-templates select="author"/> <xsl:apply-templates select="stanza"/> <xsl:apply-templates select="date"/> </body> </html> </xsl:template>

Retour sur les étapes <xsl:template match="stanza"> <p> <xsl:template match="poem"> <xsl:apply-templates select="stanza"/> </xsl:template> <xsl:template match="stanza"> <p> <xsl:apply-templates select="line"/> </p> </xsl:template>

Retour sur les étapes <xsl:template match="poem"> <html> <head> <title><xsl:value-of select="title"/></title> </head> <body> <xsl:apply-templates select="title"/> <xsl:apply-templates select="author"/> <xsl:apply-templates select="stanza"/> <xsl:apply-templates select="date"/> </body> </html> </xsl:template>

Retour sur les étapes <xsl:template match="stanza"> <p> <xsl:template match="poem"> <xsl:apply-templates select="stanza"/> </xsl:template> <xsl:template match="stanza"> <p> <xsl:apply-templates select="line"/> </p> </xsl:template>

Retour sur les étapes <xsl:template match="poem"> <html> <head> <title><xsl:value-of select="title"/></title> </head> <body> <xsl:apply-templates select="title"/> <xsl:apply-templates select="author"/> <xsl:apply-templates select="stanza"/> <xsl:apply-templates select="date"/> </body> </html> </xsl:template>

Retour sur les étapes <xsl:template match="stanza"> <p> <xsl:template match="poem"> <xsl:apply-templates select="stanza"/> </xsl:template> <xsl:template match="stanza"> <p> <xsl:apply-templates select="line"/> </p> </xsl:template>

Retour sur les étapes <xsl:template match="poem"> <html> <head> <title><xsl:value-of select="title"/></title> </head> <body> <xsl:apply-templates select="title"/> <xsl:apply-templates select="author"/> <xsl:apply-templates select="stanza"/> <xsl:apply-templates select="date"/> </body> </html> </xsl:template>

Plan Introduction Template

xsl:template <xsl:template> http://www.w3.org/TR/xslt.html#rules Définit un modèle permettant de produire un résultat. il peut être appelé par la comparaison des nœuds avec un motif ou explicitement par son nom. Format <!-- Category: top-level-element --> <xsl:template   match = pattern   name = qname   priority = number   mode = qname>   <!-- Content: (xsl:param*, template) --> </xsl:template>

format <xsl:template   match = pattern   name = qname   priority = number   mode = qname >   </xsl:template> match : le motif est utilisé pour définir les nœuds auxquels s'applique cette règle modèle. en l'absence de cet attribut, il doit y avoir un attribut name.

format name : priority : mode : <xsl:template   match = pattern   name = qname   priority = number   mode = qname >   </xsl:template> name : le nom du modèle en l'absence de cet attribut, il doit y avoir un attribut match. priority : nombre dénotant la priorité de ce modèle mode : seuls les modèles dont le mode correspond sont considérés

Instanciation d'un modèle Une fois qu'un élément <xsl:template> a été sélectionné pour le traitement : en cas d'appel avec <xsl:apply-templates>, le nœud courant et la liste des nœuds courants sont définis selon les exigences. un nouvel espace est alloué dans la pile afin de contenir une nouvelle instance de chaque variable locale définie dans le modéle. le corps du modèle est instancié, ce qui signifie que les nœuds enfants de l'élément <xsl:template> sont eux aussi instanciés. l'espace alloué est suprimé

xsl:apply-template <xsl:apply-template> http://www.w3.org/TR/xslt.html#section-Applying-Template-Rules Définit un ensemble de nœuds à traiter et obtient que le système les traite en sélectionnant une règle modèle appropriée pour chacun de ces nœuds. L'ensemble des nœuds est déterminé par l'attribut select. Format <!-- Category: instruction --> <xsl:apply-templates   select = node-set-expression   mode = qname>   <!-- Content: (xsl:sort | xsl:with-param)* --> </xsl:apply-templates>

xsl:apply-template select : mode : <xsl:apply-templates   select = node-set-expression   mode = qname> </xsl:apply-templates> select : ensemble de nœuds à traiter. Si aucun n'est spécifié, tous les enfants du nœud courant sont traités. mode : Mode traitement. Les règles modèles utilisées pour traiter les nœuds sélectionnés doivent disposer d'un mode de comparaison.

Attribut select Expression si Select est présent, Expression (XPath) définit les nœuds à traiter. Il peut s'agir de nœuds associés au nœud courant ou être une sélection depuis le nœud racine (ref. absolue). Si l'attribut select est omis, les nœuds sont les enfants du nœud courant, nœud élément, texte, commentaire, instruction de traitement. Les nœuds attribut et espace de noms ne sont pas traités. omettre select est équivalent à child::node() : selection de tous les enfants du nœud courant.

Exemple <xsl:apply-template> traite tous les enfants du nœud courant <xsl:apply-template select="para"/> les éléments <para> enfant du nœud courant sont traités <xsl:apply-template select="//*" mode="toto"> traite chaque élément du document en mode "toto"

tri, with-param <xsl:sort> <xsl:with-param> permet de trier avant le traitement des enfants. <xsl:with-param> définit les paramètres mis à disposition des règles.

Exemple <xsl:apply-template select="para"> <xsl:with-param name="indent" select="$i"/> </xsl:apply-template> traite tous les <para>, enfant du nœud courant, en définissant dans chaque modèle appelé, la valeur du paramètre indent selon la valeur de la variable $i <xsl:apply-template select="//book"> <xsl:sort select="@isbn"/> traite les <book> en les triant par ordre croissant de leur attribut isbn

EOF