Transcript Formation

Les outils de base: Publication
avec XML
1.
2.
3.
4.
5.
XPATH
XSLT
XSLFO
XLink, XForms, RSS, …
XML et la bureautique
 G. Gardarin
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
III.2
 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.3
 G. Gardarin
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>
Auteur = "Hugo"
<section>Neige</section>
</chapitre>
…
</livre>
livre
chapitre
titre
section
chapitre
section
Les chatiments
Bonaparte
XPath
III.4
Neige
 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.5
 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 ou @attribut)
 Prédicat
• [Fonction(nœud) = valeur]
XPath
III.6
 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.7
 G. Gardarin
XPath - Synthèse
Pattern
Exemple
Signification
Nom
Sélectionne les éléments de nom donné
section
Nom[0]
section[0] Sélectionne le premier élément ayant le nom donné
Nom[end()] section[end()] Sélectionne le dernier élément ayant un nom donné
|
Droite|Gauche Indique une alternative (un nœud OU bien l'autre (ou les deux))
/
Sélectionne le nœud racine d'une arborescence
/
/arbre/Nom /livre/chapitre Sélectionne les nœuds descendants par la balise de nom donné de l'arbre
*
Motif "joker" désignant n'importe quel élément
*
//
//personne Indique tous les descendants d'un nœud
.
Caractérise le nœud courant
.
Désigne le nœud parent. Permet de remonter d'un niveau dans
..
..
l'arborescence
Indique un attribut caractéristique (@nom désigne la valeur de l'attribut).
@
@nom
La notation @* désigne tous les attributs d'un élément
text()
Désigne le contenu d'un élément (le texte contenu entre ses balises)
text()
Sélectionne l'élément dont l'identifiant (la valeur de l'attribut ID) est celui
ID()
ID('a2546')
spécifié en paramètre
Comment() Comment() Désigne tous les nœuds commentaires
Node()
Désigne tous les noeuds
Node()
XPath
III.8
 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.9
 G. Gardarin
Publications avec XSL
 Plusieurs formats de publication pour un contenu
Format ( Postcript)
XML
Browser
Document
(XHTML, DHTML, HTML)
XSL
Processor
Format (XML)
pour Word,
Excel
XSL
Stylesheet
Format (XML)
application
e.Commerce
 XSL permet la présentation sur des terminaux variés
format
(WML)
XSLT
III.10
 G. Gardarin
Architectures
HTML
XML
Programme
XML
Fichier
XML
S
E
R
V
E
U
R
Affichage
ASP
ou
JSP
Processeur
XSL
HTML
Affichage
XML
Processeur
XSL
•Affichage
Base de données
•Traitement
XSLT
III.11
 G. Gardarin
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
III.12
 G. Gardarin
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
III.13
 G. Gardarin
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
III.14
 G. Gardarin
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
III.15
 G. Gardarin
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
III.16
 G. Gardarin
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
III.17
 G. Gardarin
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
•
•
•
•
XSLT
Style Vision de Altova
Oxygen de Synchro
Stylus Studio de Data Direct
CookTop et Tidy (gratuit)
III.18
 G. Gardarin
Quelques éditeurs
- IBM XSL Editor version: 1.0
preview release 2
platforms: Java
license: Free
developer: Alphaworks,
revised: 21
IBM
jan 2000
Editeur multi-frame et outils de mise au point – Alphawork d'IBM
- Stylus S tudio version: 4.6
platforms: Windows
NT/2000
license: Commercial; 30 day evaluation available.
developer: Excelon Corporation
revised: 06 mar 2003
Editeur de Excelon (Progress); creation XSL et mise au point
- XMLTransform version: 1.1.0
platforms: Java
license: Commercial;
free evaluation version available
Software Inc.
revised: 22 feb 2002
developer: TIBCO
Editeur de Tibco pour les transformations XSL à XSL
XSLT
III.19
 G. Gardarin
IBM XSL Editor
XML
XSLT
XSLT
III.20
Rendu
 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.21
 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.22
 G. Gardarin
Principes
 Peut s'appliquer aux résultats des feuilles XSLT
XSL-FO
III.23
 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.24
 G. Gardarin
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
III.25
 G. Gardarin
Fonctionnalités









XSL-FO
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
III.26
 G. Gardarin
XSL-FO: hello World
<?xml version="1.0" encoding="iso-88591"?>
<fo:root
xmlns:fo="http://www.w3.org/1999/X
SL/Format">
<fo:layout-master-set>
<fo:simple-page-master mastername="my-page">
<fo:region-body margin="2 cm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence masterreference="my-page">
<fo:flow flow-name="xsl-regionbody">
<fo:block>Hello, world!</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
XSL-FO
 Element Root
•
Permet de définir le namespace XSL-FO
 Layout master set
•

Page sequence
•

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)
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
•
III.27
C'est le bloc de formatage qui inclut un
paragraphe de texte pouvant être
produit pas XSLT.
 G. Gardarin
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
III.28
 G. Gardarin
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
III.29
 G. Gardarin
Bilan XSL
 XML = format pour la
production de publications
échangeables sur le web :
 Questions ?
• 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.
XSL
III.30
 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.31
 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.32
 G. Gardarin
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
III.33
 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
XLink et plus
 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
>
III.34
 G. Gardarin
Les attributs de XLink
 xlink:type
 actuate
• type de lien
 href
• manuel ou automatique
 label
• référence de l'URL
 title
• étiquette des arcs
 from
• titre du document cible
 role
• source de l'arc
 to
• rôle du document cible
• cible de l'arc
 show
• en place, interne ou
nouveau document
XLink et plus
III.35
 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="http://www.site.fr/
degustation#xptr(/child::degustation/child::vin[2])"
XLink et plus
III.36
 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.37
 G. Gardarin
Saisie des formulaires
 Génération et contrôle du message XML
 Contrôle sur le client ou le serveur
XForms
User
Interface
XForms
Model
XForms Submit Protocol
XForms
III.38
 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.39
 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 email et les
favoris négligés peuvent vite devenir encombrants !
RSS
III.40
 G. Gardarin
Exemple RSS

XForms
<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>
III.41
 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.42
 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.43
 G. Gardarin
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
III.44
 G. Gardarin