Title: Publication de XML : XSL XPath, XLink, XForms
1Publication de XML XSLXPath, XLink, XForms
- 1. Introduction
- 2. XPATH
- 3. XSLT
- 4. XSLFO
- 5. XLink et RDF
- 6. XForms
- 7. Conclusion
21. 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 laffichage - Il est beaucoup plus puissant que CSS
- Véritable langage de programmation par règles
XSL
3Publications avec XSL
- Plusieurs formats de publication dun même jeu de
données - Il permet la présentation sur des terminaux
variés
Format ( PDF)
Browser Netscape/IE (XHTML, DHTML, HTML)
XSL Processor
Format (XML) pour Word, Excel
Format (XML) application e.Commerce
format (WML)
XSL
4Architectures
HTML
XML
Affichage
ASP ou JSP
S ERVEUR
Programme
XML
HTML
Processeur XSL
Affichage
Fichier
XML
XML
Processeur XSL
Base de données
XSL
5Principe de fonctionnement
Impression
Document XML
Formatage
Transformation
ProcesseurXSL-FO
ProcesseurXSLT
Publicationen ligne
HTML/WML
Feuille de styleXSL
Applications
XML
XSL
6XSLT 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
XSL
7Les outils XSL
- Processeurs XSLT conformes à la spécification
- Apache Group (www.apache.org) Xalan 1.0.1
(ex-LotusXSL dIBM) - 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
XSL
82. 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 dautres standards W3C (XQuery,
XPointer, ...) - XPath est un langage dexpressions permettant de
sélectionner des parties dun document XML
XPath
9XPath
- 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)
- XSL s'appuie sur Xpath
- permet de rechercher un élément dans un document
- permet d'adresser toute sous partie d'un document
XPath
10XPath - Parcours d'arbre
- Xpath opère sur l'arbre d'un document
racine
ltlivre auteur "Hugo"gt lttitregtLes
chatimentslt/titregt ltchapitregt
ltsectiongtBuonaparte lt/sectiongt
ltsectiongtNeigelt/sectiongt lt/chapitregt
lt/livregt
livre
Auteur "Hugo"
chapitre
chapitre
titre
section
section
Les chatiments
Neige
Buonaparte
XPath
11XPath - 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
12Syntaxe et sémantique
- Cheminement élémentaire
- directionsélecteurpredicat
- 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 _at_attribut)
- Prédicat
- Fonction(nœud) valeur
XPath
13XPath - Exemples
- Sections d'un chapitre
- /childlivre/childchapitre/childsection
- /livre/chapitre/section
- Texte du chapitre 1 section 2
- /descendantchapitreposition()
1/childsectionposition() 2/childtext() - //chapitre1/section2/text()
XPath
14Xpath - Synthèse
XPath
153. XSLT
- Permet de transformer un document
- régulier ou irrégulier
- de XML à XML
- XHTML est un cas particulier
- Un document est un arbre comportant
- 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
XSLT
16Les feuilles de style
- Une feuille de style XSL
- est un document XML de racine ltxslstylesheetgt
- contient une liste de règles de transformation
ltxsltemplategt - Chaque règle (ltxsltemplategt) est définie par
- Une condition spécifiant le sous-arbre du
document dentrée auquel elle sapplique - Une production spécifiant le résultat de
lapplication 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
XSLT
17Exemple de document
- lt?xml version"1.0" ?gt
- ltGuidegt
- ltRestaurant Categorie""gt
- ltNomgtLe Romantiquelt/Nomgt
- ltAdressegt
- ltVillegtCabourglt/Villegt
- ltDeptgtCalvadoslt/Deptgt
- lt/Adressegt
- lt/Restaurantgt
- ltRestaurant Categorie""gt
- ltNomgtLes TroisGroslt/Nomgt
- ltAdressegt
- ltVillegtRoannelt/Villegt
- ltDeptgtLoirelt/Deptgt
- lt/Adressegt
- lt/Restaurantgt
- lt/Guidegt
XSLT
18Exemple de feuille de style XSL
- lt?xml version"1.0" ?gt
- ltxslstylesheet xmlnsxsl"http//www.w3.org/xsl"
gt - ltxsltemplate match"/"gt
- lthtmlgtltheadgtltBgtESSAI XSLlt/Bgtlt/headgt ltbodygt
- ltxslapply-templates/gtlt/bodygtlt/htmlgt
- lt/xsltemplategt
- ltxsltemplate match"Guide"gt
- ltH1gtBONJOUR LE GROUPE XMLlt/H1gt
- ltH2gtSUIVEZ LE GUIDElt/H2gt
- ltxslapply-templates /gt
- lt/xsltemplategt
- ltxsltemplate match"Restaurant"gt
- ltPgt ltIgtRestaurant lt/Igt
- ltxslvalue-of select"Nom"/gtlt/Pgt
- lt/xsltemplategt
- lt/xslstylesheetgt
XSLT
19Les règles de production
- Définition des règles par ltxsltemplate gt
- 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 ltcall-templategt) - 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
- ltxsl template match"/"gt
- ltxsl template match"auteur"gt
XSLT
20La génération du résultat
- Le contenu de l'élément ltxsltemplategt 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
- ltxslapply-templatesgt
- ltxslfor-eachgt
- Copie du contenu du nœud sélectionné
- ltxslvalue-of select gt
XSLT
21Exercice document XML
- lt?xml version"1.0" encoding"iso-8859-1"?gt
- lt?xml-stylesheet href"style1.xsl"
type"text/xsl"?gt - ltCATALOGUEgt
- ltARTICLEgt
- ltREFERENCEgtJT3006lt/REFERENCEgt
- ltPRIX UNIT "Euro" TAX"TTC"gt1874lt/PRIXgt
- lt/ARTICLEgt
- ltARTICLEgt
-
- lt/ARTICLEgt
- lt/CATALOGUEgt
XSLT
22Arbre correspondant
Racine
lt?xml-stylesheet ...
Catalogue
Article
Article
Reference
Prix
Prix " Euro"
1874
JT3006
- Les attributs apparaissent comme des fils de
lélément auquel ils sappliquent
Tax"TTC"
XSLT
23Exemple de feuille de style
- lt?xml version"1.0"?gt
- ltxslstylesheet version"1.0" xmlnsxsl"http//
http//www.w3.org/xsl"gt - ltxsltemplate match"CATALOGUE"gt
- lthtmlgt
- ltxslapply-templates/gt
- lt/htmlgt
- lt/xsltemplategt
- ltxsltemplate match"ARTICLE"gt
- ltPgt
- ltxslapply-templates/gt
- lt/Pgt
- lt/xsltemplategt
- lt/xslstylesheetgt
XSLT
24Que fait l'exemple?
- La première règle
- Remplace l'élément racine ltCATALOGUEgt par
l'élément lthtmlgt - L element ltxslapply-templates/gt indique qu il
faut appliquer le traitement à tous les enfants
directs de la racine - La seconde règle
- Remplace chaque élément ltARTICLEgt par un élément
ltPgt - Le contenu de ltPgt est le texte (sans les balises)
contenu dans les descendants de l'élément
ltARTICLEgt (règle par défaut)
XSLT
25Résumé des commandes
- ltxsltemplategt, définir une règle et son
contexte - ltxslapply-templates/gt, appliquer les
transformations - ltxslfor-eachgt, définir un traitement itératif
- ltxslpigt, générer une processing instruction
- ltxslelementgt, générer un élément
- ltxslattributegt, générer un attribut
- ltxslifgt, définir un traitement conditionnel
XSLT
26Mise 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é
27Architectures
ASP ou JSP
HTML
S ERVEUR
XML
Affichage
Programme
XML
Processeur XSL
XML
XML
Fichier
HTML
Processeur XSL
PS PDF
WML
XML
HTML
Base de données
Affichage
Processeur XSL
28Transformation statique
- Les documents XML sont transformés à l'avance
- Impression papier
- Stockage HTML sur un site Web standard
- Avantages
- 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
29Transformation sur le serveur
- Les documents XML sont transformés à la demande
par le serveur - Publication Web en HTML
- Échanges inter-application
- Avantages
- 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
30Transformation sur le client
- Le document XML et la feuille XSL sont transmises
par le serveur avant transformation - Publication Web
- Avantages
- 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
31Association 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 - lt?xml-stylesheet href"style1.xsl"
type"text/xsl"?gt
32Les éditeurs
Rendu
XML
XSLT
XSLT
33Bilan 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)
XSLT
345. Autres spécifications
- Xlink liens externes entre documents
- Xpointer pointeurs internes à un document
- Xforms saisie de formulaires avec XML
XLL et plus
35Xlink et les liens
- Différents types de liens
- simple xlinktype "simple"
- étendu xlinktype "extended"
- De véritables associations
- 1-1 en simple, k-n en étendu
- avec rôles possibles
- avec comportements possibles
36Exemples simples
- ltAnnotation xlinktype"simple" href"note1.xml"gt
1 lt/Annotationgt - ltAuteur xlinktype"simple" inline"true"
href"http//www.bonneville.nom.fr/"gtFrancois
Bonnevillelt/Auteurgt - ltImage xlinktype"simple" href"logo.gif"/gt
- Les attributs doivent être définis dans la DTD
- si le document en possède une
XLL et plus
37Les liens étendus
- Ressource
- ltxxx xlinktype"resource" label"..."
title"..." role"..."gtcontenu de l'élémentlt/xxxgt - Locator
- ltxxx xlinktype"locator" label"" title""
role"" href"" /gt - Arc
- ltxxx xlinktype"arc" from"" to"" show""
actuate"" title"" arcrole""gtcontenult/xxxgt
38Les attributs de XLink
- xlinktype
- 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
XLL et plus
39Les 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
- ltconnexion xlinktype"extended"gt
- ltville xlinktype"resource" label"P"
title"Paris"gtLa capitale de la Francelt/villegt - ltpville xlinktype"locator" label"M"
title"Marseille" href"/ville/Marseille.xml" /gt - ltpville xlinktype"locator" label"L"
title"Lyon" href"/ville/Lyon.xml" /gt - ltdistance xlinktype"arc" from"P" to"L" gt420
kmlt/distancegt - ltdistance xlinktype"arc" from"L" to"M" gt600
kmlt/distancegt - ltdistance xlinktype"arc" from"P" to"M" gt900
kmlt/distancegt - lt/connexiongt
XLL et plus
40XPointer
- 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
- child, descendant, ancestor, preceding,
following, - Exemple ltvin2 xlinktype"simple"
href"http//www.site.fr/ degustationxptr(/child
degustation/childvin2)"
XLL et plus
41XForms
- 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 lutilisateur (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.
XForms
42Saisie des formulaires
- Génération et contrôle du message XML
- Contrôle sur le client ou le serveur
XForms Model
XForms User Interface
ltXMLgt Instance data
XForms
436. Conclusion
- XSL pour transformer et présenter
- puissant mais complexe
- problème de performance des processeurs ?
- Recommandation XSL version 1.0
- http//www.w3.org/TR/xsl/
- Recommandation Xlink
- http//www.w3.org/TR/WD-xlink
Références