Developpez.com

Télécharger gratuitement le magazine des développeurs, le bimestriel des développeurs avec une sélection des meilleurs tutoriels

FAQ XMLConsultez toutes les FAQ

Nombre d'auteurs : 5, nombre de questions : 65, dernière mise à jour : 30 mars 2017 

 
OuvrirSommaireGénéralités du XML

XML (eXtensible Markup Language), est le standard défini par le W3C pour représenter des données dans des documents balisés.
Markup Language: langage de balise, comme le bien connu HTML.
eXtensible: à contrario du HTML, le nombre, le nom et la fonction des balises ne sont pas prédéfinis. La sémantique d'une balise est définie par l'auteur du document XML.
C'est dans ce sens qu'XML est un métalangage.
XML est issu lui-même de SGML, un métalangage standard international.

Créé le 14 avril 2006  par Erwy, GrandFather
  • Fichier de données structurées pour échanger entre applications ou plates-formes hétérogènes
  • Stockage de données ne nécessitant pas un SGBDR (simple fichier)
  • Base de données XML, utilisant le langage de requête XQuery
  • Séparation des données/codes pour un site Internet (couple XML/XSLT)
  • Vocabulaire de certains langages spécialisés, tels que MATHML (calcul), SVG (graphisme vectoriel), ...
  • Etc......
Créé le 15 avril 2006  par Erwy, GrandFather

C'est le World Wide Web Consortium (W3C) qui est responsable de la création ainsi que des développements de spécifications qui entourent le XML via son groupe de travail XML. Ce groupe est composé d'experts de divers domaines (souvent recrutés par cooptation). XML est un format public : aucune société n'est propriétaire de son développement. La spécification v1.0 a été entérinée par le W3C (recommandation du 10 février 1998).
Le W3C ne développe que des spécifications, pas d'implémentations. Ce n'est donc pas parce qu'une spécification a été publiée qu'il existe des outils l'utilisant, à l'inverse, les développeurs n'attendent pas toujours que la spécification soit définitive pour l'implémenter.

Les spécifications du W3C ne constitue pas des normes, au sens utilisé dans le monde industriel, mais des consensus décidés entre les principaux éditeurs de logiciels et les grandes entreprises utilisatrices, pour éviter une anarchie de technologies Web incompatibles entre elles.

Créé le 15 avril 2006  par Erwy, GrandFather

Un projet du W3C passe par différentes phases avant de devenir une spécification :

  1. Working Draft : Le "brouillon de travail" ou élaboration de travail.
  2. Candidate Recommendation : version à peu près stable, normalement plus d'ajout de fonctionnalités.
  3. Recommendation: stade final que doivent respecter les implémentations des spécifications du W3C.
Créé le 15 avril 2006  par Erwy, GrandFather

Un document est bien formé s'il respecte les différentes règles de syntaxe de la norme XML.
Cours sur la syntaxe du XML

Créé le 15 avril 2006  par Erwy, GrandFather

Un document XML doit être bien formé, cette condition est sine qua non pour permettre son exploitation, mais cela ne garantit en rien que sa structure est conforme à ce qui est attendu, ce qui est critique dans le cadre de l'échange de données XML inter applications. Pour permettre ce contrôle, la grammaire du vocabulaire XML utilisé, l'ordonnancement de ses éléments et attributs, doit être connue et formalisée. Différents langages, les plus répandus étant DTD et W3C XML Schemas, permettent de formaliser cette grammaire, et sont implémentés par la plupart des parseurs, qui sont définis en conséquence comme des parseurs validant. L'opération de validation consiste donc en la comparaison, lors de la lecture d'un document XML par le parseur validant, de la structure du fichier XML avec la grammaire exprimée dans l'un de ces langages. Le document XML sera considéré valide si les deux concordent.

Créé le 15 avril 2006  par Erwy, GrandFather

Un parseur est un outil logiciel, un analyseur syntaxique, qui permet à une application cliente de valider (si c'est un parseur validant) un document XML et de le lire, voir de le modifier. Un parseur met à disposition de l'application cliente les données XML lues au travers d'API, les plus répandues étant SAX et DOM. Une autre catégorie de parseurs, plus récente, intègre une technologie PULL, associant les avantages de SAX - défini comme une technologie PUSH - et DOM sans leurs inconvénients. StAX (Streaming API for XML) est un exemple d'API Java Pull implémentée par des parseurs de BEA et Sun.

Créé le 15 avril 2006  par Erwy, GrandFather

SAX (Simple API for XML) est une API basée sur un modèle événementiel, qui transforme un document XML en un flux d'évènements déclenchés par la lecture d'éléments syntaxiques XML (balise ouvrante, balise fermante, etc ...). Le modèle est un quelque peu calqué sur celui des interfaces graphiques, l'application cliente devenant un "écouteur d'événement". SAX a comme avantage, grâce à son fonctionnement, de ne lire le code que par petites portions, ce qui lui évite de le charger en mémoire intégralement, contrairement à DOM. Il est donc très intéressant pour la lecture des gros documents. Il ne sera par contre pas adapté aux cas où l'application cliente ne peut pas se contenter d'un parcours linéaire et par "petits bouts" du document XML.

Créé le 15 avril 2006  par Erwy, GrandFather

DOM (Document Object Model) est une API permettant d'accéder au contenu d'un document XML sous la forme d'une structure arborescente. Le document XML, après avoir été totalement chargé en mémoire, est accessible au travers d'un ensemble d'objets correspondant aux différents types de noeuds qui s'y trouvent, et exposant les méthodes permettant de parcourir l'arbre, de façon hiérarchique ou transversale. L'approche diffère donc totalement de celle de SAX, bien qu'un arbre DOM puisse être construit en utilisant ce dernier. DOM est une recommandation du W3C, proposée en plusieurs versions (level) proposant des fonctionnalités croissantes et dont la compatibilité est ascendante ; Le Level 1 est devenue une recommandation le 1er octobre 98, le Level 2 (XML) le 13 novembre 2000, et tous les éléments du level 3 ne sont pas encore des recommandations à ce jour.

Il existe des implémentations de DOM dans pratiquement tous les langages interprétés ou compilés existant pouvant lire des documents XML.

Créé le 15 avril 2006  par Erwy, GrandFather

Les espaces de noms permettent à XML d'être un métalangage, en distinguant les vocabulaires XML entre eux. Un espace de noms XML a ainsi le même rôle que son homologue en Java ou C++, celui d'éviter les collisions de noms. Chaque vocabulaire XML dispose d'un espace de noms identifié par un URI unique, par exemple celui de XSLT est identifié par l'URI http://www.w3.org/1999/XSL/Transform. L'espace de noms est mis en oeuvre en plaçant un préfixe devant chaque élément et attribut, le préfixe étant associé à l'URI de cet espace de noms.

Avant de pouvoir être utilisé, un espace de nom et son préfixe associé doivent être déclaré, sous forme d'un attribut placé généralement dans l'élément racine, et préfixé par le préfixe spécial xmlns. Par exemple:

 
Sélectionnez

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

L'attribut xmlns:xsl indique au parseur XML que tous les éléments et attributs préfixés par xsl, et qui sont fils de <xsl:stylesheet>, appartiennent à l'espace de noms de XSLT, identifié par l'URI http://www.w3.org/1999/XSL/Transform.

Si vous créez votre propre vocabulaire XML, il est fortement conseillé de lui attribuer un URI qui délimitera son espace de noms, et de lui attacher un préfixe que vous utiliserez dans vos documents. Cet espace de noms ne sera pas très utile tant que vos documents seront traités isolément, par contre il deviendra indispensable quand vous "mixerez" vos éléments à ceux d'autres vocabulaires XML dans un même document, car il vous permettra d'éliminer toute ambiguïté si les deux vocabulaires emploient les mêmes noms d'éléments ou d'attributs. Un exemple de "mélange" de vocabulaires XML, assez fréquemment rencontré, est l'introduction d'éléments personnalisés dans des documents XHTML.

Créé le 15 avril 2006  par Erwy, GrandFather

Il est probable que la valeur de l'attribut encoding figurant dans le prologue XML de votre document, et qui est destiné à indiquer au parseur XML quel est l'encodage qui y est utilisé, ne corresponde pas à l'encodage réel, celui qui a été utilisé pour créer le document.
Cela se manifeste souvent, pour les documents comportant du texte en français, par un problème d'affichage des caractères accentués lors de leur affichage dans un éditeur XML, ou par des erreurs lors du parsing du document.

Exemple de prologue déclarant un encodage ISO-8859-1 (aussi appelé latin-1)
Sélectionnez

<?xml version="1.0" encoding="ISO-8859-1"?> 

Il est également important de noter que quand dans le cas où l'attribut encoding n'est pas renseigné, le parseur XML considère par défaut que l'encodage du document est UTF-8. Il est donc fortement conseillé de toujours spécifier quel est l'encodage utilisé.

Créé le 11 avril 2006  par Erwy, GrandFather

Le symbole Euro peut être utilisé littéralement (directement tapé au clavier) dans les documents XML déclarant le codage ISO-8859-15 dans leur prologue ; Pour les autres encodages, utilisez le caractère Unicode correspondant : &#8364;

Créé le 15 avril 2006  par Erwy, GrandFather

Pour cela il faut utiliser le parseur DOMet la librairie/les objets qui lui sont associés dans le langage utilisé

Langages et DOM
Créé le 25 novembre 2006  par Erwy

Un fichier XML est avant tout un fichier texte, n'importe quel éditeur texte permet donc de le modifier, il faut juste dans ce cas vérifier que les modifications éffectués ont laissé le fichier bien formé.
Pour des outils plus spécialisés voir le débat : Quel est pour vous le meilleur éditeur xml ?

Créé le 25 novembre 2006  par Erwy
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2006 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.