1 / 44

Les outils de base: Publication avec XML

Les outils de base: Publication avec XML. 1. XPATH 2. XSLT 3. XSLFO 4. XLink, XForms, RSS, … 5. XML et la bureautique. 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.

Download Presentation

Les outils de base: Publication avec XML

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: Publication avec XML 1. XPATH 2. XSLT 3. XSLFO 4. XLink, XForms, RSS, … 5. XML et la bureautique

  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 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 Neige Bonaparte 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 document est produit en sortie XSLT

  10. XSL Stylesheet Publications avec XSL • Plusieurs formats de publication pour un contenu • XSL permet la présentation sur des terminaux variés Format ( Postcript) XML Browser (XHTML, DHTML, HTML) Document XSL Processor Format (XML)pour Word, Excel Format (XML) application e.Commerce format (WML) XSLT

  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 XSLT

  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>) précise: • Une condition spécifiant le sous-arbre du document d’entrée auquel elle s’applique (match=) • Une production spécifiant le résultat de l’application de la règle (contenu) • Il s'agit de règles de production classiques • If <condtition> then <production> • Codées en XML avec espace de nom 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" name="R1" pririty="1"> 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. Processeurs XSLT • Processeurs XSLT conformes à la spécification: • Apache Group (www.apache.org): Xalan • Oracle XDK (www.oracle.com): XML Parser/ XSL Proc. • MSXML .NET • James Clark (www.jclark.com): XT • Saxon • libXML, libXSLT (Unix C) • Browser • Microsoft MSXML et IE 5 ou plus • Netscape supporte XSLT depuis la V6 • Firefox Mozilla • Editeur et debugger • Style Vision de Altova • Oxygen de Synchro • Stylus Studio de Data Direct • CookTop et Tidy (gratuit) XSLT

  19. Quelques éditeurs XSLT

  20. IBM XSL Editor Rendu XML XSLT XSLT

  21. 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 très utilisé : • Pour publier des contenus XML • Pour transformer des formats (EAI, B2B) XSLT

  22. Permet les mises en pages sophistiquées Objets de mise en forme applicables aux résultats avec XSLT Distinction Formatage des pages Formatage des objets à l'intérieur des pages Statiques Dynamiques 3. XSL-FO : le formatage XSL-FO

  23. Principes • Peut s'appliquer aux résultats des feuilles XSLT XSL-FO

  24. Organisation du document • Un document FO est formé d'un élément fo:root qui comprend deux parties distinctes • une description des modèles de pages • fo:layout-master-set • une description du contenu • fo:page-sequence • Le contenu comporte : • Des flux contenant les données mêmes du document • Des éléments statiques dont le contenu se répète sur les pages (en-têtes courants, no de page, etc.) XSL-FO

  25. Objets de formatage • Les objets de formatage sont multiples : • <fo:block> • utilisé pour les blocs de textes, paragraphes, titres… • <fo:display-rule> • ligne de séparation • <fo:external-graphic> • zone rectangulaire contenant un graphisme (SVG) • 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 ………... XSL-FO

  26. Pages portrait ou paysage Pages recto-verso Page de tailles variées Marges multiples Colonnes multiples Entête et pieds de page Caractères unicode Formatage multi-langages Tables des matières générées Multiple directions d'écritures Numérotation des pages Graphiques et SVG Tables, avec entêtes,lignes et colonnes fusionnables Listes Zones flottantes Tris à l'édition Notes de bas de pages Fonctionnalités XSL-FO

  27. <?xml version="1.0" encoding="iso-8859-1"?> <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> <fo:layout-master-set> <fo:simple-page-master master-name="my-page"> <fo:region-body margin="2 cm"/> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference="my-page"> <fo:flow flow-name="xsl-region-body"> <fo:block>Hello, world!</fo:block> </fo:flow> </fo:page-sequence> </fo:root> Element Root Permet de définir le namespace XSL-FO Layout master set Permet de déclarer une ou plusieurs page masters (masque) et page sequence masters pour définir la structure des pages (ici une de 2 cm de marges) Page sequence Les pages sont groupées en séquences et structurées selon la référence au masque. Flow C'est le container du texte utilisateur dans le document. Le nom du flot lit le texte à une zone de la page définie dans le masque. Block C'est le bloc de formatage qui inclut un paragraphe de texte pouvant être produit pas XSLT. XSL-FO: hello World XSL-FO

  28. XSL-FO et XSLT : 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é locale est prioritaire devant l’héritage XSL-FO

  29. Les processeurs XSL-FO • 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 • Antenna House • XSL Formatter http://www.antennahouse.com • RenderX • Génère du PDF http://www.renderx.com • Altova • StyleVision http://www.altova.com/products_xsl.html • XML Mind FO Converter • Génère du RTF http://www.xmlmind.com/foconverter • Autres • Arbortext, Adobe, Scriptura, XMLPDF, APOC, XSL-FO to TeX XSL-FO

  30. XML = format pour la production de publications échangeables sur le web : production d’une source unique en XML ; XSLT = génération automatique de présentations multiples ; XSL-FO = génération de présentations soignées avec pages maîtres et blocs formatés. Questions ? Bilan XSL XSL

  31. 4. Autres spécifications • XLink = liens externes entre documents • XPointer = pointeurs internes à un document • XForms = saisie de formulaires avec XML • RSS = format pour la syndication de contenus XLink et plus

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

  33. Exemples simples • <Annotation xlink:type="simple" href="note1.xml">1</Annotation> • <Auteur xlink:type="simple" title="Créateur" href="http://www.mysite.com/~georges/"> Victor Hugo</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

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

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

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

  37. 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 des boites symboliques à label • Peut être réalisée en XHTML, WML, … • Ajoute en plus des contrôles spécifiques au niveau présentation. XForms

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

  39. La syndication de contenus • RSS (Really Simply Syndication) • méthode simple et efficace pour accéder aux meilleures sources d'information sur le web. • permet aux sites Internet et aux blogs de proposer leur contenu de manière simplifiée. • La plupart des grands sites d'information proposent leur contenu en RSS (ex: Libération, Actustar, …) • Lu et présenté par un agrégateur RSS (e.g., Yahoo) RSS

  40. Que gagne-t-on à utiliser RSS ? • Il y a de nombreux avantages à accéder ainsi à l'information : • l'efficacité -- les toutes dernières infos sont automatiquement rassemblées au même endroit • la variété -- les titres concernant les sujets qui vous intéressent sont mis en évidence • la clarté -- les titres peuvent être affichés en fonction de leur importance et/ou en commençant par le plus récent • l'ordre -- les lettres d'information par email et les favoris négligés peuvent vite devenir encombrants ! RSS

  41. Exemple RSS • <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">  <channel>    <title>XML.com</title>    <link>http://www.xml.com/</link>    <description>XML.com features a rich mix of information and services for the XML community.</description>    <language>en-us</language>        <item>      <title>The .NET Schema Object Model</title>      <link>http://www.xml.com/pub/a/2002/12/04/som.html</link>      <description>Priya Lakshminarayanan describes in detail the use of the .NET Schema Object Model for programmatic manipulation of W3C XML Schemas.</description>      <dc:creator>Priya Lakshminarayanan</dc:creator>      <dc:date>2002-12-04</dc:date>        </item>    <item>      <title>SVG's Past and Promising Future</title>      <link>http://www.xml.com/pub/a/2002/12/04/svg.html</link>      <description>In this month's SVG column, Antoine Quint looks back at SVG's journey through 2002 and looks forward to 2003.</description>      <dc:creator>Antoine Quint</dc:creator>      <dc:date>2002-12-04</dc:date>        </item>  </channel></rss> XForms

  42. 5. Intégration à la bureautique • Stockage • Format des fichiers : XML devient possible • Compatibilité avec l'existant • Feuilles de styles • Modèle d'import et d'export • Des jargons spéciaux • Word ML • Open Document ML Bureautique

  43. Intégration à Office • Word • Format XML spécifique WordML, couvre le format .doc • Professional inclut le support XSLT et la possibilité de créer des schémas utilisateur • Possibilité d'importer et exporter du XML "pur" par application de feuilles de style XSLT • Excel • Format XML spécifique • Importation et exportation de document XML • Support des Web Services • InfoPath • Nouvel outil Office produisant du XML • Construction de formulaires interactifs • FrontPage • Outils pour générer HTML avec XSLT Bureautique

  44. Intégration à Open Office • www.openoffice.org • Suite bureautique Open Source • Initialement développée par SUN • Format natif XML • Définit comme un "standard" Oasis • Le XML est zippé sur disque • Peut référencer du binaire (images, etc.) • http://xml.openoffice.org • Support de formulaire XForms Bureautique

More Related