Module BD et Sites Web. Cours 7 XSLT

Documents pareils
XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Production de documents avec XSLT. Production de documents p.1/??

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch

Master d Informatique Corrigé du partiel novembre 2010

<?xml version="1.0" encoding="iso " standalone="yes"?>

PIVOT. Pivot/Querier Documentation technique XML/XSD/XSLT

Document Object Model (DOM)

Malgré son aspect spartiate, Freeplane offre de nombreuses fonctionnalités en particulier dans le domaine de la diffusion des cartes sur le Web.

Les services usuels de l Internet

Organigramme / Algorigramme Dossier élève 1 SI

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Formation HTML / CSS. ar dionoea

Introduction aux concepts d ez Publish

L'API DOM : Document Object Model

SP1 : Intégration d'une vidéo dans une mardi 21/01/2014. page web, fonction du format vidéo et 3 mercredi 22/01/2014

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014

CREATION d UN SITE WEB (INTRODUCTION)

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Annexe C Spécification pour les fichiers importés en format XML

CREATION D UNE EVALUATION AVEC JADE par Patrick RUER (

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Bases de données documentaires et distribuées Cours NFE04

Design et implémentation d un logiciel de validation et de génération de configurations réseaux

GUIDE D UTILISATION DE LA PLATEFORME D ENVOI DE COURRIELS

Autour du web. Une introduction technique Première partie : HTML. Georges-André SILBER Centre de recherche en informatique MINES ParisTech

HTML. Notions générales

Hébergement de site web Damien Nouvel

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Cours de Master Recherche

Module : programmation site Web dynamique Naviguer entre les pages via site map

Les arbres binaires de recherche

Couches 4 à 7 : Traitement des données

Les Bases. Messaoudi Khaled, Boukelal Hanane (Etudiants Informatique ) 2015.

BASE DE DONNÉES XML NATIVE

1 ère Université WEB. Courbevoie Samedi 21 octobre Votre site interactif sur internet.

ARBRES BINAIRES DE RECHERCHE

Gestion Électronique de Documents et XML. Master 2 TSM

Server-side XML. PAS FINI... mais ok pour un début. Originaux. Auteurs et version. Prérequis: Java de base, servlets, GUI et XML

Module BD et sites WEB

Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr

Optimiser moteur recherche

FreeMind. Freeplane XMind. 2 e édition. Bien démarrer avec le Mind Mapping. . Groupe Eyrolles, 2010, ISBN :

Administration du site (Back Office)

Tutoriel QSOS. Version /02/2013

Pack Fifty+ Normes Techniques 2013

Outils logiciels pour l'ingénierie documentaire

Faculté Polytechnique de Mons. Le processus d Extraction, Transformation et Load (ETL) dans des entrepôts de données XML

Le référencement naturel

Gestion documentaire (Extraits du CCI version 1.2)

Bases de données et sites WEB Licence d informatique LI345

Initiation à LabView : Les exemples d applications :

Séance d ED n 5 : HTML et JavaScript

Cours de Génie Logiciel

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Modules Prestashop - ExportCatalogue / EXPORT IMPORT POUR MODIFICATIONS EN MASSE DANS PRESTASHOP VERSION Optim'Informatique

les techniques d'extraction, les formulaires et intégration dans un site WEB

BD et XML : Exercices

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

XML : documents et outils

Algorithmes de recherche

Évaluation et implémentation des langages

Les outils de création de sites web

Document d aide au suivi scolaire

Table des matières Sources

4. SERVICES WEB REST 46

3. RÉALISATION ET QUALIFICATION D UN PROTOTYPE 3.1 Réalisation d un prototype CRÉATION D UNE PAGE WEB STATIQUE AU FORMAT HTML

Informatique : Création de site Web Master 2 ANI TP 1

Évaluation et optimisation de requêtes

Manuel : Comment faire sa newsletter

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Instructions et spécifications pour la transmission en format XML de déclarations par lots. 30 mai 2015 MODULE 1

Algorithmique et structures de données I

Le Web de Données Dan VODISLAV Université de Cergy-Pontoise Master Informatique M2 Plan

Présentation du Framework BootstrapTwitter

La directive INSPIRE en Wallonie: le géoportail et l infrastructure de diffusion des géodonnées en Région wallonne (InfraSIG(

INF6304 Interfaces Intelligentes

Tutoriel : Feuille de style externe

SPIP 1.9. Créer son site avec des outils libres. Michel-Marie Maudet Anne-Laure Quatravaux Dominique Quatravaux. Avec la contribution de Perline

Chapitre 5 : Flot maximal dans un graphe

Construction d un Site Internet Dynamique avec Joomla René-Yves Hervé, Ph.D.

Programmation Web. Madalina Croitoru IUT Montpellier

Référencement Naturel ou SEO Search Engine Optimization

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Présentation Serveur Apache et pour RePeGlio

GoodReader pour ipad. gestion des photos

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Formation Optimiser ses campagnes ing

Projet en nouvelles technologies de l information et de la communication

BIRT (Business Intelligence and Reporting Tools)

Quatrième partie IV. Test. Test 15 février / 71

NFE204 Bases de données avancées

Formats d images. 1 Introduction

SCIENCES DE L ÉDUCATION

Ateliers de formation Internet. L ing

PROSOP : un système de gestion de bases de données prosopographiques

Transcription:

Module BD et Sites Web Cours 7 XSLT 1

Plan Instructions XSLT (suite) Chemins complexes Exécution des règles Passage de paramètres Priorités 2

Copie de noeuds Copier des nœuds du document source vers le document résultat : <xsl:copy> copie un seul nœud, sans ses descendants <xsl:copy-of> copie en profondeur, c-à-d copie le nœud et ses descendants, y compris les attributs 3

Branchement conditionnel Instruction <xsl:if > Possède un attribut test dont la valeur est une expression Xpath. L expression est évaluée et renvoie un booléen. Le contenu de l élément <xsl:if> est instancié si l expression est évaluée à true. Instruction <xsl:choose> S utilise avec les éléments <xsl:when> et <xsl:otherwise> 4

Exemple <xsl:stylesheet version 1.0 xmlns:xsl= http://www.w3.org/1999/xsl/transform > <xsl:output method= xml encoding= ISO-8859-1 /> <xsl:template match= FILMS > <xsl:apply-templates select= FILM /> </xsl:template> <xsl:template match= FILM > <xsl:if test= ANNEE < 1970 > <xsl:copy-of select=. /> </xsl:if> </xsl:template> </xsl:stylesheet> 5

Exemple <xsl:template match= FILM > <xsl:choose> <xsl:when test= ANNEE < 1970 > <xsl:value-of select= TITRE /> est ancien </xsl:when> <xsl:when test= ANNEE > 1970 > <xsl:value-of select= TITRE /> est récent </xsl:when> <xsl:otherwise> de quand date <xsl:value-of select= TITRE />? </xsl:otherwise> </xsl:choose> </xsl:template> 6

Boucle Instruction <xsl:for-each> S utilise avec l attribut select L itération s effectue sur l ensemble de nœuds constitué par l expression Xpath de l attribut select. Le contenu de l élément xsl:for-each est instancié successivement pour chaque nœud de l ensemble. 7

Création de nœuds (élément et attribut) XSLT permet de construire des nœuds dans le document résultat: <xsl:attribute name= xx > permet d ajouter un attribut de nom xx à un élément. Le contenu de l élément xsl:attribute définit la valeur de l attribut (c est un corps de règle qui doit envoyer un noeud de type Text.) <xsl:element name= yy > permet d insérer un élément de nom yy dans le document résultat 8

Création de nœuds <xsl:comment> permet de créer des commentaires <xsl:processing-instruction> crée des instructions de traitement <xsl:text> crée un nœud de type text Le contenu de ces éléments est un corps de règle. 9

Chemins complexes Jusqu à présent, on accédait aux fils d un nœud. On peut aussi accéder à tous les descendants accéder aux parents, aux frères, aux neveux, accéder aux attributs effectuer des boucles Le langage d expression de chemins XPath 10

Exemple : Document XML 1 <?xml version= 1.0 encoding= ISO-8959-1?> 2 <?xml-stylesheet href= Salle.xsl type= text/xsl?> 3 <?cocoon-process type= xslt?> 4 <SALLE NO= 1 PLACES= 320 > 5 <FILM> 6 <TITRE>Alien</TITRE> 7 <AUTEUR>Ridley Scott</AUTEUR> 8 <ANNEE>1979</ANNEE> 9 <GENRE>Science-Fiction</GENRE> 10 <PAYS>Etats-Unis</PAYS> 11 <RESUME>près d un vaisseau spatial </RESUME> 12 </FILM> 13 <REMARQUE>réservation conseillée</remarque> 14 <SEANCES> 15 <SEANCE>15:00</SEANCE> 16 <SEANCE>18:00</SEANCE> 17 <SEANCE>21:00</SEANCE> 18 </SEANCES> 19 </SALLE> 11

Exemple: traduction de Salle 1 <xsl:template match= SALLE > 2 <h2>salle No 3 <xsl:value-of select= @NO /></h2> 4 Film: <xsl:value-of select= FILM/TITRE /> 5 de <xsl:value-of select= FILM/AUTEUR /> 6 <ol> <xsl:for-each select= SEANCES/SEANCE > 7 <li><xsl:value-of select=. /></li> 8 </xsl:for-each> 9 </ol> 10 </xsl:template> 12

Le résultat Appliqué au fichier Salle.xml : 1 <h2>salle No1 </h2> 2 Film: Alien 3 De Ridley Scott 4 <ol> 5 <li>15:00</li> 6 <li>18:00</li> 7 <li>21:00</li> 8 </ol> C est un fragment HTML, à intégrer dans un document complet 13

Chemins complexes Descendants : le titre du film est désigné par select= FILM/TITRE Attributs : le numéro de la salle est désigné par select= @NO Boucles : avec xsl:for-each sur l ensemble des séances désignées par select= SEANCES/SEANCE L élément contexte : désigné par le symbole. comme dans select=. 14

Appels de règles En général, on produit un résultat en combinant plusieurs règles : La règle initiale s applique à la racine du document traité ( / ) on produit alors le cadre du document HTML on appelle d autres règles pour la création du résultat 15

Exemple Cadre HTML, puis appel de la règle CINEMA <xsl:template match= / > <html> <head> <title>programme de <xsl:value-of select= CINEMA/NOM /> </title> </head> <body> bgcolor= white > <xsl:apply-templates select= CINEMA /> </body> </html> </xsl:template> 16

Règle CINEMA Exploitation de l élément CINEMA, puis appel à la règle SALLE 1 <xsl:template match= CINEMA > 2 <h1><i> 3 <xsl:value-of select= NOM /> 4 </i></h1><hr/> 5 <xsl:value-of select= ADRESSE /> 6 <i>métro: </i> 7 <xsl:value-of select= METRO /> 8 <hr/> 9 <xsl:apply-templates select= SALLE /> 10 </xsl:template> 17

Arbre XML à transformer Cinema Nom Adresse Metro Salle Film Seances Titre Auteur Annee Genre Pays Resume Seance 18

Vue d ensemble xsl:template match= / xsl:template match= CINEMA html h1 hr xsl:value-of hr xsl:apply-templates i head body i title xsl:apply-templates xsl:value-of Métro: xsl:value-of xsl:value-of Application de la règle SALLE 19

Exécution des règles La première règle, appliquée à la racine du document XML, produit un «squelette» du document HTML (balises html, head, body), puis lance l exécution de la règle CINEMA (qui s applique aux éléments CINEMA). La deuxième règle (CINEMA) produit les informations globales sur le cinéma (nom, adresse, métro), puis lance l exécution de la règle SALLE La règle SALLE s applique aux éléments SALLE du document XML, et produit un sous-arbre HTML pour chacun de ces éléments. 20

Sélection d une règle Que faire quand plusieurs règles sont candidates pour un même noeud? il existe des priorités implicites qui permettent au processeur de choisir on peut aussi donner explicitement une priorité si le choix est impossible : le processeur s arrête. 21

Règles par défaut Quand aucune règle n est sélectionnée, XSLT applique des règles par défaut : La 1ère s applique à la racine et à tous les éléments. Elle déclenche un appel de règle pour tous les fils du nœud courant (apply-templates sans attribut select équivaut à la sélection de tous les fils du nœud courant) La 2 ème s applique aux nœuds de texte et aux attributs. Elle insère le contenu textuel de ces nœuds dans le document résultat. La 3 ème s applique aux commentaires et aux instructions, et elle ne fait rien. Un programme minimal (sans règle), produira le contenu textuel du document auquel il s applique. 22

Priorité implicite Intuition : plus c est «spécifique», plus c est prioritaire On utilise l attribut priority. Priorité 0 : les patterns constitués d une seule étape XPath, avec un nom d élément ou d attribut et sans prédicat Priorité -0.5 les filtres autres qu un nom d élément ou d attribut ont une priorité égale à -0,5 ( node(), * ) Tous les autres ont une priorité de 0.5 (prédicats, plusieurs étapes) 23

Mode Permet de guider le processeur dans le choix d une règle à appliquer. En l absence d un attribut mode, la règle est concernée par tout les apply-templates (qui n utilisent pas alors leur attribut mode). Sinon, le mode de la règle et le mode de apply-templates doivent coïncider. 24

Algorithme de sélection d une règle Pour un nœud sélectionné par apply-templates, toutes les règles ayant un attribut match sont potentiellement concernées. On restreint cette liste aux règles qui ont le même mode que applytemplates (s il y en a) On teste le pattern de l attribut match pour déterminer si le nœud satisfait la règle S il y a plusieurs règles, on garde celles qui ont la plus grande préséance d importation (ordre d importation) S il y a plusieurs règles, on prend celle qui a la plus grande priorité 25

Exemple 1 <?xml version="1.0" encoding="iso-8859-1"?> 2 <FILM> 3 <TITRE>Vertigo</TITRE> 4 <ANNEE>1958</ANNEE><GENRE>Drame</GENRE> 5 <MES>Alfred Hitchcock</MES> 6 <RESUME>Scottie Ferguson, ancien inspecteur de 7 police, est sujet au vertige depuis qu il a vu 8 </RESUME> 9 </FILM> 10 <FILM> 11 <TITRE>Alien</TITRE> 12 <ANNEE>1979</ANNEE><GENRE>Science-fiction</GENRE> 13 <MES>Ridley Scott</MES> 14 <RESUME>Près d un vaisseau spatial échoué sur 15 une lointaine planète, des Terriens en mission 16 </RESUME> 17 </FILM> 26

Programme XSLT Une règle pour <RESUME > qui ne fait rien... 1 <xsl:template match="/"> 2 <xsl:apply-templates/> 3 </xsl:template> 4 5 <xsl:template match="resume"/> 6 7 <xsl:template match="@ * node()" priority="-1"> 8 <xsl:copy> 9 <xsl:apply-templates select="@ * node()"/> 10 </xsl:copy> 11 </xsl:template>... moins prioritaire que les autres. 27

Résultat Résultat : on obtient tout le document, sauf les nœuds RESUME. 1 <?xml version="1.0" encoding="iso-8859-1"?> 2 <FILM> 3 <TITRE>Vertigo</TITRE> 4 <ANNEE>1958</ANNEE><GENRE>Drame</GENRE> 5 <MES>Alfred Hitchcock</MES> 6 </FILM> 10 <FILM> 11 <TITRE>Alien</TITRE> 12 <ANNEE>1979</ANNEE><GENRE>Science-fiction</GENRE> 13 <MES>Ridley Scott</MES> 14 </FILM> 28

Paramètres L élément xsl:param permet de passer des paramètres aux règles. 1. Indiquer (dans la règle) le nom du paramètre et sa valeur par défaut <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ères) <xsl:template name="message"> <xsl:param name="texte" select="string(salut)" /> <xsl:value-of select= "$texte" /> </xsl:template> Si l attribut select est absent, la valeur par défaut est le contenu de l élément xsl:param. <xsl:param name="texte">salut</xsl:param> 29

Passage de paramètres Passer des paramètres à une règle : <xsl:with-param name= "texte" select="string(coucou)"/> Cet élément suit un call-template ou un apply-templates <xsl:template match= / > <xsl:call-template name="message"> <xsl:with-param name="texte" select="string(coucou)" /> </xsl:call-template> <xsl:template> 30

Instructions classiques <xsl:apply-templates/> La liste des nœuds à traiter est constituée des nœuds fils du nœud contexte. Appliquer les règles. <xsl:apply-templates select="p"/> La liste des nœuds à traiter est constituée des nœuds atteints par le chemin p depuis le nœud contexte. Appliquer les règles. <xsl:value-of select="p"/> Recopier dans le flot de sortie la valeur-chaîne de chaque nœud atteint par le chemin p depuis le nœud contexte. <xsl:copy-of select="p"/> Recopier dans le flot de sortie le fragment du document à transformer dont la racine est le nœud atteint par le chemin p depuis le nœud contexte. <xsl:text> t </xsl:text> Recopier dans le flot de sortie le texte t. 31

Conclusion XSLT est un langage adapté au traitement de documents XML : Parcours d un document vu comme un arbre Déclenchement de règles sur certains nœuds association de plusieurs programmes à un même document 32

Bibliographie B. Amann et P. Rigaux : Comprendre XSLT, O Reilly, 2002 Recommandations XSLT sur le site du W3C 33

Traitement des paramètres <xsl:param name= titre /> <xsl:param name= séance /> <xsl:param name= ville /> <xsl:template match="moteur"> <xsl:for-each select="cinema"> <xsl:if test=" CINEMA//TITRE = $titre) and CINEMA//HEURE >= $seance) and CINEMA/VILLE = $ville)"> <xsl:apply-templates select="." /><p/> </xsl:if> </xsl:for-each> </xsl:template> 34