Extensible Markup Language

Un article de Freepedia.

(Redirigé depuis XML)
Image:Langage progr.png
Cet article fait partie de la série
Langages de programmation
Langages à objets
Ada 95 - C++ - C#
Common Lisp
Delphi - Eiffel - Java
Nice - Oz - Python
Ruby - Simula - Lisaac
Smalltalk - Visual Basic
Langages impératifs
APL - ASP - Assembleur
BASIC - C - Cobol
Forth - Fortran - Logo
OPL - Pascal - Perl - PHP
Langages fonctionnels
Erlang - Haskell
ML/OCaml - Oz
Lisp/Common Lisp
Scheme
Langages déclaratifs
Clips - Oz - Prolog
Langages concurrents
Ada 95 - Erlang
Java - Oz
Langages balisés
HTML - SGML - XML
Dialectes XML
S-expressions
Voir aussi
Conception - Codage
Tests - Optimisations

XML (Extensible Markup Language ou langage de balisage extensible) est un standard du World Wide Web Consortium qui sert de base pour créer des langages balisés spécialisés; c'est un « méta langage ». Il est suffisamment général pour que les langages basés sur XML, appelés aussi dialectes XML, puissent être utilisés pour décrire toutes sortes de données et de textes. Il s'agit donc partiellement d'un format de données.

Sommaire

Objectifs et utilité

L'objectif initial de XML était de faciliter le partage de textes et d'informations structurées, par exemple au travers de l'Internet, en séparant le contenu (les données) du contenant (la présentation des données). Il constitue une simplification de SGML bien qu'il apporte des améliorations quant à la portabilité, notamment grâce à l'intégration d'Unicode.

Les dialectes XML (XSLT, XML Schema, XHTML, RDF/XML, SOAP, SMIL, MathML, SVG) sont décrits de façon formelle : une structure de données simple est définie avec une DTD (Document Type Definition), une structure de données détaillée est définie avec un XML Schema ou tout autre DSDL (Document Schema Definition Languages, c'est-à-dire language de description de schéma).

Il existe des outils (qui peuvent être gratuits ou libres) permettant la manipulation de ces définitions : les processeurs XML [1] (en). La disponibilité d'une syntaxe standard et d'outils de manipulation réduit significativement le coût du cycle de développement, permettant à des programmes de modifier et de valider, sans connaissances préalables, des documents écrits dans ces langages. En effet, avant l'avènement du populaire langage généraliste de description de données qu'est XML, les concepteurs de logiciels avaient pour habitude de définir leurs propres formats de fichiers ou leurs propres langages pour partager les données entre programmes (à l'exception de quelques standards professionnels tels qu'EDIFACT). Ceci nécessitait de concevoir et de programmer des analyseurs syntaxiques dédiés.

Fonctionnement

Un fichier XML est un fichier texte. Le codage des caractères est défini dans la première déclaration du document. Par défaut il s'agit de UTF-8, une transcription binaire particulière de Unicode, un format qui diffère peu de l'ASCII (sur-ensemble).

Le fichier XML est structuré en « éléments » à l'aide de « balises » qui marquent le début et la fin de chaque élément. Les éléments peuvent contenir du texte et éventuellement d'autres éléments (le mot « élément » est donc trompeur). L'ensemble des données du document XML est contenu dans un élément unique appelé « racine », élément qui contient tous les autres éléments.

Outre les éléments et le contenu des éléments, on trouve aussi dans un document XML:

  • des commentaires (qui ne font pas partie des données au sens strict) ;
  • des instructions de traitement (directives données au processeur XML) ;
  • des « appels » de caractère (pour coder des caractères qui n'existent pas dans le codage choisi pour le document tout entier) ;
  • des « appels » d'entités (permet l'appel d'une entité nommée qui est une sorte de « macro » de texte).

Règles fondamentales

L'efficacité de XML dépend fortement des normes strictes qui régissent sa structure. Pour être considéré comme un document XML, un document doit être « bien formé », c'est-à-dire qu'il doit être conforme aux règles suivantes :

  • Dans sa première déclaration, le document doit être identifié comme un document XML. Cette première déclaration est nommée le prologue. Il doit contenir des informations sur la version de XML utilisée, le codage des caractères (si nécessaire) et indiquer également si le fichier XML est associé à une DTD ou à un autre langage de définition de document (XML Schema, Relax NG Schematron) ou s'il est autonome.
  • Un document XML ne doit avoir qu'un seul élément racine, tous les autres éléments sont contenus dans cet élément, aussi appelé l'élément document.
  • Chaque élément XML doit commencer par une balise ouvrante et se terminer par une balise fermante. Un élément vide peut être représenté par une balise d'élément vide qui ressemble à ceci : <exemple/>; cette balise est considérée comme étant une balise ouvrante suivie d'une balise fermante. Ceci est utilisé pour éviter de devoir écrire <exemple></exemple> tout en conservant le bon formatage.
  • La valeur d'un attribut doit être entre guillemets (simple « ' » ou double « " »).
  • Les entités doivent être imbriquées et ne pas se recouvrir, c'est-à-dire qu'une entité ne doit pas commencer dans une entité et se terminer dans une autre.

Il est à noter que XML est sensible à la casse. Par exemple, « <Exemple></Exemple> » est une paire bien formée alors que « <Exemple></exemple> » n'en est pas une.

Contrairement au HTML, les balises XML indiquent ce que signifient les données et non la façon de les afficher (du moins par principe, chaque langage basé sur XML est libre de le suivre ou non).

Quand un document XML est bien formé et conforme à la DTD auquel il est associé, ce document est qualifié de valide.

Un document XML peut être associé à des feuilles de style XSLT, feuilles qui permettent de générer de nouveaux documents contenants des informations provenant du document XML. Il est ainsi possible de générer des fichiers XML ayant une structure différente du document initial (transformation), mais aussi d'autres documents : requêtes SQL, pages HTML, etc. Un document XML peut aussi être affiché par certains navigateurs Web (par exemple Internet Explorer ou Mozilla) en utilisant une feuille de style CSS.

Utilisations actuelles

Le succès de XML s'explique aussi par la définition d'interfaces de programmation (API) standard pour les processeurs XML. Les API les plus largement utilisées sont :

  • SAX utilisé pour les traitements de documents à la volée (cette API est utilisée pour des traitements au fur et à mesure de la réception d'un document XML),
  • DOM utilisé pour les accès directs aux éléments d'un document XML, grâce à la construction d'un arbre logique complet contenant toute la structure du document XML (cette API est utilisée quand le document est entièrement disponible). DOM permet également de générer de nouveaux documents XML, en créant un arbre logique, qu'on transforme ensuite en document XML.

Ces API sont les plus utilisées mais d'autres API existent, comme JAXP, JDOM et dom4J pour Java

XML est également utilisé dans le cadre d'architectures de type SOA (Service Oriented Architecture) pour les Web Services.

Une grande partie de l'interface des navigateurs Firefox et Mozilla est construite avec des langages utilisant XML.

OpenDocument est un standard XML émergent dans le domaine de la bureautique. Basé sur le format des premières versions d'OpenOffice.org, il permet maintenant l'interopérabilité avec d'autres applications comme KOffice.

Technologies en relation avec XML

Dialectes XML

Voir aussi

Liens externes



Views
Outils personels
Boîte à outils
Autres langues
Autres Liens