XSLT. extensible Stylesheet Language Transformations. deuxième partie



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

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

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

Master d Informatique Corrigé du partiel novembre 2010

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

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

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

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

BD et XML : Exercices

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

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

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 BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème

XML : documents et outils

Qu'est-ce que XML? XML : Extensible Markup Language. Exemple de document SGML SGML

GUIDE PRATIQUE déplacements professionnels temporaires en France et à l étranger

Programmation des Applications Réparties. Parsers XML DOM et SAX

XML et DOM. Matériel de cours. mars 1999 version 0.3 dernière modification: 24/3/99

Accès à l'information XML par des requêtes XQuery au travers de son XSchema

Support Infrastructure des applications - 1 / 18 - I. Introduction...2

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

Attaques sur les Web Services. Renaud Bidou

Séance 1 Introduction aux bases de données

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Document Object Model (DOM)

Outils logiciels pour l'ingénierie documentaire

BASE DE DONNÉES XML NATIVE

BASE DE DONNÉES XML NATIVE

L'API DOM : Document Object Model

SII Stage d informatique pour l ingénieur

1 INTRODUCTION ET OBJECTIFS GÉNÉRATION DE PDF AVEC.NET LES SOLUTIONS DE BI AVEC.NET...13

XML et Bases de données. Les bases de données XML natives.

SQL Parser XML Xquery : Approche de détection des injections SQL

Programmation Internet Cours 4

API FTP SMSENVOI V1.1

COMMUNICATION TECHNIQUE N TCV060 Ed. 01. OmniVista 4760 Nb de pages : 18 Date : URGENTE NON URGENTE TEMPORAIRE DEFINITIVE

Une sélection d'éléments docbook

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

Couches 4 à 7 : Traitement des données

XML et recherche d information

Tessi Documents Services ASPONE. Démo Webservices UpValue.

Gestion Électronique de Documents et XML. Master 2 TSM

Adobe Technical Communication Suite 5

L'intégration de Moodle à l'université Rennes 2 Haute Bretagne

Le fichier Merchant Reconciliation XML


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

Structure fonctionnelle d un SGBD

Algorithmique I. Algorithmique I p.1/??

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

NFE204 Bases de données avancées

From supply chain to demand chain

L'essentiel de XML. Cours XML. Olivier Carton

Fiche Technique. Cisco Security Agent

Optimiser moteur recherche

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Système d Analyse des Commandes : Dispositif Technique

Les bases de données

RÉALISATION D UN SITE DE RENCONTRE

Configuration Interface for MEssage ROuting

Obtention via HTTP des fichiers PDF générés par le service de SMS/MMS certifiés

Catalogue des formations Edition 2015

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

XML et travail collaboratif : vers un Web sémantique

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

SEMANTIQUE DES MODELES D'ECHANGE DE DONNEES

Générer du code à partir d une description de haut niveau

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Gestion documentaire (Extraits du CCI version 1.2)

4. SERVICES WEB REST 46

Manuel d intégration API FTP SMS ALLMYSMS.COM

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

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Les mutuelles de prévention

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

Cours Bases de données

Bases de données avancées Introduction

Module http MMS AllMySMS.com Manuel d intégration

Formation HTML / CSS. ar dionoea

Programmation C. Apprendre à développer des programmes simples dans le langage C

CxF - Color exchange Format - Format d'échange de teintes. Le langage universel pour communiquer les teintes de manière numérique.

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Chapitre 7. Le Protocole SNMP 7.1 INTRODUCTION COMPOSANTES POUR L UTILISATION FONCTIONNEMENT LE PAQUET SNMPV1...

34. DOM (Document Object Model)

Infrastructure de Données Spatiales

INTRODUCTION AU DATA MINING

Programmation Internet

Avertissement. La Gestion Electronique de Documents

PUSH MSISDN MODE MAIL 2 SMS

arcopole Studio Annexe 7 Architectures Site du programme arcopole :

Publication et Traitement avec XSL. 1. XPATH 2. XSLT 3. XSLFO 4. Traitement de documents 5. Conclusion

SSIS Implémenter un flux

AWS avancé. Surveiller votre utilisation d EC2

Cours 1 : La compilation

Projet de Semestre. Page Web Didactique de Visualisation d Algorithme. Université de Genève - semestre de printemps 2012

L architecture des services Web

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Transcription:

XSLT extensible Stylesheet Language Transformations deuxième partie

Plan Paramètres Instruction de contrôles Variables Tri

Exemple de référence <?xml version= 1.0 encoding="iso-8859-1"?> <COURS CODE="TC234"> <SUJET>Publication XSLT</SUJET> <ENSEIGNANTS> <NOM>Amann</NOM> <NOM>Rigaux</NOM> </ENSEIGNANTS> <PROGRAMME> <SEANCE ID="1"> Documents XML </SEANCE> <SEANCE ID="2"> Programmation XSLT </SEANCE> <ANNEE>2003</ANNEE> </PROGRAMME> </COURS>

L instruction xsl:call-template Nous avons déjà vu un premier exemple. On peut «nommer» des règles et les appeler par leur nom avec cette instruction. Contrairement à xsl:apply-templates, un appel ne change pas le contexte. On peut passer des paramètres avec xsl:param (voir après)

Exemples <xsl:template name="afficher"> <xsl:value-of select="position()"/> : <xsl:value-of select="."/> </xsl:template> <xsl:template match="nom"> <xsl:call-template name="afficher"/> </xsl:template> <xsl:template match="text()"> <xsl:call-template name="afficher"/> </xsl:template>

Passage de paramètres On peut passer des paramètres à xsl:call-template ou xsl:apply-templates. Avec xsl:param, on définit dans la règle les paramètres attendus. On associe un ou plusieurs xsl:with-param à xsl:call-template ou xsl:apply-templates.

Exemple de paramètre La règle Afficher attend une chaîne. <xsl:template name="afficher"> <xsl:param name="texte" select="string( inconnu )"/> <xsl:value-of select="concat(position(), :, $texte)"/> </xsl:template> texte est le nom du paramètre select donne la valeur par défaut $texte désigne le paramètre

Passage de paramètres : xsl:with-param <xsl:template match="nom"> <xsl:call-template name="afficher"> <xsl:with-param name="texte" select="."/> </xsl:call-template> </xsl:template>

Portée des paramètres Paramètre local : définis dans le corps d une règle; une valeur lui est affectée via appel de la règle. Paramètre global : le paramètre est définis au premier niveaux (fils de xsl:stylesheet) et son valeur est fourni par le processeur au moment de l'activation de la transformation.

Exemple moteur de recherche... <xsl:param name="titre"/> <xsl:param name="seance"/> <xsl:param name="ville"/> <xsl:template match="moteur"> <xsl:for-each select="cinema"> <xsl:if test=" ($titre = or TITRE = $titre) and ($seance = or HEURE >= $seance) and ($ville = or VILLE = $ville)"> <xsl:apply-templates select="." /><p/> </xsl:if> </xsl:for-each> </xsl:template>

Instructions de contrôle if-then choose-when boucle for (déjà vu des exemples)

xsl:if La condition est exprimé via l attribut test, et consiste en un prédicat XPath <xsl:template match="film"> <xsl:if test="annee < 1970"> <xsl:copy-of select="."/> </xsl:if> </xsl:template> Pas de else!

xsl:choose Test à choix multiples : équivalent au case du C <xsl:choose> <xsl:when test= expression1 > Corps de règle 1 </xsl:when> <xsl:when test= expression2 > Corps de règle 2 </xsl:when>... <xsl:otherwise> Corps de règle par défaut </xsl:otherwise> </xsl:choose>

Exemple <xsl:template match="film"> <xsl:choose> <xsl:when test="annee < 1960"> <xsl:value-of select="titre"/> est ancien </xsl:when> <xsl:when test="annee >= 1960"> <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>

Variables Variable = nom + valeur. Plusieurs possibilités : Attribut select avec la valeur (une constante) Attribut select avec une expression XPath : arbre temporaire auquel on peut appliquer une expression XPath. Le contenu de l élément xsl:variable est la valeur de la variable Comme pour les paramètres, variables globales et locales.

3 exemples <xsl:variable name= var1 select= 12 /> <xsl:variable name= var2 select= /COURS/ENSEIGNANTS /> <xsl:variable name= var3 > Ceci est un <mot-cle>contenu</mot-cle> de variable </xsl:variable>

Tri Tri des nœuds traités par xsl:for-each ou xsl:apply-templates avec xsl:sort. Un critère de tri est un expression XPath Après la balise ouvrante de xsl:for-each ou xsl:apply-templates Il peut avoir plusieurs critères qui définissent les différents niveaux de tri. Par défaut les nœuds sont triés sur leur position.

Exemple <xsl:template match="films"> <FILMSTRIES> <xsl:apply-templates select="film"> <xsl:sort select="annee"/> <xsl:sort select="titre"/> </xsl:apply-templates> </FILMSTRIES> </xsl:template>

Exercice <?xml version="1.0" encoding="iso-8859-1"?> <!ELEMENT disques (groupe*, disque*) > <!ELEMENT groupe (nom, membre+) > <!ATTLIST groupe nom ID #REQUIRED> <!ELEMENT nom (#PCDATA) > <!ELEMENT membre (#PCDATA) > <!ELEMENT disque (interprete, titre)> <!ELEMENT interprete EMPTY > <!ATTLIST interprete nom IDREF #REQUIRED> <!ELEMENT titre (#PCDATA) >

XPath Formuler des expressions XPath pour répondre aux requêtes suivantes : Quels sont les noms des groupes? Quels sont les membres du groupe Muse? Dans quel groupe joue Dominique Howard? Quels sont les groupes avec plus de 2 membres? Quels sont les disques du groupe Muse?

XSLT Ecrivez une transformation XSLT pour la création d un document HTML affichant les information dans un document GroupesDisque.