Publication de XML : XSL XPath, XLink, XForms

Slides:



Advertisements
Présentations similaires
Transformation de documents XML
Advertisements

Domaines nominaux XSLT
Manipulation d’XML avec XSL
Les outils de base : XPath, XSL, XLink, XForms
Publication et Traitement avec XSL
 G. Gardarin Les outils de base: Publication avec XML 1. XPATH 2. XSLT 3. XSLFO 4. XLink, XForms, RSS, … 5. XML et la bureautique.
QuickPlace de LOTUS Logiciel générateur de SITE WEB : Installé sur un serveur (grenet), Permet de créer / gérer / utiliser un site privé, De donner des.
Outils et scénarios d’édition collaborative en Haute École Étienne Vandeput Projet HETICE © CRIFA - ULg.
Présentation de Scribe Votre nouvelle organisation du Réseau Informatique Pédagogique.
Présentation LabPlus v3. Solution novatrice en Technologies de l’information Solution novatrice en Technologies de l’information Application pour la Gestion.
Marcel Bosc Introduction Web Université Paris-13Département informatiqueIUT de Villetaneuse ère année, cours - 1/5.
Les profils du SEDA confection de profil avec Agape.
Logiciel Assistant Gestion d’Événement Rémi Papillie (Chef d’équipe) Maxime Brodeur Xavier Pajani Gabriel Rolland David St-Jean.
Initiation à QuickPlace, janvier Initiation à QuickPlace n Nature de l'outil n Fonctions de base (lecture, création) n Fonctions de gestionnaire.
Cours de HTML suite 3. Sommaire...  Les formulaires. Les formulaires.  Structure basique du formulaire, balise. Structure basique du formulaire, balise.
DIAGRAMME DE DEPLOIEMENT Exposé de: MBALLA MEKONGO Michèle MBOUNA FEUZE William SIEYADJEU Alex Lionel CHOPGWE Leonard NDUMATE Landry TIDJON Lionel.
Créer un site web avec WordPress
Les commandes externes
Recherche Summon - HINARI (Module 3)
Lire et manipuler du XML...
Mener une activité.
Eléments de présentation
Publication site AROEVEN
Cours 12 : Les Web Services et UDDI Mars Version 1.0 -
Plateforme CountrySTAT Aperçu global de la préparation des tableaux dans la nouvelle plateforme CountrySTAT FORMATION DES POINTS FOCAUX SUR LE SYSTEME.
Les Bases de données Définition Architecture d’un SGBD
MOT Éditeur de modèles de connaissances par objets typés
Initiation aux bases de données et à la programmation événementielle
Javadoc et débogueur Semaine 03 Version A16.
Activités algorithmiques
Configuration de Voice VLAN
Cyber-Sphinx Séance 2.
Le CSS Principe de séparation du contenu et de la mise en forme
QoS - Configuration de NBAR (Network-Based Application Recognition)
1 Exemple d’un document (article). 2 XML: eXtensible Markup Language Wikipédia XML (Extensible Markup Language, « langage de balisage extensible ») est.
Notion De Gestion De Bases De Données
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
Introduction à l'évaluation d'accessibilité des sites Web
Package R Markdown: Un outil pour générer des pages html avec R Studio
BALISE HTML5 <audio> : le son sur une page web
</Présentation de solutions documentaires>
Programmation Android Bases De Données, SQL-lite
Structuration du contenu
G.ELGHOUMARI Université ParisII Panthéon-Assas
Diagrammes UML 420-KE2-LG.
Programmation Android Première application Android
Suivi Campagne Principe
5 Analyse avec Designer d'Oracle
Outils de recherche d’informations scientifiques
Catherine Cyrot - bibliothèques numériques - Cours 5
G.ELGHOUMARI Université ParisII Panthéon-Assas
FORMATION POWERPOINT 2007/2010
Serveurs d’applications
Catherine Cyrot - bibliothèques numériques - Cours 5
Présentation générale
20 Données semi-structurées et XML
Programmation Web : Introduction à XML
JDepend - Analyse de la qualité du code Java -
Un Mécanisme d‘Adaptation Guidé par le Contexte en Utilisant une Représentation par Objets Manuele Kirsch Pinheiro Laboratoire LSR – IMAG, Équipe SIGMA.
Elles contiennent des informations autre que géométriques
Formation « Utiliser un site Internet école »
Présenté par Viviane Lévesque
L’analyse de la valeur des projets informatiques
Arbre binaire.
Catherine Cyrot - bibliothèques numériques - Cours 5
MOT Éditeur de modèles de connaissances par objets typés
Qu’est ce qu’une page web? Comment fonctionne un site web?
Site web, Ce qu’il faut savoir ?
Traitement de TEXTE 2 Stage – Semaine 3.
Transcription de la présentation:

Publication de XML : XSL XPath, XLink, XForms 1. Introduction 2. XPATH 3. XSLT 4. XSLFO 5. XLink et RDF 6. XForms 7. Conclusion 21/09/2018

1. Introduction Un document XML publiable : Le document XML lui-même la DTD ou le schéma pour décrire les balises CSS ou XSL pour adapter le format aux besoins XSL = eXtended Style Langage XSL est utilisé pour permettre de convertir les données par exemple en HTML pour l’affichage Il est beaucoup plus puissant que CSS Véritable langage de programmation par règles XSL

Format (XML) pour Word, Excel Publications avec XSL Plusieurs formats de publication d’un même jeu de données Il permet la présentation sur des terminaux variés Format ( PDF) XML Document Browser Netscape/IE (XHTML, DHTML, HTML) XSL Processor Format (XML) pour Word, Excel XSL Stylesheet Format (XML) application e.Commerce format (WML) XSL

Architectures HTML XML Affichage S E R V E U R Programme XML HTML ASP ou JSP S E R V E U R Programme XML HTML Processeur XSL Affichage Fichier XML XML Affichage Traitement Processeur XSL Base de données XSL

Principe de fonctionnement Impression Document XML Document XML Formatage Transformation Processeur XSL-FO Processeur XSLT Publication en ligne HTML/WML Feuille de style XSL Applications XML XSL

XSLT et XSLFO XSL est un langage XML constitué de deux parties: Un langage pour transformer un document XML en un autre (XSLT: Transformations) - Nov. 1999 Un vocabulaire XML pour spécifier des instructions de formatage (XSL-FO: Formating Objects) – Oct. 2001 Une approche commune par règles de production (templates) Les deux parties sont basées sur le même corps de langage Elles évoluent séparément au niveau du W3C XSL

Les outils XSL Processeurs XSLT conformes à la spécification: Apache Group (www.apache.org): Xalan 1.0.1 (ex-LotusXSL d’IBM) Oracle XDK (www.oracle.com): XML Parser 2.0.2 James Clark (www.jclark.com): XT (quasiment conforme) Microsoft Internet Explorer 5.0 et plus supportent la spécification Netscape 6 supporte XSLT Processeur XSLFO Apache Group : FOP (Formating Object Processor) http://www.apache.org XSL

2. XPath : un standard utilisé Expressions de chemins dans un arbre XML Permet de sélectionner des nœuds par navigation Défini séparément Utilisé dans d’autres standards W3C (XQuery, XPointer, ...) XPath est un langage d’expressions permettant de sélectionner des parties d’un document XML XPath

XPath XML Path Language Expressions de chemins communes à : recommandation W3C pour expressions de chemins acceptée le 16 novembre 1999 version 2 en cours d'élaboration Expressions de chemins communes à : XSL Xpointer (liens) XQuery (queries) XSL s'appuie sur Xpath permet de rechercher un élément dans un document permet d'adresser toute sous partie d'un document XPath

XPath - Parcours d'arbre Xpath opère sur l'arbre d'un document racine <livre auteur = "Hugo"> <titre>Les chatiments</titre> <chapitre> <section>Buonaparte </section> <section>Neige</section> </chapitre> … </livre> livre Auteur = "Hugo" chapitre chapitre titre section section Les chatiments Buonaparte Neige XPath

XPath - Expression de chemins Une expression de chemins spécifie une traversée de l'arbre du document : depuis un nœud de départ vers un ensemble de nœuds cibles les cibles constituent la valeur du cheminement Un chemin peut être : absolu commence à la racine /étape1/…/étapeN relatif commence à un nœud courant étape1/…/étapeN XPath

Syntaxe et sémantique Cheminement élémentaire direction::sélecteur[predicat] Directions parent, ancestor, ancestor-or-self child, descendant, descendant-or-self preceding, preceding-sibling following, following-sibling self, attribute, namespace Sélecteur nom de nœud sélectionné (élément ou @attribut) Prédicat [Fonction(nœud) = valeur] XPath

XPath - Exemples Sections d'un chapitre Texte du chapitre 1 section 2 /child::livre/child::chapitre/child::section /livre/chapitre/section Texte du chapitre 1 section 2 /descendant::chapitre[position() = 1] /child::section[position() = 2]/child::text() //chapitre[1]/section[2]/text() XPath

Xpath - Synthèse Sélecteur Nœuds sélectionnés / Racine du document // Tout sous-chemin * Tout élément nom Elément de tag nom . Elément courant @att Attribut de nom att text() Tout nœud de type texte processing-instruction(‘pro') Processing instruction de nom pro comment() Tout nœud commentaire node() Tout nœud id(‘val’) Elément d'identifiant val XPath

3. XSLT Permet de transformer un document régulier ou irrégulier de XML à XML XHTML est un cas particulier Un document est un arbre comportant : Une racine Des éléments Du texte Des attributs Des espaces de noms Des instructions de traitement Des commentaires Un autre arbre de même nature est produit en sortie XSLT

Les feuilles de style Une feuille de style XSL est un document XML de racine <xsl:stylesheet> contient une liste de règles de transformation <xsl:template> Chaque règle (<xsl:template>) est définie par: Une condition spécifiant le sous-arbre du document d’entrée auquel elle s’applique Une production spécifiant le résultat de l’application de la règle Utilisation d'un nom de domaine spécifique Toutes les instructions XSL sont des éléments du namespace "http://www.w3.org/1999/XSL/Transform" Le préfixe généralement utilisé est xsl XSLT

Exemple de document <?xml version="1.0" ?> <Guide>   <?xml version="1.0" ?> <Guide> <Restaurant Categorie="**">  <Nom>Le Romantique</Nom> <Adresse>  <Ville>Cabourg</Ville>   <Dept>Calvados</Dept>   </Adresse>  </Restaurant> <Restaurant Categorie="***">  <Nom>Les TroisGros</Nom> <Ville>Roanne</Ville>   <Dept>Loire</Dept>   </Adresse> </Guide> XSLT

Exemple de feuille de style XSL <?xml version="1.0" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/xsl"> <xsl:template match="/"> <html><head><B>ESSAI XSL</B></head> <body> <xsl:apply-templates/></body></html>  </xsl:template> <xsl:template match="Guide">  <H1>BONJOUR LE GROUPE XML</H1>   <H2>SUIVEZ LE GUIDE</H2>   <xsl:apply-templates />   <xsl:template match="Restaurant"> <P> <I>Restaurant :</I>   <xsl:value-of select="Nom"/></P>  </xsl:template>  </xsl:stylesheet> XSLT

Les règles de production Définition des règles par <xsl:template …> Attributs match: condition de sélection des nœuds sur lesquels la règle s'applique (Xpath) name: nom de la règle, pour invocation explicite (en conjonction avec <call-template>) mode: permet d'appliquer à un même élément des règles différentes en fonction du contexte priority: priorité, utilisé en cas de conflit entre deux règles ayant la même condition Exemples <xsl: template match="/"> <xsl: template match="auteur"> XSLT

La génération du résultat Le contenu de l'élément <xsl:template> est la production de la règle Les éléments du namespace xsl sont des instructions qui copient des données du document source dans le résultat Les autres éléments sont inclus tels quels dans le résultat Instructions pour: Parcourir l'arbre du document source Copier le contenu du document source dans le résultat Parcours de l'arbre: <xsl:apply-templates> <xsl:for-each> Copie du contenu du nœud sélectionné <xsl:value-of select= … > XSLT

Exercice : document XML <?xml version="1.0" encoding="iso-8859-1"?> <?xml-stylesheet href="style1.xsl" type="text/xsl"?> <CATALOGUE> <ARTICLE> <REFERENCE>JT3006</REFERENCE> <PRIX UNIT=  "Euro" TAX="TTC">1874</PRIX> </ARTICLE> … </CATALOGUE> XSLT

Arbre correspondant 1874 JT3006 Racine Catalogue Article Article Prix <?xml-stylesheet ... Catalogue Article Article Prix Reference Prix=   " Euro" 1874 JT3006 Les attributs apparaissent comme des fils de l’élément auquel ils s’appliquent Tax="TTC" XSLT

Exemple de feuille de style <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http:// http://www.w3.org/xsl"> <xsl:template match="CATALOGUE"> <html> <xsl:apply-templates/> </html> </xsl:template> <xsl:template match="ARTICLE"> <P> </P> </xsl:stylesheet> XSLT

Que fait l'exemple? La première règle: La seconde règle: Remplace l'élément racine <CATALOGUE> par l'élément <html> L ’element <xsl:apply-templates/> indique qu ’il faut appliquer le traitement à tous les enfants directs de la racine La seconde règle: Remplace chaque élément <ARTICLE> par un élément <P> Le contenu de <P> est le texte (sans les balises) contenu dans les descendants de l'élément <ARTICLE> (règle par défaut) XSLT

Résumé des commandes <xsl:template>, définir une règle et son contexte   <xsl:apply-templates/>, appliquer les transformations   <xsl:for-each>, définir un traitement itératif   <xsl:pi>, générer une processing instruction <xsl:element>, générer un élément   <xsl:attribute>, générer un attribut   <xsl:if>, définir un traitement conditionnel   XSLT

Mise en oeuvre Trois types de mise en œuvre possible: Transformation statique Transformation dynamique sur le serveur Web Transformation dynamique sur le client Le choix de l'approche dépend: De l'utilisation des documents produits (impression papier, publication Web) Du type de données XML manipulées (statique ou dynamique) Des capacités du serveur Web utilisé Des capacités du client Web utilisé

Architectures HTML S E R V E U R XML Programme Affichage XML XML ASP ou JSP HTML S E R V E U R XML Programme Affichage XML Processeur XSL XML Traitement Affichage XML Fichier Processeur XSL HTML PS PDF WML XML HTML Base de données Affichage Processeur XSL

Transformation statique Les documents XML sont transformés à l'avance: Impression papier Stockage HTML sur un site Web standard Avantages: Pas de problèmes de performance Serveur et client Web standards Inconvénients Impossibilité de gérer des données XML dynamiques Cohérence entre source et résultat

Transformation sur le serveur Les documents XML sont transformés à la demande par le serveur: Publication Web en HTML Échanges inter-application Avantages: Permet de gérer des données XML dynamiques Client Web standard (HTML) Inconvénients: Nécessite un serveur compatible XSL Problèmes de performances sur le serveur

Transformation sur le client Le document XML et la feuille XSL sont transmises par le serveur avant transformation: Publication Web Avantages: Permet de gérer des données dynamiques Serveur Web standard Pas de problèmes de performances sur le serveur Inconvénients: Nécessite un client Web compatible XSL Les données XML ne sont pas filtrées avant envoi

Association document-feuille XSL Transformation statique: Le document XML et la feuille XSL sont deux paramètres du programme de transformation Transformation dynamique: L'association est gérée par une instruction de traitement dans le fichier XML <?xml-stylesheet href="style1.xsl" type="text/xsl"?>

Les éditeurs XML XSLT Rendu XSLT

Bilan XSLT XSLT est un langage très puissant de transformation d'un arbre XML en un autre XSL permet en particulier de publier des données XML sur le Web par transformation en un document HTML standard XSL est utilisé : Pour publier des contenus XML Pour transformer des données (EAI, B2B) XSLT

5. Autres spécifications Xlink = liens externes entre documents Xpointer = pointeurs internes à un document Xforms = saisie de formulaires avec XML XLL et plus

Xlink et les liens Différents types de liens simple xlink:type = "simple" étendu xlink:type = "extended" De véritables associations 1-1 en simple, k-n en étendu avec rôles possibles avec comportements possibles

Exemples simples <Annotation xlink:type="simple" href="note1.xml"> 1 </Annotation> <Auteur xlink:type="simple" inline="true" href="http://www.bonneville.nom.fr/">Francois Bonneville</Auteur> <Image xlink:type="simple" href="logo.gif"/> Les attributs doivent être définis dans la DTD si le document en possède une XLL et plus

Les liens étendus Ressource Locator Arc <xxx xlink:type="resource" label="..." title="..." role="...">contenu de l'élément</xxx> Locator <xxx xlink:type="locator" label="…" title="…" role="…" href="…" /> Arc <xxx xlink:type="arc" from="…" to="…" show="…" actuate="…" title="…" arcrole="…">contenu</xxx>

Les attributs de XLink xlink:type href title role show actuate label type de lien href référence de l'URL title titre du document cible role rôle du document cible show en place, interne ou nouveau document actuate manuel ou automatique label étiquette des arcs from source de l'arc to cible de l'arc XLL et plus

Les liens étendus Associations orientées de M vers N Permettent de relier des éléments entre eux par des arcs étiquetés et ainsi de composer des graphes étiquetés orientés Éléments ressource et locator définissant les nœuds Eléments arc définissant les liens <connexion xlink:type="extended"> <ville xlink:type="resource" label="P" title="Paris">La capitale de la France</ville> <pville xlink:type="locator" label="M" title="Marseille" href="…/ville/Marseille.xml" /> <pville xlink:type="locator" label="L" title="Lyon" href="…/ville/Lyon.xml" /> <distance xlink:type="arc" from="P" to="L" >420 km</distance> <distance xlink:type="arc" from="L" to="M" >600 km</distance> <distance xlink:type="arc" from="P" to="M" >900 km</distance> </connexion> XLL et plus

XPointer Permet de référencer un élément particulier d'un document le document est spécifié par Xlink le Xpointer est ajouté à l'URI séparée par # ou | Pointeur absolue id() : référence un élément d'identifiant donné root() : pointe sur la racine d'un document html() : référence un document HTML Pointeur relatif child, descendant, ancestor, preceding, following, … Exemple : <vin2 xlink:type="simple" href="http://www.site.fr/ degustation#xptr(/child::degustation/child::vin[2])" XLL et plus

XForms Nouvelle génération de formulaires Web Assemblage de formulaires à partir de schéma Schéma = structure + type Contraintes = Dépendances, expressions et calculs XForms User Interfaces est la partie apparente pour l’utilisateur (présentation) XForms User Interfaces intègre toutes les commandes de XHTML Ajoute en plus des contrôles (tags) spécifiques au niveau présentation. XForms

Saisie des formulaires Génération et contrôle du message XML Contrôle sur le client ou le serveur XForms Model XForms User Interface XForms Submit Protocol <XML> Instance data XForms

6. Conclusion XSL pour transformer et présenter puissant mais complexe problème de performance des processeurs ? Recommandation XSL version 1.0 http://www.w3.org/TR/xsl/ Recommandation Xlink http://www.w3.org/TR/WD-xlink Références