Introduction à XML pas à pas
Carrefour de l’information
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
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
… 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
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 luimê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
La constellation XML
CSS
SGML XSL-FO
XSL
XSLT
XML
VoiceXML
HTML
XHTML
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
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
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
& < > " et '
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"
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
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
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
z Historique : De l’ASCII à XML z XML : Le langage z XML : La programmation z XML : Les transformations z XML : Les applications
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
SAX
| <Racine> <NoeudA attr1="val1"> Contenu du nœud A </NoeudA> <NoeudB attr1="val1" attr2="val2"> Contenu du nœud B </NoeudB> </Racine> Analyseur SAX SAX génère des événements en parcourant le document XML | Début Racine Début NoeudA Contenu NoeudA Fin NoeudA Début NoeudB Contenu NoeudB Fin NoeudB |
Fin Racine
DOM
| <Racine> <NoeudA attr1="val1"> Contenu du nœud A </NoeudA> <NoeudB attr1="val1" attr2="val2"> Contenu du nœud B </NoeudB> </Racine> Analyseur DOM | Objet NoeudA Objet Racine |
| DOM établi un lien entre les objets du programme et les nœuds de | Objet NoeudB |
l’arbre représenté dans le document XML
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
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
Transformation XSLT
Transformation XSLT
Processeur XSLT
Document XHTML Document XML
Application : production de pages WEB depuis des documents XML
Exemple de transformation
Document source XML
<?xml version="1.0"?>
<Liste>
<Item>
<Nom>Item A</Nom> Résultat
| ITEM | PRIX |
| Item A | 10$ |
| Item B | 20$ |
| Item C | 5$ |
<Prix>10$</Prix>
</Item>
<Item>
<Nom>Item B</Nom>
<Prix>20$</Prix>
</Item>
<Item>
<Nom>Item C</Nom>
<Prix>5$</Prix>
</Item>
</Liste>
Fichier de transformation XSL
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl=";> <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>
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
Transformation XSL-FO
Transformation XSL-FO
Processeur XSLT Processeur FOP
Document PDF
Document FO
Document XML
Application : production de documents PDF depuis des documents XML
Exemple de document XSL-FO
?xml version="1.0" encoding="utf-8"?>
<fo:root
xmlns:fo=";>
<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…
<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 après traitement par FOP
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
Pourquoi utiliser XML ?
Peut s’éditer avec
XMLestdes outils simplescomme du texte standard Peut être analyséet construit avecdes outils standardssimple Est utilisable sur de petits systèmes
XMLPermet la représentationpeut représenterde documents structurésdes
données complexesPeut représenter sansdes documents issus de perte d’informationtraitements de texte,
de chiffriers ou de bases de données
| La structure des fichiers XML peut être validée formellement | Permet la construction de nouveaux langages Les outils qui le manipulent peuvent être adaptés à la structure des documents |
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
Exemple type
Documents distribués
Contenu du site
Documents XML
Serveur WEB
Outils d’éditionPrésentationspécialisésdu site
Documents XSL
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é
