Extensible Markup Language
Un article de Freepedia.
| 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
- Base native XML
- UIML
- S-expression
- RSS
- ASN.1
- Parser
- XMLSpy, un éditeur et un environnement de développement XML
Liens externes
- Site web du W3C (en)
- Site web du consortium OASIS (en)
- Page d'accueil XML du W3C (en)
- Recommandation XML 1.1 (fr)
- Recommandation XML 1.0 (fr)
- SELFHTML: XML (fr)
- Editeur XML multi-platformes Un exemple d'éditeur XML
- Marquage d'un contenu XML (fr) à partir de lexiques externes (outil XSLT)
- XML: Principe et utilisation (fr)



