You are on page 1of 49

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

1. 2. 3. 4. 5. 6. 7. Introduction XPATH XSLT XSLFO XLink et RDF XForms Conclusion

1. Introduction
Un document XML publiable :
Le document XML lui-mme la DTD ou le schma pour dcrire les balises CSS ou XSL pour adapter le format aux besoins

XSL = eXtended Style Langage XSL est utilis pour permettre de convertir les donnes par exemple en HTML pour laffichage Il est beaucoup plus puissant que CSS
Vritable langage de programmation par rgles

XSL

Publications avec XSL


Plusieurs formats de publication dun mme jeu de donnes
Format ( PDF)

XML Document
XSL Processor

Browser Netscape/IE (XHTML, DHTML, HTML)

Format (XML) pour Word, Excel

XSL Stylesheet
Format (XML) application e.Commerce

Il permet la prsentation sur des terminaux varis


format (WML)

XSL

Architectures
XML Programme XML Fichier XML Base de donnes
4

HTML S E R V E U R
ASP ou JSP Processeur XSL

Affichage

HTML Affichage

XML
Processeur XSL

Affichage Traitement

XSL

Principe de fonctionnement

Document XML Transformation Processeur XSLT

Document XML

Formatage Processeur XSL-FO

Impression

HTML/WML Feuille de style XSL

Publication en ligne Applications

XML

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 spcifier des instructions de formatage (XSL-FO: Formating Objects) Oct. 2001

Une approche commune par rgles de production (templates)


Les deux parties sont bases sur le mme corps de langage Elles voluent sparment au niveau du W3C
XSL
6

Les outils XSL


Processeurs XSLT conformes la spcification:
Apache Group (www.apache.org): Xalan 1.0.1 (exLotusXSL 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 spcification Netscape 6 supporte XSLT Processeur XSLFO
Apache Group : FOP (Formating Object Processor) http://www.apache.org
XSL
7

2. XPath : un standard utilis


XPath
Expressions de chemins dans un arbre XML Permet de slectionner des nuds par navigation

Dfini sparment
Utilis dans dautres standards W3C (XQuery, XPointer, ...) XPath est un langage dexpressions permettant de slectionner des parties dun document XML

XPath

XPath
XML Path Language
recommandation W3C pour expressions de chemins accepte 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 lment dans un document permet d'adresser toute sous partie d'un document
9

XPath

XPath - Parcours d'arbre


Xpath opre sur l'arbre d'un document
<livre auteur = "Hugo"> <titre>Les chatiments</titre> <chapitre> <section>Buonaparte </section> <section>Neige</section> </chapitre> Auteur = "Hugo" </livre>
racine

livre

titre

chapitre

chapitre

section Les chatiments

section

Buonaparte

Neige

XPath

10

XPath - Expression de chemins


Une expression de chemins spcifie une traverse de l'arbre du document :
depuis un nud de dpart vers un ensemble de nuds cibles les cibles constituent la valeur du cheminement

Un chemin peut tre :


absolu
commence la racine /tape1//tapeN

relatif
commence un nud courant tape1//tapeN

XPath

11

Syntaxe et smantique
Cheminement lmentaire direction::slecteur[predicat] Directions parent, ancestor, ancestor-or-self child, descendant, descendant-or-self preceding, preceding-sibling following, following-sibling self, attribute, namespace Slecteur nom de nud slectionn (lment ou @attribut) Prdicat [Fonction(nud) = valeur]
XPath
12

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

13

Xpath - Synthse
Slecteur / // * nom . @att text() processing-instruction(pro') comment() node() id(val) Nuds slectionns Racine du document Tout sous-chemin Tout lment Elment de tag nom Elment courant Attribut de nom att Tout nud de type texte Processing instruction de nom pro Tout nud commentaire Tout nud Elment d'identifiant val

XPath

14

3. XSLT
Permet de transformer un document
rgulier ou irrgulier de XML XML XHTML est un cas particulier

Un document est un arbre comportant :


Une racine Des lments Du texte Des attributs Des espaces de noms Des instructions de traitement Des commentaires

Un autre arbre de mme nature est produit en sortie


XSLT
15

Les feuilles de style


Une feuille de style XSL
est un document XML de racine <xsl:stylesheet> contient une liste de rgles de transformation <xsl:template>

Chaque rgle (<xsl:template>) est dfinie par:


Une condition spcifiant le sous-arbre du document dentre auquel elle sapplique Une production spcifiant le rsultat de lapplication de la rgle

Utilisation d'un nom de domaine spcifique


Toutes les instructions XSL sont des lments du namespace "http://www.w3.org/1999/XSL/Transform" Le prfixe gnralement utilis est xsl

XSLT

16

Exemple de document
<?xml version="1.0" ?> <Guide> <Restaurant Categorie="**"> <Nom>Pomodoro</Nom> <Adresse> <Ville>Hammamet</Ville> <Dept>Nabeul</Dept> </Adresse> </Restaurant> <Restaurant Categorie="***"> <Nom>Astragal</Nom> <Adresse> <Ville>Tunis</Ville> <Dept>Tunis</Dept> </Adresse> </Restaurant> </Guide>
XSLT
17

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
18

Les rgles de production


Dfinition des rgles par <xsl:template > Attributs
match: condition de slection des nuds sur lesquels la rgle
s'applique (Xpath) name: nom de la rgle, pour invocation explicite (en conjonction avec <call-template>) mode: permet d'appliquer un mme lment des rgles diffrentes en fonction du contexte priority: priorit, utilis en cas de conflit entre deux rgles ayant la mme condition

Exemples
<xsl: template match="/"> <xsl: template match="auteur">

XSLT

19

La gnration du rsultat
Le contenu de l'lment <xsl:template> est la production de la rgle
Les lments du namespace xsl sont des instructions qui copient des donnes du document source dans le rsultat Les autres lments sont inclus tels quels dans le rsultat

Instructions pour:
Parcourir l'arbre du document source Copier le contenu du document source dans le rsultat

Parcours de l'arbre:
<xsl:apply-templates> <xsl:for-each>

Copie du contenu du nud slectionn


<xsl:value-of select= >
XSLT
20

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= "DT" TAX="TTC">1874</PRIX> </ARTICLE> <ARTICLE> </ARTICLE> </CATALOGUE>

XSLT

21

Arbre correspondant
Racine
<?xml-stylesheet ...

Catalogue Article Prix Prix="FFR" Tax="TTC"


XSLT

Article

Reference

1874

JT3006 Les attributs apparaissent comme des fils de llment auquel ils sappliquent
22

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>
XSLT
23

Que fait l'exemple?


La premire rgle:
Remplace l'lment racine <CATALOGUE> par l'lment <html> Le contenu de <html> est le rsultat de la transformation du contenu de <CATALOGUE> par les autres rgles de la feuille de style

La seconde rgle:
Remplace chaque lment <ARTICLE> par un lment <P> Le contenu de <P> est le texte (sans les balises) contenu dans les descendants de l'lment <ARTICLE> (rgle par dfaut)
XSLT
24

Exemple plus complexe


<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <xsl:apply-templates/> </html> </xsl:template> <xsl:template match="CATALOGUE"> <body> <xsl:for-each select="ARTICLE"/> < xsl:value-of select="LIBELLE"/> </xsl:for-each> </body> </xsl:template> </xsl:stylesheet>
XSLT
25

XSLT

26

XSLT

27

XSLT

28

XSLT

29

XSLT

30

Rsum des commandes


<xsl:template>, dfinir une rgle et son contexte <xsl:apply-templates/>, appliquer les transformations <xsl:for-each>, dfinir un traitement itratif <xsl:pi>, gnrer une processing instruction <xsl:element>, gnrer un lment <xsl:attribute>, gnrer un attribut <xsl:if>, dfinir un traitement conditionnel
XSLT
31

Bilan XSLT
XSLT est un langage trs puissant de transformation d'un arbre XML en un autre XSL permet en particulier de publier des donnes XML sur le Web par transformation en un document HTML standard XSL est utilis :
Pour publier des contenus XML Pour transformer des donnes (EAI, B2B)

XSLT

32

Les diteurs

XML

XSLT 33

Rendu

XSLT

4. XSLFO : aperu
Les Objets de mise en forme sont multiples :
<fo:block> <fo:display-rule> <fo:display-graphic> utilis pour les paragraphes, les titres ligne de sparation zone rectangulaire contenant graphisme

Ils possdent de nombreuses proprits


Pour un block on peut dfinir
la marge gauche et droite lespace avant et aprs le paragraphe la couleur du texte ...

XSLFO

34

XSLFO : principes
Ils sont appliqus un nud de l arbre rsultat Ils sont appels par l espace nominale fo Syntaxe :
<xsl:template match="[motif xpath]" > <fo :[objet-de mise en forme] ([proprit-style]="[valeur]")+> [instructions-de-traitement] </fo:[objet de mise-en-forme]> </xsl:template>

XSLFO

35

XSLFO : Exemple
Dfinition de proprits 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 dfinition dune proprit en locale est prioritaire devant lhritage

XSLFO

36

Bilan XSL
XML = SGML lger pour la production de publications web importantes :
production dune source unique en XML ; XSLT = gnration automatique de prsentation web multiples ; XSLFO = gnration automatique sur dautres supports.

Questions ?

XSL

37

5. Autres spcifications
Xlink = liens externes entre documents Xpointer = pointeurs internes un document Xforms = saisie de formulaires avec XML RDF = cadre de description de ressources
modle binaire <proprit - valeur>

XLL et plus

38

Xlink et les liens


Exprimer des liens entre documents XML
pointe sur une URL l'URL peut inclure une partie Xpointer tout lment peut tre un lien

Diffrents types de liens


simple xlink:type = "simple" tendu xlink:type = "extended" De vritables associations 1-1 en simple, k-n en tendu avec rles possibles avec comportements possibles
XLL et plus
39

Exemples simples
<Annotation xlink:type="simple" href="note1.xml"> 1 </Annotation> <Auteur xlink:type="simple" inline="true" href="http://www.e-xmlmedia.com/~georges/"> Georges Gardarin </Auteur> <Image xlink:type="simple" href="logo.gif"/> Les attributs doivent tre dfinis dans la DTD
si le document en possde une

XLL et plus

40

Les liens tendus


Ressource
<xxx xlink:type="resource" label="..." title="..." role="...">contenu de l'lment</xxx>

Locator
<xxx xlink:type="locator" label="" title="" role="" href="" />

Arc
<xxx xlink:type="arc" from="" to="" show="" actuate="" title="" arcrole="">contenu</xxx>

41

Les attributs de XLink


xlink:type
type de lien

actuate
manuel ou automatique

href
rfrence de l'URL

label
tiquette des arcs

title
titre du document cible

from
source de l'arc

role
rle du document cible

to
cible de l'arc

show
en place, interne ou nouveau document

XLL et plus

42

Les liens tendus


Associations orientes de M vers N
Permettent de relier des lments entre eux par des arcs tiquets et ainsi de composer des graphes tiquets orients lments ressource et locator dfinissant les nuds Elments arc dfinissant 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="Lille" href="/ville/Lille.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>

XLL et plus

43

XPointer
Permet de rfrencer un lment particulier d'un document
le document est spcifi par Xlink le Xpointer est ajout l'URI spare par # ou |

Pointeur absolue
id() : rfrence un lment d'identifiant donn root() : pointe sur la racine d'un document html() : rfrence 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])"

XLL et plus

44

XForms
Nouvelle gnration de formulaires Web Assemblage de formulaires partir de schma
Schma = structure + type Contraintes = Dpendances, expressions et calculs

XForms User Interfaces est la partie apparente pour lutilisateur (prsentation)


XForms User Interfaces intgre toutes les commandes de XHTML Ajoute en plus des contrles (tags) spcifiques au niveau prsentation.

XForms

45

Saisie des formulaires


Gnration et contrle du message XML Contrle sur le client ou le serveur
XForms Model XForms User Interface

XForms Submit Protocol

<XML> Instance data


XForms
46

RDF : Description de ressources


RDF (Ressource Description Framework) : cadre permettant de dcrire et dchanger les mtadonnes.
Une ressource (Ressource) est tout ce qui peut avoir une URI. ex : http://www.w3.org/index.html Un Type de proprit (Property Type) est une ressource qui a un nom et peut tre utilis comme proprit. ex : Auteur, Titre

RDF

47

RDF
Une proprit (Property) dcrit des caractristiques d'une ressource C'est une combinaison dune ressource, dun type de proprit et dune valeur. ex : W3C Ressource Description Framework comme titre pour http://www.w3.org/RDF <RDF: Description href=http://www.w3.org/RDF> <Titre>W3C Ressource Description Framework</Titre> <Home-Page RDF: href=http://www.w3.org> </RDF:Description>
RDF
48

6. Conclusion
XSL pour transformer et prsenter
puissant mais complexe problme de performance des processeurs ?

Recommandation XSL version 1.0


http://www.w3.org/TR/xsl/

Recommandation Xpath version 1.0


http://www.w3.org/TR/xpath

Recommandation Xlink
http://www.w3.org/TR/WD-xlink

Rfrences

49

You might also like