2. XML. Cours Web. extended Markup Language (XML) 2. XML 2. XML. extented Markup Language (XML) Lionel Seinturier. Université Pierre & Marie Curie



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

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

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

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

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

XML : documents et outils

Formation HTML / CSS. ar dionoea

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

.. CSS. Damien Nouvel. Damien Nouvel (Inalco) CSS 1 / 15

Gestion Électronique de Documents et XML. Master 2 TSM

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

Programmation Internet Cours 4

Initiation à html et à la création d'un site web

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

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

SII Stage d informatique pour l ingénieur

Les outils de création de sites web

Master d Informatique Corrigé du partiel novembre 2010

Auguria_PCM Product & Combination Manager

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

Petite définition : Présentation :

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

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

1. Installation du Module

HTML, CSS, JS et CGI. Elanore Elessar Dimar

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

HTML. Notions générales

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

Outils logiciels pour l'ingénierie documentaire

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

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Les services usuels de l Internet

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

7.0 Guide de la solution Portable sans fil

JOOMLA 1.5 avancé SUPPORT DE COURS + annexe

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

ECLIPSE ET PDT (Php development tools)

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

Climat Scolaire - Manuel utilisateur - Chapitre 2 : «Créer, Editer et suivi d un texte»

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

Programmation Web. Introduction

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

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

Sage CRM. Sage CRM 7.3 Guide du portable

Plate-forme de tests des fichiers XML virements SEPA et prélèvements SEPA. Guide d'utilisation

La balise object incorporer du contenu en HTML valide strict

BES WEBDEVELOPER ACTIVITÉ RÔLE

Document Object Model (DOM)

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Configuration Interface for MEssage ROuting

Installation de DocBook sur un système Linux

Domaine 1 : S approprier un environnement informatique de travail. Domaine 3 : Créer, produire, traiter et exploiter des données.

Guide d installation de Gael

Exemple de charte d intégration web

Formation : WEbMaster

Sommaire. -1-Computer en bref. Web en bref. Le web 3.0,...la mobilité. Evolution du Web web1.0, web2.0, web2.b, web3.0...

Systèmes d'informations historique et mutations

STID 2ème année : TP Web/PHP

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Manuel de SQUIRRELMAIL à l'usage des étudiants.

Programmation Web. Madalina Croitoru IUT Montpellier

Livre Blanc WebSphere Transcoding Publisher

SOUTENANCE ORALE RAPPORT DE PROJET D INFORMATIQUE

Pour en expliquer le principe, on se limitera à deux exemples :

SYSTRAN 7 Guide de démarrage

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

BD et XML : Exercices

Affichage et manipulation interactive de formules mathématiques dans les documents structurés

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

Manuel d'utilisation du site Deptinfo (Mise en route)

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

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

< Atelier 1 /> Démarrer une application web

HMTL. Exemple de fichier HTML. Structure d un document HTML. Exemple de fichier HTML. Balises HTML. IFT1147 Programmation Serveur Web avec PHP

Outils de traitements de logs Apache

Master Technologies numériques appliquées à l'histoire Deuxième année

PHP 5.4 Développez un site web dynamique et interactif

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

Travaux pratiques avec RapidMiner

Intégrateur Web HTML5 CSS3

SYSTÈMES DE PUBLICATION POUR L INTERNET. Beatep Marie-France Landréa - Observatoire de Paris

OASIS Date de publication

Voici les objectifs de la séance d'aujourd'hui :

Quelques formats de fichiers courants

TP 5 Les CMS, la forme et le fond Internet et Outils (IO2)

Adobe Technical Communication Suite 5

Gestion documentaire (Extraits du CCI version 1.2)

Normalisation et état des lieux de la prise en charge de l amazighe et des tifinaghes

Dévéloppement de Sites Web

Stage «Créer et animer un site Web en équipe»

Authentification avec CAS sous PRONOTE.net Version du lundi 19 septembre 2011

1. Considérations sur le développement rapide d'application et les méthodes agiles

Normes techniques 2011

4. SERVICES WEB REST 46

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

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

RESPONSIVE WEB DESIGN

Les types de fichiers

Transcription:

Cours Web extended Markup Language (XML) Lionel Seinturier Université Pierre & Marie Curie Lionel.Seinturier@lip6.fr extented Markup Language (XML) Constat sur HTML langage très bien adapté à la diffusion d'informations sur le réseau mais peu structuré, pas extensible Nouveaux besoins pour le Web - commerce en ligne - adaptation du contenu au support (téléphones mobiles, assistants personnels,...) - intégration du Web dans les systèmes d'information des entreprises - échange de données : serveurs Web autres applications (SGBD, tableurs,...) -...! 1997 : définition par le W3C de XML 24/7/02 Web 47 Lionel Seinturier Web 48 Lionel Seinturier Principe contenu information "brute" structure organisation du document présentation rendu graphique contenu.sgml contenu.xml structure.dtd contenu présen tation.html structure.dtd + présen tation.dsssl présen tation présen tation.xsl.css SGML 1986 HTML 1989 XML 1997 Structure d'un document XML C'est la définition -del'ensemble des balises autorisées dans le contenu -del'ordre dans lequel elles doivent être utilisées! DTD (Document Type Definition) termes équivalents : type de document, classe de document Notion XML fondamentale Exemple Le document correspondant à une œuvre littéraire comporte - un d'auteur et plusieurs ouvrages - chaque ouvrage a un titre et s'étend éventuellement sur +sieurs tomes numérotés - chaque tome est divisé en chapitre - chaque chapitre a un titre et est divisé en paragraphes - chaque paragraphes comporte du texte Web 49 Lionel Seinturier Web 50 Lionel Seinturier

Document XML Déclaration version XML utilisée DTD utilisée pour ce document Corps du document <!DOCTYPE SYSTEM ".dtd" > <> <>Seinturier</> <>Lionel</> </> Balise <!DOCTYPE... > - : de la balise principale du document - SYSTEM PUBLIC : niveau de diffusion de la DTD (privé public) - ".dtd" : URL de la DTD Règles d'écriture des documents XML Document valide syntaxiquement - respecter la casse des balises <> <INDIVIDU> - toujours clore une balise ouverte <>... </> raccourci pour les balises "vides" <hr></hr> <hr/> - valeur des attributs entre guillemets < id="123"> - ne pas entrelacer des ouvertures et fermetures de balises différentes <>... <>... </>... </> interdit Document conforme àsadtd - toutes les balises utilisées sont définies dans la DTD - elles sont utilisées dans l'odre spécifié dans la DTD <> <> <> : les balises définies dans la DTD.dtd Web 51 Lionel Seinturier Web 52 Lionel Seinturier DTD XML Possibilité d'écrire ses propres DTD ou de réutiliser celles existantes DTD HTML 4.0! XHTML (reformulation en XML de HTML 4.0) Concrètement aucune entre XHTML et HTML 4.0 (mêmes balises) Sauf - utilisation balise <?xml...?> - toutes les balises doivent être en minuscules - le document XHTML doit être valide - le document XHTML doit être conforme Autres DTD existantes - MathML : formules mathématiques - SVG : figures géométriques - CML : description de molécules - AML : format d'échanges de données astroiques! de breuses autres existantes et à venir Définition de DTD XML 1. Définition des balises autorisées <!ELEMENT... > 2. Définition de leurs attributs <!ATTLIST... > 3. Définition de constantes <!ENTITY... > La balise <!ELEMENT... > définit un identificateur de balise untype de balise <!ELEMENT Balise typebalise > Types de base ( = type des données entre <Balise> et </Balise> ) - #PCDATA : du texte brut sans balise - ANY : du texte et/ou des balises - EMPTY : rien! balise "vide" ex. : <HR></HR> ou + simplem. <HR/> Web 53 Lionel Seinturier Web 54 Lionel Seinturier

Définition de DTD XML Tests de conformité / à la DTD Types composés Enchaînement d'autres balises spécifiés à l'aide des opérateurs, séquence ( ) regroupement + répétition 1 ou n fois alternative? optionnelle * répétition 0 ou n fois Erreur en cas de non conformité d'une balise / à son type Exemples <!ELEMENT (, ) > <!ELEMENT (#PCDATA) > <!ELEMENT (#PCDATA) > <!ELEMENT livre (titre,auteur,sommaire?,chapitre+) > <> <>Ochon</> </> <> <>Ochon</> <>Paul</> <>Pierre</> </> <> <>Ochon</> <>Paul</> <age>15</age> </> <> <> Ochon <>Paul</> </> </> Il faut un et un pré Il faut un seul pré La balise <age> n'est pas définie La balise <> ne doit contenir que du texte brut pas de balises Web 55 Lionel Seinturier Web 56 Lionel Seinturier Définition de DTD XML Définition de DTD XML Définition des attributs des balises (définies avec <!ELEMENT... >) La balise <!ATTLIST... > définit un identificateur d'attribut untype d'attribut une valeur par défaut pour l'attribut ou une caractérisation de l'attribut <!ATTLIST Balise Attribut typeattribut valeurpardefaut > ou <!ATTLIST Balise Attribut typeattribut caractérisation > Types possibles pour un attribut ( = type des données entre Attribut=" et " ) - CDATA : du texte - énumération : liste de valeurs légales séparées par - ID : une valeur unique pour cet attribut dans le doc. XML - IDREF : une valeur d' ID existante dans le doc. XML - IDREFS : une liste espacées d' IDREF - NMTOKEN : un mot clé (sans espace) - NMTOKENS : une liste espacées de NMTOKEN Erreur en cas de non conformité d'une valeur / à son type Web 57 Lionel Seinturier Web 58 Lionel Seinturier

Définition de DTD XML Tests de conformité / à une DTD Valeur par défaut : dans le cas d'une énumération Caractérisation d'un attribut - #REQUIRED : attribut obligatoire - #IMPLIED : attribut facultatif - #FIXED valeur : attribut à valeur fixe (ne pouvant être changée) Erreur en cas d'absence d'un attr. #REQUIRED ou de chgt de val. d'un attr. #FIXED Exemples <!ATTLIST nosecuritesociale ID #REQUIRED > <!ATTLIST situation (mineur majeur) "mineur" > <!ATTLIST DeJeuneFille CDATA #IMPLIED > Web 59 Lionel Seinturier <!ELEMENT graphe (noeud arc)* > <!ELEMENT noeud EMPTY > <!ATTLIST noeud numero ID #REQUIRED > <!ELEMENT arc EMPTY > <!ATTLIST arc source IDREF #REQUIRED > <!ATTLIST arc destin IDREF #REQUIRED > <graphe> <noeud> <noeud/> </graphe> <graphe> <noeud numero="12" /> <noeud numero="12" /> </graphe> <graphe> <noeud numero="12" /> <noeud numero="13" /> <arc source="12" destin="14" /> </graphe> L'attr. numero est obligatoire L'attr. numero n'est pas unique L'attr. destin="14" ne fait pas référence à une valeur d' ID existante Web 60 Lionel Seinturier Définition de DTD XML Définition de DTD XML Définition d'entités = définition de constantes Définition d'entités Entités paramètres : utilisables dans une DTD <!ENTITY % constante "valeur" > <!ENTITY % data "(#PCDATA)" > <!ELEMENT %data; >! substitution de %data; par (#PCDATA) Entités : utilisables dans un doc. XML! utilisation : %constante; <!ENTITY constante "valeur" >! utilisation : &constante; <!ENTITY cv "curriculum vitae" > Voici mon &cv;! substitution de &cv; par curriculum vitae Web 61 Lionel Seinturier Entités externes - définies dans un fichier distant - utilisables dans un doc. XML hors d'une DTD <!ENTITY constante SYSTEM "url" >! utilisation : &constante; <!ENTITY liste SYSTEM "http://monserveur.com/liste.xml" > Voici ma &liste;! substitution de &liste; par le contenu du fichier Complément sur les types d'attributs - ENTITY : une entité ou une entité externe - ENTITIES : une liste espacées d' ENTITY Web 62 Lionel Seinturier

Document XML XML Schema Encodage caractères spéciaux < < > > & & Commentaires <!--... --> <!-- Ceci est un commentaire et sera ignoré --> <!-- moins moins inférieur --> --> non <!-- moins moins inférieur --> --> oui Sections de données brutes à ne pas interpréter <![CDATA[... ]]> <![CDATA[ Ici <> n'est pas une balise: c'est du texte ]]> <![CDATA[ crochet crochet supérieur ]]> ]]> non <![CDATA[ crochet crochet supérieur ]]> ]]> oui Web 63 Lionel Seinturier DTD XML pour la définition de DTD Les DTD XML sont définies comme des docs XML λ Avantages - 1seulet même langage pour les docs et la déf. de leurs DTD (plus de balises <!ELEMENT >, <!ATTLIST >, <!ENTITY >,...) - les types de données de base utilisables dans les DTD (#PCDATA, ANY, EMPTY) ont été enrichis (entier, réel, chaîne, date, liste,...) - les types de données de base et ceux construits par l'utilisateur sont dérivables! on peut réutiliser un type déjà définis pour l'enrichir -les groupes d'attributs permettent de factoriser les défs d'attributs et de faciliter leur réutilisation - les schémas XML peuvent être annotés pour faciliter leur documentation Web 64 Lionel Seinturier XML Schema XML Schema <!ELEMENT promotion ()+ > <!ELEMENT (, ) > <!ELEMENT (#PCDATA) > <!ELEMENT (#PCDATA) > <!ATTLIST nosecuritesociale ID #REQUIRED > <element name="promotion" type="promotiontype" /> <complextype name="promotiontype"> <element name="" type="individutype" minoccurs="1" maxoccurs="unbounded" /> <attribute name="nosecuritesociale" type="id" use="required" /> </complextype> <complextype name="individutype"> <sequence> <element name="" type="string"> <element name="" type="string"> </sequence> </complextype> promotion.dtd XML schema équivalent Balises <element name="..." type="..." minoccurs="..." maxoccurs="..." /> Définition de balise :, type, # min et max d'occurrences de la balise Types de données de base : string, byte, integer, boolean, time, date,... <attribute name="..." type="..." use="..." /> Définition d'attribut :, type, utilisation (required, optional, fixed) <complextype name="..."> Définition de type de données utilisateur <sequence> Séquence de balises Web 65 Lionel Seinturier Web 66 Lionel Seinturier

XML NameSpaces (Espaces de mage) XML NameSpaces Utilisation des balises provenant de +sieurs DTD dans un doc. XML Déclaration -attribut réservé xmlns fournissant un et l'url de sa DTD associée - peut être ajouté à n'importe quelle balise (en général, la 1ère du document) - peut être utilisé +sieurs fois <balise xmlns:despace="url associée"... > <html xmlns:m="http://www.w3.org/1998/math/mathml" xmlns:s="http://www.w3.org/2000/svg" > - l'espace de s reste valide jusqu'à la balise fermante (ici </html>) - les balises des DTD doivent être préxifées par DEspace: <s:svg width="2cm" height="0.6cm"> Possibilité de définir un espace par défaut (ie sans ) Exemple Utilisation conjointe de 3 DTD XHTML, SVG (figures géométriques) et MathML (formules mathématiques) <html xmlns="http://www.w3.org/1999/xhtml" xmlns:s="http://www.w3.org/2000/svg" xmlns:m="http://www.w3.org/1998/math/mathml"> <head> <title>exemple d'utilisation des espaces de s</title> </head> <body> <h1>les espaces de s</h1> Web 67 Lionel Seinturier Web 68 Lionel Seinturier XML NameSpaces XML NameSpaces <p>un rectangle en SVG</p> <s:svg width="120" height="35"> <s:rect width="120" height="35" rx="12" fill="blue" stroke="#4c00e5" /> </s:svg> <p>une formule de math en MathML</p> <m:math> <m:mroot>x+y</m:mroot> </m:math> </body> </html> Visualisation avec Amaya www.w3.org/amaya Alternativement, l'attribut xmlns peut être utilisée chaque fois que l'on en a besoin <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>les espaces de s</h1> <svg xmlns="http://www.w3.org/2000/svg" width="120" height="35"> <rect width="120" height="35" rx="12" fill="blue" stroke="#4c00e5" /> </svg> <math xmlns="http://www.w3.org/1998/math/mathml"> <mroot>x+y</mroot> </math> </body> </html>! répétition de xmlns="..." à chaque utilisation de la DTD Web 69 Lionel Seinturier Web 70 Lionel Seinturier

Affichage d'un document XML <!ELEMENT promotion ()+ > <!ELEMENT (, ) > <!ELEMENT (#PCDATA) > <!ELEMENT (#PCDATA) > <!ATTLIST nosecuritesociale ID #REQUIRED > promotion.dtd Affichage d'un document XML 1ère solution : Internet Explorer 5 <!DOCTYPE promotion SYSTEM "promotion.dtd" > <promotion> < nosecuritesociale="271"> <></> <></> </> < nosecuritesociale="171"> <>Ochon</> <>Paul</> </> </promotion> promotion.xml! normal : aucune présentation n'est définie Web 71 Lionel Seinturier Web 72 Lionel Seinturier Affichage d'un document XML extensible Stylesheet Language (XSL) 2ème solution : Internet Explorer 5 + feuille de style CSS { display: block; } { font-family: Arial; font-size: 14pt; font-weight: bold; color: red; } { font-style: italic; color: blue; } <?xml-stylesheet href="promotion.css" type="text/css"?>... Solution provisoire! limitée par les capacités de CSS promotion.css promotion.xml Langage de définition du rendu graphique d'un document XML Composé de 2 parties - XSLT (Transformation) : langage de transformation d'un document XML -XSL FO (Formatting Objects) : directives de mises en forme ( CSS ) XSLT et XSL FO sont des DTD XML! une feuille de style XSL est un document XML qui commence par la balise <xsl:stylesheet>! qui peuvent être utilisées conjointement ou chacun de façon autoe 3 nouvelles solutions pour afficher un document XML -XSLT! transformation XML en XHTML - XSL FO! interprétation directe XML + XSL FO - XSLT + XSL FO! transf. XML + interprét. XSL FO Web 73 Lionel Seinturier Web 74 Lionel Seinturier

Principe XSLT <promotion> <> <></> <></> </> <> <>Ochon</> <>Paul</> </> </promotion> Représentation d'un document à transformer sous la forme d'un arbre Racine Nœud Feuille : "fictive" : une balise incluse : un contenu Notions d'ancêtres Notions de descendants / promotion Ochon promotion.xml Paul Principe XSLT Règles de pattern matching sur un document XML règle = balise + actions <xsl:template match="une balise à détecter"> action à entreprendre lorsque la balise est rencontrée Algorithme pour toutes les règles pour les toutes les balises identiques à celle de la règle appliquer les actions de la règle sur le sous-arbre de la balise Rq : + généralement la balise est une expression XPath (voir + loin) Web 75 Lionel Seinturier Web 76 Lionel Seinturier Actions Les actions peuvent contenir - des balises à générer - des commandes XSLT Principales commandes XSLT <xsl:value-of select="expression de chemin" /> sélectionne le noeud correspondant à l'expression de chemin XPath dans le sous-arbre de la balise <xsl:apply-templates /> réexamine les règles avec le sous-arbre de la balise Exemple XSLT promotion.xml <?xml-stylesheet href="promotion.xsl" type="text/xsl"?>... promotion.xsl <xsl:stylesheet xmlns:xsl="http://www.w3.org/tr/wd-xsl"> <xsl:template match="/"> <h1>le 1er est <xsl:value-of select="promotion//" /> </h1> </xsl:stylesheet> Web 77 Lionel Seinturier Web 78 Lionel Seinturier

Exemple XSLT A partir de la racine - la (1ère) règle est applicable - pour la suite le sous-arbre de / est examiné - <h1>le 1er est est généré - le noeud correspondant à promotion// est généré (il s'agit de ) - </h1> est généré promotion Ochon Paul / sous-arbre Exemple XSLT promotion.xsl <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/tr/wd-xsl"> <xsl:template match="/"> <html><body> <xsl:apply-templates/> </body></html> <xsl:template match="promotion"> <table border="1"> <xsl:apply-templates/> </table> <xsl:template match=""> <tr> <xsl:apply-template/> </tr> <xsl:template match=""> <td> <xsl:value-of select="."/> </td> <xsl:template match=""> <td> <xsl:value-of select="."/> </td> Web 79 Lionel Seinturier Web 80 Lionel Seinturier Exemple XSLT <xsl:template match="/"> <html><body> <xsl:apply-templates/> </body></html> Exemple XSLT (suite) <xsl:template match="promotion"> <table border="1"> <xsl:apply-templates/> </table> Directive <xsl:apply-templates/> Permet l'examen du (des) sous-arbre(s) sélectionné(s) par <xsl:template match=""> La 1ère règle est applicable - <html><body> est généré - le sous-arbre est examiné promotion Ochon Paul / sous-arbre La 2è règle est applicable 2 sous-arbres sont à examiner suite à cette règle - <table border="1"> est généré - on commence par le 1er sous-arbre / promotion Ochon Paul Web 81 Lionel Seinturier Web 82 Lionel Seinturier

Exemple XSLT (suite) <xsl:template match=""> <tr> <xsl:apply-template/> </tr> La 3è règle est applicable 2 sous-arbres sont à examiner suite à cette règle - <tr> est généré - on commence par le 1er (celui de ) <xsl:template match=""> <td> <xsl:value-of select="."/> </td> <xsl:template match=""> <td> <xsl:value-of select="."/> </td> La règle du est applicable - <td> est généré - est généré - </td> est généré! récursion Exemple XSLT (suite) Le 2è sous-arbre du 1er est examiné - la règle du pré s'applique - <td></td> est généré Le 2è est examiné - <tr><td>ochon</td><td>paul</td></tr> est généré - </table> est généré - </body></html> est généré Résultat final Web 83 Lionel Seinturier Web 84 Lionel Seinturier Exemple XSLT (fin) Autres commandes XSLT Arbre transformé / promotion Ochon Paul <td> <tr> <td> <html> <body> <table> <td> Ochon <tr> <td> Paul <xsl:for-each select="pattern"> sélectionne l'ensemble des parties du doc. qui correspondent au pattern <xsl:process> à l'intérieur d'un <xsl:for-each> fournit l'élément suivant dans l'ensemble des parties du doc.! permet d'itérer sur l'ensemble <xsl:if test="pattern">... </xsl:if> test si un pattern est présent ou non <xsl:counter name="string"> définit un compteur <xsl:counter-increment name="string"> incrémente un compteur <xsl:counter-reset name="string"> remet à zéro un compteur Web 85 Lionel Seinturier Web 86 Lionel Seinturier

XPath XPath Expressions de chemin en XML (ie dans les arbres equiv. aux docs XML) promotion// = 1 élément <> fils d'1 élément <> lui-même fils d'1 élément <promotion> promotion// = 1 élément <> ayant pour aïeul 1élément<promotion> Attention : promotion// promotion/ promotion// = 1 élément <> ou 1élément<> ayant pour aïeul 1 élément <promotion> promotion/[]/ = 1 élément <> fils d'1 élément <> ayant un élément fils <> et fils d'1 élément <promotion> [@noss] = 1 élément <> ayant un attribut noss [@noss='271'] = 1 élément <> ayant un attribut noss valant 271 [first-of-type()] [last-of-type()] = 1er/dernier élément <> Combinaisons possibles avec les opérateurs and, or et not promotion/* */ = 1 élément fils de l'élément <promotion> = 1 élément père de l'élément <promotion> Web 87 Lionel Seinturier Web 88 Lionel Seinturier XPath XPath descendant(promotion) = 1 élément descendant de l'élément <promotion> ancestor() = 1 élément aïeul de l'élément <> child(...) = 1 élément enfant ancestor psibling(...) = 1 ainé fsibling(...) = 1 cadet preceding(...) = 1 prédécésseur following(...) = 1 suivant psibling preceding(...) = 1 prédécésseur following(...) = 1 successeur Parcours de l'arbre - de haut en bas et - de gauche à droite! numérotation des noeuds 3 1 2 11 4 9 root() = la racine Valuations possibles ex. : child(2,promotion) Enchaînements possibles ex. : child(2,...).child(1,...) descendant child fsibling Prédécesseurs de 4 : [1..3] Successeurs de 4 : [5..10] 5 7 6 8 10 Web 89 Lionel Seinturier Web 90 Lionel Seinturier

Moteurs XSLT Ressources XML Essentiellement transformation XML vers un langage de balisage (ex. : XHTML) Mais aussi vers PDF, LaTeX, RTF, PostScript,... navigateur navigateur moteur XSLT requête XHTML requête XML + XSLT moteur XSLT serveur serveur Web 91 Lionel Seinturier W3C www.w3.org XML Apache xml.apache.org traduction XML HTML (parser XML, moteur XSLT, support XSL FO) XML software site www.xmlsoftware.com Navigateurs Internet Explorer XML + CSS + XSLT www.microsoft.com/ie/ Mozilla XML + CSS + XSLT www.mozilla.org Netscape 6 XML + CSS home.netscape.com/netscape Opera 5 XML + CSS www.opera.com Visualiseurs de DTD XML Viewer DTD explorer... www.alphaworks.ibm.com/tech/xmlviewer www.mathweb.org/~paul/dtdexplorer/ Web 92 Lionel Seinturier