XML : l’ASCII de demain
XML : l’ASCII de demain
Philippe
Philippe
Mabilleau ing
Mabilleau ing
.
.
3 octobre 2002 3 octobre 2002 Carrefour de l’information
Le langage XML
Le langage XML
z
z
Historique : De l’ASCII à XML
Historique : De l’ASCII à XML
z
z
XML : Le langage
XML : Le langage
z
z
XML : La programmation
XML : La programmation
z
z
XML : Les transformations
XML : Les transformations
z
De l’ASCII …
De l’ASCII …
z
z
ASCII =
ASCII =
American
American
Standards
Standards
Committee
Committee
for
for
Information
Information
Interchange
Interchange
z
z
Échange d’information textuelle
Échange d’information textuelle
–
–
Structure rudimentaire
Structure rudimentaire
z
z
Lignes de texte
Lignes de texte
–
–
Aucune mise en forme
Aucune mise en forme
z
z
Universel et très utilisé
Universel et très utilisé
–
–
Fichiers dits «
Fichiers dits «
de texte
de texte
»
»
z
z
Sources des programmes, fichiers de commandes
Sources des programmes, fichiers de commandes
z
z
Fichiers de configuration
Fichiers de configuration
z
… vers XML
… vers XML
z
z
Besoin de représenter une information plus
Besoin de représenter une information plus
complète
complète
–
–
Au niveau de la structure
Au niveau de la structure
z
z
Structures de données complexes
Structures de données complexes
–
–
Arbres
Arbres
–
–
Bases de données
Bases de données
–
–
Au niveau de la mise en forme
Au niveau de la mise en forme
z
z
«
«
Markup
Markup
» universel
» universel
z
z
Solution de remplacement = Formats spécifiques aux
Solution de remplacement = Formats spécifiques aux
applications
applications
–
–
Word, WordPerfect,
Word, WordPerfect,
FrameMaker
FrameMaker
…
…
z
Un langage «
Un langage «
extensible
extensible
»
»
z
z
XML = eXtensible
XML = eXtensible
Markup Language
Markup Language
z
z
C’est un méta
C’est un méta
-
-
langage
langage
–
–
Il permet de définir des langages dérivés de lui-
Il permet de définir des langages dérivés de lui
-même
même
z
z
Il va permettre de représenter des données
Il va permettre de représenter des données
intelligemment
intelligemment
–
–
Avec une structure plus complexe
Avec une structure plus complexe
–
–
Adaptée à l’information que l’on veut représenter
Adaptée à l’information que l’on veut représenter
z
z
C’est un langage de représentation de
C’est un langage de représentation de
l’information
La constellation XML
La constellation XML
SGML
SGML
XML
XML
HTML
HTML
XHTML
XHTML
XSL
XSL
XSL
XSL
-
-
FO
FO
CSS
CSS
VoiceXML
VoiceXML
XSLT
XSLT
Le langage XML
Le langage XML
z
z
Historique : De l’ASCII à XML
Historique : De l’ASCII à XML
z
z
XML : Le langage
XML : Le langage
z
z
XML : La programmation
XML : La programmation
z
z
XML : Les transformations
XML : Les transformations
z
Structure d’un document XML
Structure d’un document XML
z
z
C’est un fichier texte
C’est un fichier texte
–
–
ASCII et toutes ses variantes étendues
ASCII et toutes ses variantes étendues
pour représenter du texte dans toutes les
pour représenter du texte dans toutes les
langues
langues
z
z
Il représente une structure d’arbre
Il représente une structure d’arbre
–
–
À partir d’une racine
À partir d’une racine
–
–
Chaque nœud peut être une feuille ou un
Chaque nœud peut être une feuille ou un
autre arbre
autre arbre
–
Le langage
Le langage
z
z
Très simple : 2 énoncés
Très simple : 2 énoncés
z
z
Les balises
Les balises
–
–
Identifient les nœuds de l’arbre
Identifient les nœuds de l’arbre
–
–
Encadrent le contenu de chaque nœud
Encadrent le contenu de chaque nœud
z
z
Qui peut être des données ou d’autres
Qui peut être des données ou d’autres
noeuds
noeuds
z
z
Les attributs
Les attributs
–
–
Attachés à chaque nœud
Attachés à chaque nœud
–
–
Prennent une chaîne de caractères comme valeur
Prennent une chaîne de caractères comme valeur
z
z
Caractères d’échappement
Caractères d’échappement
z
z
& < >
& < >
" et
" et
‘ remplacés par
‘ remplacés par
&
Exemple de document XML
Exemple de document XML
<Racine>
</Racine>
<NoeudA attr1="val1">
Contenu du nœud A
</NoeudA>
<NoeudB attr1="val1" attr2="val2">
Contenu du nœud B
</NoeudB>
Racine Racine NoeudA NoeudA NoeudB NoeudB Contenu du nœud A Contenu du nœud B attr1="val1" attr1="val1" attr2="val2"Document bien formé et
Document bien formé et
document valide
document valide
z
z
La syntaxe XML défini des documents bien
La syntaxe XML défini des documents bien
formés
formés
z
z
Un document valide se conforme à des
Un document valide se conforme à des
règles qui déterminent quel arbre il peut
règles qui déterminent quel arbre il peut
représenter
représenter
–
–
Nature des nœuds
Nature des nœuds
–
–
Nature des paramètres
Nature des paramètres
–
–
Contenu des nœuds
Contenu des nœuds
–
Deux manières d’énoncer les
Deux manières d’énoncer les
règles de validité
règles de validité
z
z
Dans un DTD (Document Type
Dans un DTD (Document Type
Definition
Definition
)
)
–
–
Nature des nœuds et des attributs
Nature des nœuds et des attributs
–
–
Décrit dans un document XML avec un format
Décrit dans un document XML avec un format
spécifique qui peut être séparé ou inclus dans le
spécifique qui peut être séparé ou inclus dans le
document qu
document qu
»il valide
»il valide
z
z
Dans un schéma
Dans un schéma
–
–
Nature et valeur des nœuds, des attributs et des
Nature et valeur des nœuds, des attributs et des
contenus
contenus
–
–
Décrit dans un document XML dans un langage
Décrit dans un document XML dans un langage
dérivé de XML et spécifié par un DTD
Exemple de DTD
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
>
Le langage XML
Le langage XML
z
z
Historique : De l’ASCII à XML
Historique : De l’ASCII à XML
z
z
XML : Le langage
XML : Le langage
z
z
XML : La programmation
XML : La programmation
z
z
XML : Les transformations
XML : Les transformations
z
XML et la programmation
XML et la programmation
z
z
Support standard intensif au niveau de la
Support standard intensif au niveau de la
programmation
programmation
–
–
Pour analyser des fichiers XML
Pour analyser des fichiers XML
–
–
Pour créer des fichiers XML
Pour créer des fichiers XML
–
–
Pour valider des fichiers XML
Pour valider des fichiers XML
–
–
En Java, C#, C++, …
En Java, C#, C++, …
z
z
Deux types d’analyseurs
Deux types d’analyseurs
–
–
SAX
SAX
z
z
Les nœuds XML sont associés à des événements
Les nœuds XML sont associés à des événements
–
–
DOM (Document Object
DOM (Document
Object Model)
Model)
z
SAX
SAX
<Racine>
</Racine>
<NoeudA attr1="val1">
Contenu du nœud A
</NoeudA>
<NoeudB attr1="val1" attr2="val2">
Contenu du nœud B
</NoeudB>
Début Racine
Début Racine
Début
Début
NoeudA
NoeudA
Contenu
Contenu
NoeudA
NoeudA
Fin
Fin
NoeudA
NoeudA
Début
Début
NoeudB
NoeudB
Contenu
Contenu
NoeudB
NoeudB
Fin
Fin
NoeudB
NoeudB
Fin Racine
Fin Racine
Analyseur
Analyseur
SAX
SAX
SAX génère des événements
SAX génère des événements
en parcourant le document XML
DOM
DOM
<Racine>
</Racine>
<NoeudA attr1="val1">
Contenu du nœud A
</NoeudA>
<NoeudB attr1="val1" attr2="val2">
Contenu du nœud B
</NoeudB>
Analyseur
Analyseur
DOM
DOM
Objet RacineObjet RacineObjet
Objet NoeudANoeudA
Objet
Objet NoeudBNoeudB
DOM établi un lien entre les objets
DOM établi un lien entre les objets
du programme et les nœuds de
du programme et les nœuds de
l’arbre représenté dans le document XML
Le langage XML
Le langage XML
z
z
Historique : De l’ASCII à XML
Historique : De l’ASCII à XML
z
z
XML : Le langage
XML : Le langage
z
z
XML : La programmation
XML : La programmation
z
z
XML : Les transformations
XML : Les transformations
z
Les transformations XML
Les transformations XML
z
z
XSL = eXtensible
XSL = eXtensible
Stylesheet Language
Stylesheet Language
z
z
XSLT = eXtensible
XSLT = eXtensible
Stylesheet Language
Stylesheet Language
for
for
Transformation
Transformation
z
z
Langages dérivés de XML décrivant la
Langages dérivés de XML décrivant la
conversion d’un document XML en un autre
conversion d’un document XML en un autre
document XML
document XML
z
z
Langage de type déclaratif
Langage de type déclaratif
–
–
Similaire à Prolog
Similaire à Prolog
–
–
Déclenchement de règles de conversion
Déclenchement de règles de conversion
–
–
Le langage
Le langage
XPath
XPath
est utilisé pour spécifier des
est utilisé pour spécifier des
ensembles de nœuds
Transformation XSLT
Transformation XSLT
Processeur XSLT Processeur XSLT Document XML Document XML Transformation XSLT Transformation XSLT Document XHTML Document XHTMLApplication : production de pages WEB
Application : production de pages WEB
depuis des documents XML
Exemple de transformation
Exemple de transformation
<?xml version="1.0"?>
<Liste>
<Item>
<Nom>Item A</Nom>
<Prix>10$</Prix>
</Item>
<Item>
<Nom>Item B</Nom>
<Prix>20$</Prix>
</Item>
<Item>
<Nom>Item C</Nom>
<Prix>5$</Prix>
</Item>
</Liste>
ITEM
PRIX
Item A
10$
Item B
20$
Item C
5$
Document source XML Document source XML Résultat Résultat<?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>
Fichier de transformation XSL Fichier de transformation XSLLe langage XSL
Le langage XSL
-
-
FO
FO
z
z
XSL
XSL
-
-
FO est un langage de description de
FO est un langage de description de
documents formatés
documents formatés
–
–
FO = Formated
FO =
Formated
Output
Output
z
z
XSL
XSL
-
-
FO est un autre langage dérivé de XML
FO est un autre langage dérivé de XML
z
z
XSL
XSL
-
-
FO est traité par un logiciel produisant le
FO est traité par un logiciel produisant le
document mis en forme (processeur FOP)
document mis en forme (processeur FOP)
–
–
Formats de sortie
Formats de sortie
z
z
Actuellement PDF, PCL, PS, AWT, TXT, SVG
Actuellement PDF, PCL, PS, AWT, TXT, SVG
z
z
À venir : MIF, RTF…
À venir : MIF, RTF…
z
z
Étant du XML il peut être obtenu par
Étant du XML il peut être obtenu par
transformation d’un document XML
Transformation XSL
Transformation XSL
-
-
FO
FO
Processeur XSLT Processeur XSLT Document XML Document XML Transformation XSL Transformation XSL--FOFO Document FO Document FO Processeur FOP Processeur FOP Document PDF Document PDFApplication : production de documents PDF
Application : production de documents PDF
depuis des documents XML
?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>
Exemple
Exemple
de document XSL
de document XSL
-
-
FO
FO
Suite… Suite…<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>
Résultat en PDF Résultat en PDF après traitement après traitement par FOP par FOP
Le langage XML
Le langage XML
z
z
Historique : De l’ASCII à XML
Historique : De l’ASCII à XML
z
z
XML : Le langage
XML : Le langage
z
z
XML : La programmation
XML : La programmation
z
z
XML : Les transformations
XML : Les transformations
z
Pourquoi utiliser XML ?
Pourquoi utiliser XML ?
Peut s’éditer avec
Peut s’éditer avec
des outils simples
des outils simples
comme du texte standard
comme du texte standard
XML
XML
est
est
simple
simple
XML
XML
peut représenter
peut représenter
des
des
données complexes
données complexes
La structure
La structure
des fichiers XML
des fichiers XML
peut être
peut être
validée formellement
validée formellement
Est utilisable sur
Est utilisable sur
de petits systèmes
de petits systèmes
Peut être analysé
Peut être analysé
et construit avec
et construit avec
des outils standards
des outils standards
Permet la représentation
Permet la représentation
de documents structurés
de documents structurés
Peut représenter sans perte d’information
Peut représenter sans perte d’information
des documents issus de traitements de texte,
des documents issus de traitements de texte,
de chiffriers ou de bases de données
de chiffriers ou de bases de données
Les outils qui le manipulent
Les outils qui le manipulent
peuvent être adaptés à
peuvent être adaptés à
la structure des documents
la structure des documents
Permet la construction
Permet la construction
de nouveaux
de nouveaux
langages
langages
Les applications de XML
Les applications de XML
z
z
Représentation d’informations structurées
Représentation d’informations structurées
–
–
Bases de données
Bases de données
z
z
Format d’entreposage universel
Format d’entreposage universel
z
z
Entreposage du contenu des sites WEB
Entreposage du contenu des sites WEB
–
–
Transformation en XHTML et en PDF
Transformation en XHTML et en PDF
z
z
Échange d’informations complexes entre des
Échange d’informations complexes entre des
applications différentes
applications différentes
z
z
Traitement de documents
Traitement de documents
z
z
Échange de documents sur Internet
Échange de documents sur Internet
–
–
Commerce électronique
Commerce électronique
z
z
Fichiers de configuration
Fichiers de configuration
z