1 / 61

Les outils de base : XPath, XSL, XLink, XForms

Les outils de base : XPath, XSL, XLink, XForms. 1. XPATH 2. XSLT 3. XSLFO 4. XLink 5. XForms 6. Conclusion. 1. XPath : l'adressage XML. XPath Expressions de chemins dans un arbre XML Permet de sélectionner des nœuds par navigation. Document XML. ?. XPath. XPath. XML Path Language

roch
Télécharger la présentation

Les outils de base : XPath, XSL, XLink, XForms

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Les outils de base : XPath, XSL, XLink, XForms 1. XPATH 2. XSLT 3. XSLFO 4. XLink 5. XForms 6. Conclusion

  2. 1. XPath : l'adressage XML • XPath • Expressions de chemins dans un arbre XML • Permet de sélectionner des nœuds par navigation Document XML ? XPath

  3. XPath • XML Path Language • 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) • Xpath permet • de rechercher un élément dans un document • d'adresser toute sous partie d'un document XPath

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

  5. 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

  6. 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

  7. XPath - Exemples • Sections d'un chapitre • /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

  8. XPath - Synthèse XPath

  9. 2. XSLT : la présentation • Permet de transformer un document • régulier ou irrégulier • de XML à XML, XHTML est un cas particulier • De XML à présentation (HTML, texte, rtf, pdf, etc.) • Un document est un arbre • Le processeur XSL parcourt l'arbre et applique les règles de transformations vérifiées (à condition vraie) aux nœuds sélectionnés • Un autre arbre est produit en sortie XSLT

  10. XML XSL Stylesheet Document 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) Browser Netscape/IE (XHTML, DHTML, HTML) XSL Processor Format (XML)pour Word, Excel Format (XML) application e.Commerce format (WML) XSL

  11. Architectures HTML XML Affichage ASP ou JSP S ERVEUR Programme XML HTML Processeur XSL Affichage Fichier XML XML • Affichage • Traitement Processeur XSL Base de données XSL

  12. 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 • Le préfixe généralement utilisé est xsl: XSLT

  13. Exemple de document <?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> <Adresse> <Ville>Roanne</Ville> <Dept>Loire</Dept> </Adresse> </Restaurant> </Guide> XSLT

  14. 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> <xsl:template match="Restaurant"> <P> <I>Restaurant :</I>   <xsl:value-of select="Nom"/></P>  </xsl:template> </xsl:stylesheet> XSLT

  15. 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

  16. 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

  17. Résumé des commandes • <xsl:template>, définir une règle et son contexte • <xsl:apply-templates />, appliquer les transformations aux enfants du nœud courant • <xsl:value-of select … />, extrait la valeur d'un élément sélectionné à partir du nœud courant • <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

  18. Quelques éditeurs XSLT

  19. IBM XSL Editor Rendu XML XSLT XSLT

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

  21. 3. XSLFO : le formatage • Les Objets de mise en forme sont multiples : • <fo:block> utilisé pour les paragraphes, les titres… • <fo:display-rule> ligne de séparation • <fo:display-graphic> zone rectangulaire contenant graphisme • Ils possèdent de nombreuses propriétés • Pour un block on peut définir • la marge gauche et droite • l’espace avant et après le paragraphe • la couleur du texte ………... XSLFO

  22. XSLFO : principes • Ils sont appliqués à un nœud de l ’arbre résultat • Ils sont appelés par l ’espace nominale fo • Syntaxe : <xsl:template match="[motif xpath]" > <fo :[objet-de mise en forme] ([propriété-style]="[valeur]")+> [instructions-de-traitement] </fo:[objet de mise-en-forme]> </xsl:template> XSLFO

  23. XSLFO : Exemple • Définition de propriétés pour la racine • <xsl:template match=‘/’> <fo-display-sequence font-style=‘italic’ start-indent=‘4pt’ end-indent=‘4pt’ font-size=‘18pt’ <xsl:apply-templates/> </fo-display-sequence> </xsl:template • La définition d’une propriété en locale est prioritaire devant l’héritage XSLFO

  24. Les outils XSL • Processeurs XSLT conformes à la spécification: • Apache Group (www.apache.org): Xalan 1.0.1 • Oracle XDK (www.oracle.com): XML Parser 2.0.2 • James Clark (www.jclark.com): XT • Microsoft Internet Explorer 5.0 et plus • Netscape 6 supporte XSLT • Processeur XSLFO • Apache Group : FOP (Formating Object Processor) Génère du PDF http://www.apache.org • JFOR (Open Source) Génère du RTF http://www.jfor.org XSL

  25. XML = SGML léger pour la production de publications web importantes : production d’une source unique en XML ; XSLT = génération automatique de présentations web multiples ; XSLFO = génération automatique sur d’autres supports. Questions ? Bilan XSL XSL

  26. 4. Autres spécifications • XLink = liens externes entre documents • XPointer = pointeurs internes à un document • XForms = saisie de formulaires avec XML XLink et plus

  27. Xlink et les liens • Exprimer des liens entre documents XML • pointe sur une URL • l'URL peut inclure une partie Xpointer • tout élément peut être un lien • 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 XLink et plus

  28. Exemples simples • <Annotation xlink:type="simple" href="note1.xml"> 1 </Annotation> • <Auteur xlink:type="simple" inline="true" href="http://www.e-xmlmedia.com/~georges/"> Georges Gardarin </Auteur> • <Image xlink:type="simple" href="logo.gif"/> • Les attributs doivent être définis dans la DTD • si le document en possède une XLink et plus

  29. 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 Éléments arc définissant les liens Ressource <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 liens étendus XLink et plus

  30. xlink:type 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 Les attributs de XLink XLink et plus

  31. 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 = XPath • child, descendant, ancestor, preceding, following, … • Exemple : <vin2 xlink:type="simple" href="http://www.site.fr/ degustation#xptr(/child::degustation/child::vin[2])" XLink et plus

  32. 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

  33. XForms Submit Protocol 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 <XML> Instance data XForms

  34. 5. 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 XPath version 1.0 • http://www.w3.org/TR/xpath • Recommandation Xlink version 1.0 • http://www.w3.org/TR/xlink Références

  35. EXERCICES ET COMPLEMENTS • Modèle des documents en entrée • Modèle des documents en sortie • Structure d’une feuille de style • Mise en œuvre des transformations

  36. Modèle de document en entrée • Le document transformé doit être un document XML bien formé • Document XML: arbre dont les nœuds sont les éléments et leur contenu (texte) • Pour XSL, la racine du document, les attributs, les namespaces, les instructions de traitement et les commentaires sont aussi vus comme des nœuds • Types de nœuds traités par XSL: • Racine du document (différent de l’élément racine!) • Éléments • Texte • Attributs • Namespaces • Instructions de traitement • Commentaires

  37. Exemple de 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="FFR" TAX="TTC">1874</PRIX> </ARTICLE> <ARTICLE> … </ARTICLE> </CATALOGUE>

  38. Arbre correspondant Racine Les attributs apparaissent comme des fils de l’élément auquel ils s’appliquent <?xml-stylesheet href="style1.xsl" type="text/xsl"?> Catalogue Article Article Prix Reference Prix="FFR" 1874 JT3006 Tax="TTC"

  39. Modèle de document en sortie • En général, le document produit est un document XML • Document complet • Fragment de document bien formé • La norme prévoit deux autres types de documents produits: • Un type HTML, qui permet de transformer le HTML bien formé (ex: <BR/>) en HTML standard (ex: <BR>) • Un type texte, qui permet de générer des formats non balisés de type RTF, Postscript, TeX. • Le type de format de sortie est contrôlé par l’élément xsl:output

  40. Structure d’une feuille XSL • Une feuille de style XSL contient une liste de règles de transformation • Chaque règle (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 • XSL utilise XML pour décrire les règles de transformation: • <xsl:stylesheet> est l’élément racine d’une feuille de style XSL • 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

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

  42. Que fait l'exemple? • La première règle: • Remplace l'élément racine <CATALOGUE> par l'élément <html> • Le contenu de <html> est le résultat de la transformation du contenu de <CATALOGUE> par les autres règles de la feuille de style • 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)

  43. Mise en œuvre • 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é

  44. Architectures ASP ou JSP HTML S ERVEUR XML Programme Affichage XML Processeur XSL XML • Traitement • Affichage XML Fichier HTML Processeur XSL PS PDF WML XML HTML Base de données Affichage Processeur XSL

  45. 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

  46. 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

  47. 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

  48. 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"?>

  49. LES RÈGLES XSL • Définition d'une règle • La génération du résultat • L'élément <xsl:apply-template> • L'élément <xsl:value-of> • L'élément <xsl:for-each>

More Related