Publication de XML : XSL XPath, XLink, XForms - PowerPoint PPT Presentation

About This Presentation
Title:

Publication de XML : XSL XPath, XLink, XForms

Description:

la DTD ou le sch ma pour d crire les balises. CSS ou XSL pour adapter ... XSL est utilis pour permettre de convertir les donn es par exemple en HTML pour ... – PowerPoint PPT presentation

Number of Views:168
Avg rating:3.0/5.0
Slides: 44
Provided by: franoisbo
Category:

less

Transcript and Presenter's Notes

Title: Publication de XML : XSL XPath, XLink, XForms


1
Publication de XML XSLXPath, XLink, XForms
  • 1. Introduction
  • 2. XPATH
  • 3. XSLT
  • 4. XSLFO
  • 5. XLink et RDF
  • 6. XForms
  • 7. Conclusion

2
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 laffichage
  • Il est beaucoup plus puissant que CSS
  • Véritable langage de programmation par règles

XSL
3
Publications 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
4
Architectures
HTML
XML
Affichage
ASP ou JSP
S ERVEUR
Programme
XML
HTML
Processeur XSL
Affichage
Fichier
XML
XML
  • Affichage
  • Traitement

Processeur XSL
Base de données
XSL
5
Principe de fonctionnement
Impression
Document XML
Formatage
Transformation
ProcesseurXSL-FO
ProcesseurXSLT
Publicationen ligne
HTML/WML
Feuille de styleXSL
Applications
XML
XSL
6
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

XSL
7
Les 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
8
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 dautres standards W3C (XQuery,
    XPointer, ...)
  • XPath est un langage dexpressions permettant de
    sélectionner des parties dun document XML

XPath
9
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)
  • XSL s'appuie sur Xpath
  • permet de rechercher un élément dans un document
  • permet d'adresser toute sous partie d'un document

XPath
10
XPath - 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
11
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
12
Syntaxe 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
13
XPath - 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
14
Xpath - Synthèse
XPath
15
3. 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
16
Les 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
17
Exemple 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
18
Exemple 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
19
Les 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
20
La 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
21
Exercice 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
22
Arbre 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
23
Exemple 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
24
Que 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
25
Ré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
26
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é

27
Architectures
ASP ou JSP
HTML
S ERVEUR
XML
Affichage
Programme
XML
Processeur XSL
XML
  • Traitement
  • Affichage

XML
Fichier
HTML
Processeur XSL
PS PDF
WML
XML
HTML
Base de données
Affichage
Processeur XSL
28
Transformation 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

29
Transformation 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

30
Transformation 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

31
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
  • lt?xml-stylesheet href"style1.xsl"
    type"text/xsl"?gt

32
Les éditeurs
Rendu
XML
XSLT
XSLT
33
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)

XSLT
34
5. Autres spécifications
  • Xlink liens externes entre documents
  • Xpointer pointeurs internes à un document
  • Xforms saisie de formulaires avec XML

XLL et plus
35
Xlink 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

36
Exemples 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
37
Les 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

38
Les 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
39
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
  • 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
40
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
  • child, descendant, ancestor, preceding,
    following,
  • Exemple ltvin2 xlinktype"simple"
    href"http//www.site.fr/ degustationxptr(/child
    degustation/childvin2)"

XLL et plus
41
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 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
42
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
ltXMLgt Instance data
XForms
43
6. 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
Write a Comment
User Comments (0)
About PowerShow.com