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 de la catégorie des langages à balises. Il est recommandé par le W3C depuis Le a été fortement influencé dans son évolution par la rigueur du XML.
Les avantages du XML Il s'agit d'un format de données gratuit, ouvert, portable ; il favorise donc l'intéropérabilité des SI. Il s'agit d'un format de données gratuit, ouvert, portable ; il favorise donc l'intéropérabilité des SI. Contrairement au, conçu uniquement pour afficher et non transmettre des données, les informations au format XML peuvent être facilement récupérées et exploitées par de nombreuses applications. Contrairement au, conçu uniquement pour afficher et non transmettre des données, les informations au format XML peuvent être facilement récupérées et exploitées par de nombreuses applications.
La plupart des logiciels proposent la possibilité de transformer leurs données au format XML afin de faciliter leur transmission. La plupart des logiciels proposent la possibilité de transformer leurs données au format XML afin de faciliter leur transmission. Exemple : Access permet de générer un fichier XML à partir d'un ou de plusieurs tableaux. Les données au format XML peuvent aussi être affichées par un navigateur Les données au format XML peuvent aussi être affichées par un navigateur
Les usages du XML Les usages du XML sont multiples et tendent à se développer à l'infini : Permet des échanges entre des systèmes ou des applications différentes Permet des échanges entre des systèmes ou des applications différentes Ex : Transmission d'un extrait de base de données Stockage de métadonnées, cf p 147 Stockage de métadonnées, cf p 147 Flux de syndication (RSS, ATOM), cf p 143 Flux de syndication (RSS, ATOM), cf p 143 Fichiers de configuration Fichiers de configuration
Principes du XML Le XML est basé sur un langage à balises dont la particularité est d'être extensible et auto-descriptif. Cela signifie que les balises utilisées sont définies librement et non fixées par avance comme pour le. Le XML ne prend en charge que la structure et le contenu des données et non leur présentation.
Il faudra donc pour améliorer la présentation des données XML par un navigateur Web, utiliser le langage CSS ou le XSL, langage de présentation spécialement conçu pour le XML. Le XML a été conçu pour prendre en charge des données structurées, c'est-à-dire des données correspondant à des bases de données ou qui pourraient être présentées sous forme de tableaux. Il s'agit donc d'une technologie permettant de compléter efficacement le dans la conception de pages web. Avant de l'étudier plus précisément plus loin, voici un exemple de fichier XML.
Un premier exemple de fichier XML Le premier exemple suivant correspond à une liste de manuels scolaires vendus par un éditeur. manuels.xml
La première ligne d'un fichier xml La première ligne d'un fichier XML s'appelle le prologue. Elle annonce que les lignes qui suivront sont en XML… La valeur de l'attribut encoding permet de prendre en compte les caractères accentués. La valeur de l'attribut encoding permet de prendre en compte les caractères accentués.
La racine et les enregistrements 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 racine. <racine><enregistrement>…</enregistrement><enregistrement>…</enregistrement>…</racine> Rmq : les noms des balises ne doivent pas contenir d'accent ni d'espace, ni débuter par un chiffre les noms des balises ne doivent pas contenir d'accent ni d'espace, ni débuter par un chiffre Il y aura n balises qui peuvent correspondre aux n lignes d'un tableau Il y aura n balises qui peuvent correspondre aux n lignes d'un tableau
L'enregistrement et ses propriétés Chaque enregistrement contiendra la valeur des propriétés retenues pour le décrire. Exemple : <eleve><nom>Moine</nom><prenom>Camille</prenom><profession_parents><pere>Artisan</pere><mere>Infographiste</mere></profession_parents></eleve> Dans cet exemple, un enregistrement correspond à chaque balise Dans cet exemple, un enregistrement correspond à chaque balise Il est possible de regrouper ensemble des propriétés comme la profession des parents Il est possible de regrouper ensemble des propriétés comme la profession des parents (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 l'extension.xml Une fois toutes les lignes XML écrites, on enregistre le fichier en utf-8 avec l'extension.xml Le fichier est alors prêt à être affiché ou transmis.
Techniques d'affichage d'un fichier XML dans un navigateur Il existe deux possibilités : Faire appel à une feuille de style CSS classique Faire appel à une feuille de style CSS classique Afficher les données XML dans un tableau Xhtml en utilisant le langage d'affichage propre au XML, le XSL (eXtensible Stylesheet Language). Afficher les données XML dans un tableau Xhtml en utilisant le langage d'affichage propre au XML, le XSL (eXtensible Stylesheet Language).
Affichage par appel d'une feuille de style CSS Exemple : Nous allons afficher le fichier manuel.xml en faisant appel à une feuille de style. La feuille de style manuel.css a été préparée pour afficher les données XML Découvrons cette feuille de style : manuels.css
Pour que le fichier XML puisse faire appel à la feuille de style manuel.css, il suffit de rajouter la ligne suivante dans le fichier XML, juste après le prologue : Voir le résultat : manuelsAvecLienCSS.xml
Affichage des données XML dans un tableau Xhtml en utilisant le XSL Dans cette technique, le fichier XSL qui contiendra la structure du tableau html va utiliser le fichier XML comme une source de données pour les afficher dans un tableau par le biais du navigateur.
Exemple support Le fichier XML à utiliser comme source de données s'appelle albums.xml. Voir le fichier : albums.xml
Pour établir le lien entre le fichier XML et le fichier XSL, il suffit de rajouter la ligne suivante dans le fichier XML, juste après le prologue :
Code du fichier XSL (observer les lignes en couleur dorée) …. …. <body><table> Listes des albums disponibles Listes des albums disponibles Nom du groupe Titre de l'album Date de sortie de l'album Nom du groupe Titre de l'album Date de sortie de l'album <tr> </tr> </xsl:template></xsl:stylesheet>
Trier les enregistrements Le XSL comporte une instruction permettant de trier les données affichées selon un critère. Il suffit de rajouter la ligne suivante dans le code du fichier XSL : juste après la ligne : 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).
Afficher selon un critère Pour afficher les données selon un critère il suffit par exemple de modifier l'instruction : Les opérateurs disponibles sont = (égal) = (égal) != (différent) != (différent) < (inférieur) < (inférieur) > (supérieur) > (supérieur)
Si alors sinon en XSL Exemple : supposons que nous souhaitions que les lignes paires et impaires du tableau soient affichées dans des couleurs de fond différentes. Il faudra donc demander à xsl de tester si on se trouve sur une ligne paire. Si c'est le cas, la ligne sera affichée par exemple avec le fond de couleur #FFCCCC. Sinon la ligne sera affichée en couleur teal.
<xsl:choose> …Instructions html pour afficher la ligne avec la couleur de fond #FFCCCC </xsl:when><xsl:otherwise> …Instructions html pour afficher la ligne avec la couleur de fond teal </xsl:otherwise><xsl:choose>
La condition peut également porter sur une des balises XML. Exemple :
La validation d'un document XML Voir Manuel TD p 133 Pour être valide, c'est-à-dire conforme aux standards du XML, un document XML doit être associé à une DTD (Document Definition Type). La DTD est un fichier "technique" qui résume la structure du document XML auquel elle est associée.
Exemple Manuel p 133 Reprenons le fichier manuels.xml correspondant à la liste de manuels. Nous allons lui associer un fichier manuel.dtd qui va permettre de le valider et de résumer sa structure. Le code du fichier manuel.dtd peut être écrit à l'aide du bloc note.
Code du fichier manuels.dtd
Lien entre le document XML et sa DTD Pour lier le fichier XML "manuels.xml" à sa DTD, il suffit de placer après le prologue, la ligne suivante : Voir le résultat : manuelsAvecLienDtd.xml manuelsAvecLienDtd.xml
Influences du XML sur le HTML Un document html doit comporter la déclaration d'une DTD : Un document html doit comporter la déclaration d'une DTD : Toute balise ouverte doit être fermée Toute balise ouverte doit être fermée Les balises doivent s'écrire en minuscule Les balises doivent s'écrire en minuscule Séparation des données de la présentation Séparation des données de la présentation …