G. Gardarin Les outils de base: Publication avec XML 1. XPATH 2. XSLT 3. XSLFO 4. XLink, XForms, RSS, … 5. XML et la bureautique
III.2 G. Gardarin 1. XPath : l'adressage XML XPath Expressions de chemins dans un arbre XML Permet de sélectionner des nœuds par navigation XPath Document XML ?
III.3 G. Gardarin 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
III.4 G. Gardarin XPath - Parcours d'arbre XPath opère sur l'arbre d'un document Les chatiments Buonaparte Neige … racine section Auteur = "Hugo" livre Bonaparte chapitre Neige chapitre section Les chatiments titre XPath
III.5 G. Gardarin 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
III.6 G. Gardarin 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 Prédicat [Fonction(nœud) = valeur] XPath
III.7 G. Gardarin 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
III.8 G. Gardarin XPath - Synthèse XPath
III.9 G. Gardarin 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
III.10 G. Gardarin Publications avec XSL Plusieurs formats de publication pour un contenu XSL permet la présentation sur des terminaux variés XSL Processor XML Document Format ( Postcript) Format (XML) application e.Commerce format (WML) Browser (XHTML, DHTML, HTML) Format (XML) pour Word, Excel XSL Stylesheet XSLT
III.11 G. Gardarin Architectures Fichier Base de données Affichage Traitement SERVEURSERVEUR XML Programme XML ASP ou JSP XSLT Processeur XSL Affichage HTML XML Processeur XSL
III.12 G. Gardarin Les feuilles de style Une feuille de style XSL est un document XML de racine contient une liste de règles de transformation Chaque règle ( ) 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 then Codées en XML avec espace de nom xsl: XSLT
III.13 G. Gardarin Exemple de document Le Romantique Cabourg Calvados Les TroisGros Roanne Loire XSLT
III.14 G. Gardarin Exemple de feuille de style XSL ESSAI XSL BONJOUR LE GROUPE XML SUIVEZ LE GUIDE Restaurant : XSLT
III.15 G. Gardarin Les règles de production Définition des règles par 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 ) 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 XSLT
III.16 G. Gardarin La génération du résultat Le contenu de l'élément 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:, Copie du contenu du nœud sélectionné: XSLT
III.17 G. Gardarin Résumé des commandes , définir une règle et son contexte , appliquer les transformations aux enfants du nœud courant , extrait la valeur d'un élément sélectionné à partir du nœud courant , définir un traitement itératif , générer une processing instruction , générer un élément , générer un attribut , définir un traitement conditionnel XSLT
III.18 G. Gardarin Processeurs XSLT Processeurs XSLT conformes à la spécification: Apache Group ( Xalan Oracle XDK ( XML Parser/ XSL Proc. MSXML.NET James Clark ( 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
III.19 G. Gardarin Quelques éditeurs XSLT
III.20 G. Gardarin IBM XSL Editor XMLXSLT Rendu XSLT
III.21 G. Gardarin 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
III.22 G. Gardarin 3. XSL-FO : le formatage 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 XSL-FO
III.23 G. Gardarin Principes Peut s'appliquer aux résultats des feuilles XSLT XSL-FO
III.24 G. Gardarin 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
III.25 G. Gardarin Objets de formatage Les objets de formatage sont multiples : utilisé pour les blocs de textes, paragraphes, titres… ligne de séparation 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
III.26 G. Gardarin Fonctionnalités 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 XSL-FO
III.27 G. Gardarin XSL-FO: hello World Hello, world! 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
III.28 G. Gardarin XSL-FO et XSLT : Exemple Définition de propriétés pour la racine </xsl:template La définition d’une propriété locale est prioritaire devant l’héritage XSL-FO
III.29 G. Gardarin Les processeurs XSL-FO Apache Group : FOP Formating Object Processor Génère du PDF JFOR (Open Source) Génère du RTF Antenna House XSL Formatter RenderX Génère du PDF Altova StyleVision htmlhttp:// html XML Mind FO Converter Génère du RTF Autres Arbortext, Adobe, Scriptura, XMLPDF, APOC, XSL-FO to TeX XSL-FO
III.30 G. Gardarin Bilan XSL 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 ? XSL
III.31 G. Gardarin 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
III.32 G. Gardarin 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
III.33 G. Gardarin Exemples simples 1 Victor Hugo Les attributs doivent être définis dans la DTD si le document en possède une … XLink et plus
III.34 G. Gardarin 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 Éléments arc définissant les liens Ressource contenu de l'élément Locator Arc contenu XLink et plus
III.35 G. Gardarin Les attributs de XLink 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 XLink et plus
III.36 G. Gardarin 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=" degustation#xptr(/child::degustation/child::vin[2])" XLink et plus
III.37 G. Gardarin 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
III.38 G. Gardarin 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 Instance data XForms Submit Protocol XForms
III.39 G. Gardarin 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
III.40 G. Gardarin 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 et les favoris négligés peuvent vite devenir encombrants ! RSS
III.41 G. Gardarin Exemple RSS XML.com XML.com features a rich mix of information and services for the XML community. en-us The.NET Schema Object Model Priya Lakshminarayanan describes in detail the use of the.NET Schema Object Model for programmatic manipulation of W3C XML Schemas. Priya Lakshminarayanan SVG's Past and Promising Future In this month's SVG column, Antoine Quint looks back at SVG's journey through 2002 and looks forward to Antoine Quint XForms
III.42 G. Gardarin 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
III.43 G. Gardarin 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
III.44 G. Gardarin Intégration à Open Office 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.) Support de formulaire XForms Bureautique