28
Notions sur le XML Notions sur le XML Réfs : manuel p 149 Réfs : manuel p 149

Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

Embed Size (px)

Citation preview

Page 1: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

Notions sur le XMLNotions sur le XML

Réfs : manuel p 149Réfs : manuel p 149

Page 2: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

IntroductionIntroduction

Le XML (eXtensible Markup Language) est un Le XML (eXtensible Markup Language) est un standard d'échange de données.standard d'échange de données.

Il fait partie comme le <html> de la catégorie des Il fait partie comme le <html> de la catégorie des langages à balises.langages à balises.

Il est recommandé par le W3C depuis 1998.Il est recommandé par le W3C depuis 1998.Le <html> a été fortement influencé dans son Le <html> a été fortement influencé dans son

évolution par la rigueur du XML.évolution par la rigueur du XML.

Page 3: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

Les avantages du XMLLes avantages du XML Il s'agit d'un format de données gratuit, ouvert, Il s'agit d'un format de données gratuit, ouvert,

portable ; il favorise donc l'intéropérabilité des portable ; il favorise donc l'intéropérabilité des SI.SI.

Contrairement au <html>, conçu uniquement Contrairement au <html>, conçu uniquement pour afficher et non transmettre des données, pour afficher et non transmettre des données, les informations au format XML peuvent être les informations au format XML peuvent être facilement récupérées et exploitées par de facilement récupérées et exploitées par de nombreuses applications.nombreuses applications.

Page 4: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

La plupart des logiciels proposent la La plupart des logiciels proposent la possibilité de transformer leurs données possibilité de transformer leurs données au format XML afin de faciliter leur au format XML afin de faciliter leur transmission.transmission.

Exemple : Access permet de générer un Exemple : Access permet de générer un fichier XML à partir d'un ou de plusieurs fichier XML à partir d'un ou de plusieurs tableaux.tableaux.

Les données au format XML peuvent Les données au format XML peuvent aussi être affichées par un navigateuraussi être affichées par un navigateur

Page 5: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

Les usages du XMLLes usages du XML

Les usages du XML sont multiples et tendent à se Les usages du XML sont multiples et tendent à se développer à l'infini :développer à l'infini :

Permet des échanges entre des systèmes ou des Permet des échanges entre des systèmes ou des applications différentes applications différentes

Ex : Transmission d'un extrait de base de donnéesEx : Transmission d'un extrait de base de donnéesStockage de métadonnées, cf p 147Stockage de métadonnées, cf p 147Flux de syndication (RSS, ATOM), cf p 143Flux de syndication (RSS, ATOM), cf p 143Fichiers de configurationFichiers de configuration

Page 6: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

Principes du XMLPrincipes du XML

Le XML est basé sur un langage à balises dont la Le XML est basé sur un langage à balises dont la particularité est d'être extensible et auto-descriptif.particularité est d'être extensible et auto-descriptif.

Cela signifie que les balises utilisées sont définies Cela signifie que les balises utilisées sont définies librement et non fixées par avance comme pour le librement et non fixées par avance comme pour le <html>.<html>.

Le XML ne prend en charge que la structure et le Le XML ne prend en charge que la structure et le contenu des données et non leur présentation.contenu des données et non leur présentation.

Page 7: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

Il faudra donc pour améliorer la présentation des données Il faudra donc pour améliorer la présentation des données XML par un navigateur Web, utiliser le langage CSS ou XML par un navigateur Web, utiliser le langage CSS ou le XSL, langage de présentation spécialement conçu le XSL, langage de présentation spécialement conçu pour le XML. pour le XML.

Le XML a été conçu pour prendre en charge des données Le XML a été conçu pour prendre en charge des données structurées, c'est-à-dire des données correspondant à structurées, c'est-à-dire des données correspondant à des bases de données ou qui pourraient être présentées des bases de données ou qui pourraient être présentées sous forme de tableaux.sous forme de tableaux.

Il s'agit donc d'une technologie permettant de compléter Il s'agit donc d'une technologie permettant de compléter efficacement le <html> dans la conception de pages efficacement le <html> dans la conception de pages web.web.

Avant de l'étudier plus précisément plus loin, voici un Avant de l'étudier plus précisément plus loin, voici un exemple de fichier XML.exemple de fichier XML.

Page 8: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

Un premier exemple de fichier Un premier exemple de fichier XMLXML

Le premier exemple suivant correspond à Le premier exemple suivant correspond à une liste de manuels scolaires vendus par une liste de manuels scolaires vendus par un éditeur.un éditeur.

manuels.xml

Page 9: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

La première ligne d'un fichier La première ligne d'un fichier xmlxml

La première ligne d'un fichier XML s'appelle La première ligne d'un fichier XML s'appelle le prologue.le prologue.Elle annonce que les lignes qui suivront sont en XML…Elle annonce que les lignes qui suivront sont en XML…<?xml version="1.0" encoding="utf-8" ?><?xml version="1.0" encoding="utf-8" ?>

La valeur de l'attribut encoding permet de prendre en La valeur de l'attribut encoding permet de prendre en compte les caractères accentués.compte les caractères accentués.

Page 10: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

La racine et les La racine et les enregistrements enregistrements

La racine correspond à la première balise définie par l'utilisateur ; tous La racine correspond à la première balise définie par l'utilisateur ; tous les enregistrements du fichier XML seront stockés à l'intérieur de la les enregistrements du fichier XML seront stockés à l'intérieur de la racine.racine.

<racine><racine><enregistrement>…</enregistrement><enregistrement>…</enregistrement><enregistrement>…</enregistrement><enregistrement>…</enregistrement>……</racine></racine>Rmq : Rmq : les noms des balises ne doivent pas contenir d'accent ni d'espace, les noms des balises ne doivent pas contenir d'accent ni d'espace,

ni débuter par un chiffreni débuter par un chiffre Il y aura n balises <enregistrement> qui peuvent correspondre aux Il y aura n balises <enregistrement> qui peuvent correspondre aux

n lignes d'un tableaun lignes d'un tableau

Page 11: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

L'enregistrement et ses propriétésL'enregistrement et ses propriétés

Chaque enregistrement contiendra la valeur des propriétés retenues pour le Chaque enregistrement contiendra la valeur des propriétés retenues pour le décrire.décrire.

Exemple : Exemple : <eleve><eleve><nom>Moine</nom><nom>Moine</nom><prenom>Camille</prenom><prenom>Camille</prenom><profession_parents><profession_parents><pere>Artisan</pere><pere>Artisan</pere><mere>Infographiste</mere><mere>Infographiste</mere></profession_parents></profession_parents></eleve></eleve>

Dans cet exemple, un enregistrement correspond à chaque balise <eleve>Dans cet exemple, un enregistrement correspond à chaque balise <eleve> Il est possible de regrouper ensemble des propriétés comme la profession des Il est possible de regrouper ensemble des propriétés comme la profession des

parentsparents(On dit aussi qu'on rajoute un niveau d'arborescence)(On dit aussi qu'on rajoute un niveau d'arborescence) Une fois toutes les lignes XML écrites, on enregistre le fichier en utf-8 avec Une fois toutes les lignes XML écrites, on enregistre le fichier en utf-8 avec

l'extension .xmll'extension .xmlLe fichier est alors prêt à être affiché ou transmis. Le fichier est alors prêt à être affiché ou transmis.

Page 12: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

Techniques d'affichage d'un Techniques d'affichage d'un fichier XML dans un navigateurfichier XML dans un navigateur

Il existe deux possibilités :Il existe deux possibilités : Faire appel à une feuille de style CSS Faire appel à une feuille de style CSS

classiqueclassique

Afficher les données XML dans un tableau Afficher les données XML dans un tableau Xhtml en utilisant le langage d'affichage Xhtml en utilisant le langage d'affichage propre au XML, le XSL (eXtensible propre au XML, le XSL (eXtensible Stylesheet Language).Stylesheet Language).

Page 13: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

Affichage par appel d'une Affichage par appel d'une feuille de style CSSfeuille de style CSS

Exemple : Nous allons afficher le fichier Exemple : Nous allons afficher le fichier manuel.xml en faisant appel à une feuille manuel.xml en faisant appel à une feuille de style.de style.

La feuille de style manuel.css a été La feuille de style manuel.css a été préparée pour afficher les données XMLpréparée pour afficher les données XML

Découvrons cette feuille de style :Découvrons cette feuille de style :

manuels.css

Page 14: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

Pour que le fichier XML puisse faire appel à Pour que le fichier XML puisse faire appel à la feuille de style manuel.css, il suffit de la feuille de style manuel.css, il suffit de rajouter la ligne suivante dans le fichier rajouter la ligne suivante dans le fichier XML, juste après le prologue :XML, juste après le prologue :

<?xml-stylesheet href="manuels.css" ?><?xml-stylesheet href="manuels.css" ?>

Voir le résultat :Voir le résultat :

manuelsAvecLienCSS.xml

Page 15: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

Affichage des données XML dans un tableau Xhtml en Affichage des données XML dans un tableau Xhtml en utilisant le XSLutilisant le XSL

Dans cette technique, le fichier XSL qui Dans cette technique, le fichier XSL qui contiendra la structure du tableau html va contiendra la structure du tableau html va utiliser le fichier XML comme une source utiliser le fichier XML comme une source de données pour les afficher dans un de données pour les afficher dans un tableau par le biais du navigateur.tableau par le biais du navigateur.

Page 16: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

Exemple supportExemple support

Le fichier XML à utiliser comme source de Le fichier XML à utiliser comme source de données s'appelle albums.xml.données s'appelle albums.xml.

Voir le fichier :Voir le fichier :

albums.xml

Page 17: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

Pour établir le lien entre le fichier XML et le Pour établir le lien entre le fichier XML et le fichier XSL, il suffit de rajouter la ligne fichier XSL, il suffit de rajouter la ligne suivante dans le fichier XML, juste après suivante dans le fichier XML, juste après le prologue :le prologue :

<?xml-stylesheet type="text/xsl" <?xml-stylesheet type="text/xsl" href="albums.xsl"?>href="albums.xsl"?>

Page 18: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

Code du fichier XSL (observer les lignes en couleur dorée)Code du fichier XSL (observer les lignes en couleur dorée)

<?xml version="1.0" encoding="utf-8"?><?xml version="1.0" encoding="utf-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

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

<html><head><style type="text/css">….</style></head><html><head><style type="text/css">….</style></head>

<body><body>

<table><table>

<caption>Listes des albums disponibles</caption><caption>Listes des albums disponibles</caption>

<tr><th>Nom du groupe</th><th>Titre de l'album</th><th>Date de sortie de <tr><th>Nom du groupe</th><th>Titre de l'album</th><th>Date de sortie de l'album</th></tr>l'album</th></tr>

<xsl:for-each select="racine/album"><xsl:for-each select="racine/album">

<tr><tr>

<td><td><xsl:value-of select="groupe" /><xsl:value-of select="groupe" /></td></td>

<td><td><xsl:value-of select="titre" /><xsl:value-of select="titre" /></td></td>

<td><td><xsl:value-of select="annee" /><xsl:value-of select="annee" /></td></td>

</tr></tr>

</xsl:for-each></xsl:for-each></table></body></html></table></body></html>

</xsl:template></xsl:template>

</xsl:stylesheet></xsl:stylesheet>

Page 19: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

Trier les enregistrementsTrier les enregistrements

Le XSL comporte une instruction permettant de Le XSL comporte une instruction permettant de trier les données affichées selon un critère.trier les données affichées selon un critère.

Il suffit de rajouter la ligne suivante dans le code Il suffit de rajouter la ligne suivante dans le code du fichier XSL :du fichier XSL :

<xsl:sort select="annee" order="descending"/><xsl:sort select="annee" order="descending"/>juste après la ligne :

<xsl:for-each select="racine/album" > annee désigne la balise XML servant de critère de tri. Si on souhaite un tri dans l'ordre croissant, il suffit

d'utiliser "ascending" (tri par défaut).

Page 20: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

Afficher selon un critèreAfficher selon un critère

Pour afficher les données selon un critère il suffit Pour afficher les données selon un critère il suffit par exemple de modifier l'instruction :par exemple de modifier l'instruction :

<xsl:for-each <xsl:for-each select="racine/albumselect="racine/album[annee='2000']">[annee='2000']">

Les opérateurs disponibles sont Les opérateurs disponibles sont = (égal)= (égal) != (différent)!= (différent) &lt; (inférieur)&lt; (inférieur) &gt; (supérieur)&gt; (supérieur)

Page 21: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

Si alors sinon en XSLSi alors sinon en XSL

Exemple : supposons que nous souhaitions Exemple : supposons que nous souhaitions que les lignes paires et impaires du tableau que les lignes paires et impaires du tableau soient affichées dans des couleurs de fond soient affichées dans des couleurs de fond différentes.différentes.

Il faudra donc demander à xsl de tester si on Il faudra donc demander à xsl de tester si on se trouve sur une ligne paire.se trouve sur une ligne paire.

Si c'est le cas, la ligne sera affichée par Si c'est le cas, la ligne sera affichée par exemple avec le fond de couleur #FFCCCC.exemple avec le fond de couleur #FFCCCC.

Sinon la ligne sera affichée en couleur teal. Sinon la ligne sera affichée en couleur teal.

Page 22: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

<xsl:choose><xsl:choose>

<xsl:when test="position() mod 2=0"><xsl:when test="position() mod 2=0">

……Instructions html pour afficher la ligne Instructions html pour afficher la ligne avec la couleur de fond #FFCCCCavec la couleur de fond #FFCCCC

</xsl:when></xsl:when>

<xsl:otherwise><xsl:otherwise>

……Instructions html pour afficher la ligne Instructions html pour afficher la ligne avec la couleur de fond tealavec la couleur de fond teal

</xsl:otherwise></xsl:otherwise>

<xsl:choose><xsl:choose>

Page 23: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

La condition peut également porter sur une La condition peut également porter sur une des balises XML.des balises XML.

Exemple :Exemple :

<xsl:when test="[annee=1990]"><xsl:when test="[annee=1990]">

Page 24: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

La validation d'un document La validation d'un document XMLXML

Voir Manuel TD p 133Voir Manuel TD p 133Pour être valide, c'est-à-dire conforme aux Pour être valide, c'est-à-dire conforme aux

standards du XML, un document XML doit standards du XML, un document XML doit être associé à une DTD (Document être associé à une DTD (Document Definition Type).Definition Type).

La DTD est un fichier "technique" qui La DTD est un fichier "technique" qui résume la structure du document XML résume la structure du document XML auquel elle est associée.auquel elle est associée.

Page 25: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

Exemple Manuel p 133Exemple Manuel p 133

Reprenons le fichier manuels.xml Reprenons le fichier manuels.xml correspondant à la liste de manuels.correspondant à la liste de manuels.

Nous allons lui associer un fichier Nous allons lui associer un fichier manuel.dtd qui va permettre de le valider manuel.dtd qui va permettre de le valider et de résumer sa structure. et de résumer sa structure.

Le code du fichier manuel.dtd peut être écrit Le code du fichier manuel.dtd peut être écrit à l'aide du bloc note.à l'aide du bloc note.

Page 26: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

Code du fichier manuels.dtdCode du fichier manuels.dtd<!ELEMENT listedemanuels (manuel+)><!ELEMENT listedemanuels (manuel+)><!ELEMENT <!ELEMENT

manuel(titre,specialite,niveau,section,auteur+,description?,pmanuel(titre,specialite,niveau,section,auteur+,description?,prix)>rix)>

<!ELEMENT titre (#PCDATA)><!ELEMENT titre (#PCDATA)><!ELEMENT specialite (#PCDATA)><!ELEMENT specialite (#PCDATA)><!ELEMENT niveau (#PCDATA)><!ELEMENT niveau (#PCDATA)><!ELEMENT section (#PCDATA)><!ELEMENT section (#PCDATA)><!ELEMENT auteur (#PCDATA)><!ELEMENT auteur (#PCDATA)><!ELEMENT description (#PCDATA)><!ELEMENT description (#PCDATA)><!ELEMENT prix (#PCDATA)><!ELEMENT prix (#PCDATA)>

Page 27: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

Lien entre le document XML et Lien entre le document XML et sa DTDsa DTD

Pour lier le fichier XML "manuels.xml" à sa DTD, il Pour lier le fichier XML "manuels.xml" à sa DTD, il suffit de placer après le prologue, la ligne suffit de placer après le prologue, la ligne suivante :suivante :

<!DOCTYPE listedemanuels SYSTEM <!DOCTYPE listedemanuels SYSTEM "manuels.dtd">"manuels.dtd">

Voir le résultat : Voir le résultat : manuelsAvecLienDtd.xml

Page 28: Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le

Influences du XML sur le Influences du XML sur le HTMLHTML

Un document html doit comporter la déclaration d'une Un document html doit comporter la déclaration d'une DTD :DTD :

<!DOCTYPE html><!DOCTYPE html> Toute balise ouverte doit être ferméeToute balise ouverte doit être fermée Les balises doivent s'écrire en minusculeLes balises doivent s'écrire en minuscule Séparation des données de la présentationSéparation des données de la présentation ……