Vous êtes sur la page 1sur 32

Carrefour de l’information

XML : l’ASCII de demain

Philippe Mabilleau ing.

3 octobre 2002
Le langage XML
z Historique : De l’ASCII à XML
z XML : Le langage
z XML : La programmation
z XML : Les transformations
z XML : Les applications

02-10-03 © Philippe Mabilleau ing. 2


De l’ASCII …
z ASCII = American Standards Committee for
Information Interchange
z Échange d’information textuelle
– Structure rudimentaire
z Lignes de texte
– Aucune mise en forme
z Universel et très utilisé
– Fichiers dits « de texte »
z Sources des programmes, fichiers de commandes
z Fichiers de configuration
z Pages HTML
02-10-03 © Philippe Mabilleau ing. 3
… vers XML
z Besoin de représenter une information plus
complète
– Au niveau de la structure
z Structures de données complexes
– Arbres
– Bases de données
– Au niveau de la mise en forme
z « Markup » universel
z Solution de remplacement = Formats spécifiques aux
applications
– Word, WordPerfect, FrameMaker…
z La solution définitive = XML
02-10-03 © Philippe Mabilleau ing. 4
Un langage « extensible »
z XML = eXtensible Markup Language
z C’est un méta-langage
– Il permet de définir des langages dérivés de lui-
même
z Il va permettre de représenter des données
intelligemment
– Avec une structure plus complexe
– Adaptée à l’information que l’on veut représenter
z C’est un langage de représentation de
l’information
02-10-03 © Philippe Mabilleau ing. 5
La constellation XML
CSS
XSL-FO
SGML
XSL

XSLT
XML
VoiceXML
HTML

XHTML
02-10-03 © Philippe Mabilleau ing. 6
Le langage XML
z Historique : De l’ASCII à XML
z XML : Le langage
z XML : La programmation
z XML : Les transformations
z XML : Les applications

02-10-03 © Philippe Mabilleau ing. 7


Structure d’un document XML
z C’est un fichier texte
– ASCII et toutes ses variantes étendues
pour représenter du texte dans toutes les
langues
z Il représente une structure d’arbre
– À partir d’une racine
– Chaque nœud peut être une feuille ou un
autre arbre
– Structure récursive

02-10-03 © Philippe Mabilleau ing. 8


Le langage
z Très simple : 2 énoncés
z Les balises
– Identifient les nœuds de l’arbre
– Encadrent le contenu de chaque nœud
z Qui peut être des données ou d’autres noeuds
z Les attributs
– Attachés à chaque nœud
– Prennent une chaîne de caractères comme valeur
z Caractères d’échappement
z & < > " et ‘ remplacés par
&amp; &lt; &gt; &quot; et &apos;
02-10-03 © Philippe Mabilleau ing. 9
Exemple de document XML
<Racine>
<NoeudA attr1="val1">
Contenu du nœud A
</NoeudA>
<NoeudB attr1="val1" attr2="val2">
Contenu du nœud B
</NoeudB>
NoeudA Contenu du nœud A

</Racine>
attr1="val1"

Racine

NoeudB Contenu du nœud B

attr1="val1"
attr2="val2"

02-10-03 © Philippe Mabilleau ing. 10


Document bien formé et
document valide
z La syntaxe XML défini des documents bien
formés
z Un document valide se conforme à des
règles qui déterminent quel arbre il peut
représenter
– Nature des nœuds
– Nature des paramètres
– Contenu des nœuds
– Valeurs des paramètres

02-10-03 © Philippe Mabilleau ing. 11


Deux manières d’énoncer les
règles de validité
z Dans un DTD (Document Type Definition)
– Nature des nœuds et des attributs
– Décrit dans un document XML avec un format
spécifique qui peut être séparé ou inclus dans le
document qu »il valide
z Dans un schéma
– Nature et valeur des nœuds, des attributs et des
contenus
– Décrit dans un document XML dans un langage
dérivé de XML et spécifié par un DTD

02-10-03 © Philippe Mabilleau ing. 12


Exemple de DTD
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--Commentaire décrivant l'élément Racine-->
<!ELEMENT Racine (NoeudA, NoeudB)>
<!ELEMENT NoeudA (#PCDATA)>
<!ATTLIST NoeudA
attr1 CDATA #IMPLIED
>
<!ELEMENT NoeudB (#PCDATA)>
<!ATTLIST NoeudB
attr1 CDATA #IMPLIED
attr2 CDATA #IMPLIED
>

02-10-03 © Philippe Mabilleau ing. 13


Le langage XML
z Historique : De l’ASCII à XML
z XML : Le langage
z XML : La programmation
z XML : Les transformations
z XML : Les applications

02-10-03 © Philippe Mabilleau ing. 14


XML et la programmation
z Support standard intensif au niveau de la
programmation
– Pour analyser des fichiers XML
– Pour créer des fichiers XML
– Pour valider des fichiers XML
– En Java, C#, C++, …
z Deux types d’analyseurs
– SAX
z Les nœuds XML sont associés à des événements
– DOM (Document Object Model)
z Le document XML est associé à un arbre
02-10-03 © Philippe Mabilleau ing. 15
SAX
<Racine>
<NoeudA attr1="val1">
Contenu du nœud A Début Racine
</NoeudA>
Début NoeudA
<NoeudB attr1="val1" attr2="val2">
Contenu du nœud B Contenu NoeudA
</NoeudB>
</Racine> Fin NoeudA
Analyseur
SAX Début NoeudB

Contenu NoeudB

SAX génère des événements


Fin NoeudB
en parcourant le document XML
Fin Racine

02-10-03 © Philippe Mabilleau ing. 16


DOM
<Racine>
<NoeudA attr1="val1">
Contenu du nœud A
</NoeudA>
<NoeudB attr1="val1" attr2="val2"> Objet NoeudA
Contenu du nœud B
</NoeudB>
</Racine>
Analyseur
Objet Racine
DOM

DOM établi un lien entre les objets


du programme et les nœuds de Objet NoeudB
l’arbre représenté dans le document XML

02-10-03 © Philippe Mabilleau ing. 17


Le langage XML
z Historique : De l’ASCII à XML
z XML : Le langage
z XML : La programmation
z XML : Les transformations
z XML : Les applications

02-10-03 © Philippe Mabilleau ing. 18


Les transformations XML
z XSL = eXtensible Stylesheet Language
z XSLT = eXtensible Stylesheet Language for
Transformation
z Langages dérivés de XML décrivant la
conversion d’un document XML en un autre
document XML
z Langage de type déclaratif
– Similaire à Prolog
– Déclenchement de règles de conversion
– Le langage XPath est utilisé pour spécifier des
ensembles de nœuds
02-10-03 © Philippe Mabilleau ing. 19
Transformation XSLT
Transformation XSLT

Processeur XSLT
Document XHTML

Document XML

Application : production de pages WEB


depuis des documents XML
02-10-03 © Philippe Mabilleau ing. 20
Exemple de transformation
Document source XML

<?xml version="1.0"?>
<Liste>
<Item>
Résultat
<Nom>Item A</Nom>
<Prix>10$</Prix>
</Item>
ITEM PRIX
<Item> Item A 10$
<Nom>Item B</Nom>
<Prix>20$</Prix> Item B 20$
</Item>
<Item> Item C 5$
<Nom>Item C</Nom>
<Prix>5$</Prix>
</Item>
</Liste>

02-10-03 © Philippe Mabilleau ing. 21


Fichier de transformation XSL
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<head>
<title>Liste des prix</title>
</head>
<body bgcolor="white">
<table border="2" width="200">
<tr>
<td>ITEM</td>
<td>PRIX</td>
</tr>
<xsl:apply-templates></xsl:apply-templates>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="Item">
<tr>
<td><xsl:value-of select="Nom"/></td>
<td><xsl:value-of select="Prix"/></td>
</tr>
</xsl:template>
</xsl:stylesheet>

02-10-03 © Philippe Mabilleau ing. 22


Le langage XSL-FO
z XSL-FO est un langage de description de
documents formatés
– FO = Formated Output
z XSL-FO est un autre langage dérivé de XML
z XSL-FO est traité par un logiciel produisant le
document mis en forme (processeur FOP)
– Formats de sortie
z Actuellement PDF, PCL, PS, AWT, TXT, SVG
z À venir : MIF, RTF…
z Étant du XML il peut être obtenu par
transformation d’un document XML
02-10-03 © Philippe Mabilleau ing. 23
Transformation XSL-FO
Transformation XSL-
XSL-FO

Processeur FOP
Processeur XSLT

Document PDF

Document FO

Document XML

Application : production de documents PDF


depuis des documents XML
02-10-03 © Philippe Mabilleau ing. 24
Exemple
de document XSL-FO
?xml version="1.0" encoding="utf-8"?>
<fo:root
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="simple"
page-height="29.7cm"
page-width="21cm"
margin-top="1cm"
margin-bottom="2cm"
margin-left="2.5cm"
margin-right="2.5cm">
<fo:region-body margin-top="3cm"/>
<fo:region-before extent="3cm"/>
<fo:region-after extent="1.5cm"/>
</fo:simple-page-master>
</fo:layout-master-set>

Suite…

02-10-03 © Philippe Mabilleau ing. 25


<fo:page-sequence master-reference="simple">
<fo:flow flow-name="xsl-region-body">
<fo:block font-size="18pt"
font-family="sans-serif"
line-height="24pt"
space-after.optimum="15pt"
background-color="blue"
color="white"
text-align="center"
padding-top="3pt">
Le langage XSL-FO
</fo:block>
<fo:block font-size="12pt"
font-family="sans-serif"
line-height="15pt"
space-after.optimum="3pt"
text-align="justify">
Le langage XSL-FO est dérivé de XML.
Il permet la description de documents à des fins de présentation.
Il offre des possibilités de mise en page comparables à celles d'un traitement de texte
</fo:block>
<fo:block font-size="12pt"
font-family="sans-serif"
line-height="15pt"
space-after.optimum="3pt"
text-align="justify">
XSL-FO est peut convivial et n'est pas destiné à une production manuelle de documents.
Il est fait pour être le résultat d'une tranmsformation XSLT depuis un document XML.
Le fichier de tranformation XSL va contenir la mise en page en lagage XSL-FO.
Malheureusement peu d'outils existent actuellement pour créer une mise en page XSL-FO
à partir d'un traitement de texte par exemple.
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>

02-10-03 © Philippe Mabilleau ing. 26


Résultat en PDF
après traitement
par FOP

02-10-03 © Philippe Mabilleau ing. 27


Le langage XML
z Historique : De l’ASCII à XML
z XML : Le langage
z XML : La programmation
z XML : Les transformations
z XML : Les applications

02-10-03 © Philippe Mabilleau ing. 28


Pourquoi utiliser XML ?
Peut s’éditer avec
des outils simples Peut être analysé
XML comme du texte standard et construit avec
est des outils standards
simple Est utilisable sur
de petits systèmes

XML Permet la représentation


peut représenter de documents structurés
des
Peut représenter sans perte d’information
données complexes des documents issus de traitements de texte,
de chiffriers ou de bases de données

La structure Permet la construction


des fichiers XML de nouveaux
langages
peut être
validée formellement Les outils qui le manipulent
peuvent être adaptés à
la structure des documents
02-10-03 © Philippe Mabilleau ing. 29
Les applications de XML
z Représentation d’informations structurées
– Bases de données
z Format d’entreposage universel
z Entreposage du contenu des sites WEB
– Transformation en XHTML et en PDF
z Échange d’informations complexes entre des
applications différentes
z Traitement de documents
z Échange de documents sur Internet
– Commerce électronique

z Fichiers de configuration
z Utilisation d’outils et de bibliothèques standards
02-10-03 © Philippe Mabilleau ing. 30
Exemple type
Documents distribués
Contenu du site
Documents XML

Serveur WEB

Outils d’édition
Présentation
spécialisés du site
Documents XSL

02-10-03 © Philippe Mabilleau ing. 31


XML l’ASCII de demain ?
z Simple
– Basé sur du texte
z Standard
– Normalisation
– Outils d’édition
– Bibliothèques d’analyse et de synthèse
z Extensible
– Spécialisation
– Universalité

02-10-03 © Philippe Mabilleau ing. 32