Transcript Formation

Publication de XML : XSL
XPath, XLink, XForms
1. Introduction
2. XPATH
3. XSLT
4. XSLFO
5. XLink et RDF
6. XForms
7. Conclusion
07/07/2015
1
1. Introduction

Un document XML publiable :
–
–
–



Le document XML lui-même
la DTD ou le schéma pour décrire les balises
CSS ou XSL pour adapter le format aux besoins
XSL = eXtended Style Langage
XSL est utilisé pour permettre de convertir les données
par exemple en HTML pour l’affichage
Il est beaucoup plus puissant que CSS
–
Véritable langage de programmation par règles
2
XSL
Publications avec XSL

Plusieurs formats de publication d’un même jeu de données
Format ( PDF)
XML
Document
Browser Netscape/IE
(XHTML, DHTML, HTML)
XSL
Processor
Format (XML)
pour Word,
Excel
XSL
Stylesheet

Format (XML)
application
e.Commerce
Il permet la présentation sur des terminaux variés
format
(WML)
3
XSL
Architectures
HTML
XML
Programme
XML
Fichier
XML
Base de données
S
E
R
V
E
U
R
Affichage
ASP
ou
JSP
Processeur
XSL
HTML
Affichage
XML
Processeur
XSL
•Affichage
•Traitement
4
XSL
Principe de fonctionnement
Document XML
Document XML
Transformation
Processeur
XSLT
Feuille
de style
XSL
Formatage
Impression
Processeur
XSL-FO
HTML/WML
Publication
en ligne
XML
Applications
5
XSL
XSLT et XSLFO

XSL est un langage XML constitué de deux parties:
–
–

Un langage pour transformer un document XML en un autre
(XSLT: Transformations) - Nov. 1999
Un vocabulaire XML pour spécifier des instructions de formatage
(XSL-FO: Formating Objects) – Oct. 2001
Une approche commune par règles de production
(templates)
–
–
Les deux parties sont basées sur le même corps de langage
Elles évoluent séparément au niveau du W3C
6
XSL
Les outils XSL

Processeurs XSLT conformes à la spécification:
–
–
–



Apache Group (www.apache.org): Xalan 1.0.1 (ex-LotusXSL
d’IBM)
Oracle XDK (www.oracle.com): XML Parser 2.0.2
James Clark (www.jclark.com): XT (quasiment conforme)
Microsoft Internet Explorer 5.0 et plus supportent la
spécification
Netscape 6 supporte XSLT
Processeur XSLFO
–
Apache Group : FOP (Formating Object Processor)
http://www.apache.org
7
XSL
2. XPath : un standard utilisé

XPath
–
–

Expressions de chemins dans un arbre XML
Permet de sélectionner des nœuds par navigation
Défini séparément
–
–
Utilisé dans d’autres standards W3C (XQuery, XPointer, ...)
XPath est un langage d’expressions permettant de sélectionner des
parties d’un document XML
8
XPath
XPath

XML Path Language
–
–
–

Expressions de chemins communes à :
–
–
–

recommandation W3C pour expressions de chemins
acceptée le 16 novembre 1999
version 2 en cours d'élaboration
XSL
Xpointer (liens)
XQuery (queries)
XSL s'appuie sur Xpath
–
–
permet de rechercher un élément dans un document
permet d'adresser toute sous partie d'un document
9
XPath
XPath - Parcours d'arbre

Xpath opère sur l'arbre d'un document
<livre auteur = "Hugo">
<titre>Les chatiments</titre>
<chapitre>
<section>Buonaparte </section>
Auteur = "Hugo"
<section>Neige</section>
</chapitre>
…
</livre>
racine
livre
chapitre
titre
section
chapitre
section
Les chatiments
Buonaparte
Neige
10
XPath
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
11
XPath
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]
12
XPath
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()
13
XPath
Xpath - Synthèse
Sélecteur
Nœuds sélectionnés
/
Racine du document
//
Tout sous-chemin
*
Tout élément
nom
Elément de tag nom
.
Elément courant
@att
Attribut de nom att
text()
Tout nœud de type texte
processing-instruction(‘pro')
Processing instruction de nom pro
comment()
Tout nœud commentaire
node()
Tout nœud
id(‘val’)
Elément d'identifiant val
14
XPath
3. XSLT

Permet de transformer un document
–
–
–

Un document est un arbre comportant :
–
–
–
–
–
–
–

régulier ou irrégulier
de XML à XML
XHTML est un cas particulier
Une racine
Des éléments
Du texte
Des attributs
Des espaces de noms
Des instructions de traitement
Des commentaires
Un autre arbre de même nature est produit en sortie
15
XSLT
Les feuilles de style

Une feuille de style XSL
–
–

Chaque règle (<xsl:template>) est définie par:
–
–

est un document XML de racine <xsl:stylesheet>
contient une liste de règles de transformation <xsl:template>
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
–
–
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
16
XSLT
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>
17
XSLT
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>
<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
<body>
18
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">
19
XSLT
La génération du résultat

Le contenu de l'élément <xsl:template> est la production de la
règle
–
–

Instructions pour:
–
–

Parcourir l'arbre du document source
Copier le contenu du document source dans le résultat
Parcours de l'arbre:
–
–

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
<xsl:apply-templates>
<xsl:for-each>
Copie du contenu du nœud sélectionné
–
<xsl:value-of select= … >
20
XSLT
Exercice : 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= "Euro" TAX="TTC">1874</PRIX>
</ARTICLE>
<ARTICLE>
…
</ARTICLE>
</CATALOGUE>
21
XSLT
Arbre correspondant
Racine
<?xml-stylesheet ...
Catalogue
Article
Prix= " Euro"
Article
Prix
Reference
1874
JT3006

Tax="TTC"
Les attributs apparaissent comme
des fils de l’élément auquel ils
s’appliquent
22
XSLT
Exemple de feuille de style
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http:// http://www.w3.org/xsl">
<xsl:template match="CATALOGUE">
<html>
<xsl:apply-templates/>
</html>
</xsl:template>
<xsl:template match="ARTICLE">
<P>
<xsl:apply-templates/>
</P>
</xsl:template>
</xsl:stylesheet>
23
XSLT
Que fait l'exemple?

La première règle:
–
–

Remplace l'élément racine <CATALOGUE> par l'élément <html>
L ’element <xsl:apply-templates/> indique qu ’il faut appliquer le
traitement à tous les enfants directs de la racine
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)
24
XSLT
Résumé des commandes

<xsl:template>, définir une règle et son contexte

<xsl:apply-templates/>, appliquer les transformations

<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
25
XSLT
Mise en oeuvre

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é
26
Architectures
XML
Programme
XML
Fichier
XML
Base de données
XML
ASP
ou
JSP
S
E
R
V
E
U
R
HTML
XML
Processeur
XSL
HTML
Processeur
XSL
PS
PDF
Affichage
Processeur
XSL
•Traitement
•Affichage
HTML
WML
Affichage
27
Transformation statique

Les documents XML sont transformés à l'avance:
–
–

Avantages:
–
–

Impression papier
Stockage HTML sur un site Web standard
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
28
Transformation sur le serveur

Les documents XML sont transformés à la demande
par le serveur:
–
–

Avantages:
–
–

Publication Web en HTML
Échanges inter-application
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
29
Transformation sur le client

Le document XML et la feuille XSL sont transmises par
le serveur avant transformation:
–

Avantages:
–
–
–

Publication Web
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
30
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"?>
31
Les éditeurs
XML
XSLT
XSLT
Rendu
32
Bilan XSLT



XSLT est un langage très puissant de transformation
d'un arbre XML en un autre
XSL permet en particulier de publier des données XML
sur le Web par transformation en un document HTML
standard
XSL est utilisé :
–
–
Pour publier des contenus XML
Pour transformer des données (EAI, B2B)
33
XSLT
5. Autres spécifications

Xlink = liens externes entre documents

Xpointer = pointeurs internes à un document

Xforms = saisie de formulaires avec XML
34
XLL et plus
Xlink et les liens
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
35
Exemples simples

<Annotation xlink:type="simple" href="note1.xml"> 1
</Annotation>

<Auteur xlink:type="simple" inline="true"
href="http://www.bonneville.nom.fr/">Francois
Bonneville</Auteur>

<Image xlink:type="simple" href="logo.gif"/>

Les attributs doivent être définis dans la DTD
–
si le document en possède une
36
XLL et plus
Les liens étendus

Ressource
–

Locator
–

<xxx xlink:type="resource" label="..." title="..."
role="...">contenu de l'élément</xxx>
<xxx xlink:type="locator" label="…" title="…" role="…"
href="…" />
Arc
–
<xxx xlink:type="arc" from="…" to="…" show="…"
actuate="…" title="…" arcrole="…">contenu</xxx>
37
Les attributs de XLink

xlink:type
–


–



rôle du document cible
étiquette des arcs
from
–

manuel ou automatique
label
–
titre du document cible
role
actuate
–
référence de l'URL
title
–

type de lien
href
–

source de l'arc
to
–
cible de l'arc
show
–
en place, interne ou nouveau
document
38
XLL et plus
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
Eléments arc définissant les
liens
<connexion xlink:type="extended">
<ville xlink:type="resource" label="P"
title="Paris">La
capitale
de
la
France</ville>
<pville xlink:type="locator" label="M"
title="Marseille"
href="…/ville/Marseille.xml" />
<pville xlink:type="locator" label="L"
title="Lyon" href="…/ville/Lyon.xml" />
<distance xlink:type="arc" from="P"
to="L" >420 km</distance>
<distance xlink:type="arc" from="L"
to="M" >600 km</distance>
<distance xlink:type="arc" from="P"
to="M" >900 km</distance>
</connexion>
39
XLL et plus
XPointer

Permet de référencer un élément particulier d'un document
–
–

Pointeur absolue
–
–
–

le document est spécifié par Xlink
le Xpointer est ajouté à l'URI séparée par # ou |
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
–
–
child, descendant, ancestor, preceding, following, …
Exemple : <vin2 xlink:type="simple" href="http://www.site.fr/
degustation#xptr(/child::degustation/child::vin[2])"
40
XLL et plus
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.
41
XForms
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
XForms Submit Protocol
42
XForms
6. Conclusion

XSL pour transformer et présenter
–
–

Recommandation XSL version 1.0
–

puissant mais complexe
problème de performance des processeurs ?
http://www.w3.org/TR/xsl/
Recommandation Xlink
–
http://www.w3.org/TR/WD-xlink
43
Références