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
P a ttern
N om
N o m [0 ]
E x em p le
sec tio n
sec tio n [0 ]
S ig n ifica tion
Sélectio nn e les élém e nts d e no m d o nné
Sélectio nn e le p rem ie r élém en t ay ant le no m d o nné
N o m [end ()] sec tio n [en d ()] Sélectio nn e le d ern ie r élém ent a ya nt u n no m d o nné
|
/
D ro ite|G a u ch e Ind iq ue u ne a lte rn ative (un nœ ud O U b ien l'a u tre (o u les d eux ))
/
Sélectio nn e le nœ ud ra cine d 'un e arb o resce nc e
/arb re /N o m /liv re/ch a p itre Sélectio nn e les nœ ud s d esc end a nts p ar la b alise d e no m do nné d e l'arb re
*
*
M o tif "jo ker" d ésign ant n 'im p o rte q uel é lém e nt
//
//p erso n n e
.
.
C arac térise le nœ ud co urant
..
..
D ésig ne le nœ ud p are nt. P erm et d e rem o nter d 'u n nive au d an s
l'arb o resc en ce
@
@ nom
Ind iq ue to us les d esce nd ants d 'u n nœ ud
Ind iq ue u n attrib ut caractéristiq u e (@ n o m d ésigne la v ale ur d e l'attrib ut).
L a no ta tio n @ * d ésign e to us le s attrib uts d 'un élém e nt
tex t()
tex t()
ID ()
ID ('a 2 5 46 ')
Sélectio nn e l'élém en t d o nt l'id e ntifia nt (la v ale ur d e l'attrib ut ID ) est c elui
sp écifié e n p aram è tre
C o m m ent()
C o m m en t()
D ésig ne to u s le s nœ ud s co m m entaires
N o d e()
XPath
N o d e()
D ésig ne le co nten u d 'u n élém en t (le tex te co ntenu entre ses b alises)
D ésig ne to u s le s no eud s
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
- IB M X S L E d ito r v e rs io n :
1 .0 p re v ie w re le a se 2
p la tfo rm s :
Java
lic e n s e :
F re e
d e v e lo p e r:
re v is e d :
A lp h a w o rk s , IB M
2 1 ja n 2 0 0 0
E diteur m ulti-fram e et outils de m ise au point – A lphaw ork d 'IB M
- S tylu s S tu d io v e rs io n :
p la tfo rm s :
lic e n s e :
d e v e lo p e r:
re v is e d :
4 .6
W ind o w s N T / 2 0 0 0
C o m m e rcia l; 3 0 d a y e v a lu a tio n a va ila b le .
E x c e lo n C o rp o ra t io n
06 m ar 2003
E diteur de E xcelon (P rogress); creation X S L et m ise au p oint
- X M L T ran sfo rm v e rs io n :
p la tfo rm s :
lic e n s e :
d e v e lo p e r:
re v is e d :
1 .1 .0
Java
C o m m e rcia l; fre e e va lu atio n ve rsio n a v a ilab le
T IB C O S o ftw a re In c.
2 2 fe b 2 0 0 2
E diteur de T ibco pour les transform ations X S L à X S L
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
Descargar

Formation