Dernière mise à jour : 25 mars 2025

Qu’est-ce que XML ?
XML (Extensible Markup Language) est un langage de balisage et un format de fichier utilisé pour stocker, transmettre et reconstruire des données. Il offre une approche structurée pour encoder l’information, la rendant à la fois lisible par l’homme et par la machine.
Caractéristiques clés de XML
1. Défini par des standards ouverts
- Établi par le World Wide Web Consortium (W3C) en 1998 sous la spécification XML 1.0.
- Suit des règles strictes pour garantir que les données sont structurées et faciles à interpréter.
2. Objectifs de conception
- XML est conçu pour être simple, général et utilisable sur différentes plateformes.
- Utilise un format basé sur le texte, ce qui le rend facile à lire et à modifier.
3. Support Unicode
- XML prend en charge Unicode, permettant de stocker et de traiter du texte dans plusieurs langues.
4. Polyvalence
- Initialement créé pour les documents, XML est maintenant largement utilisé pour la représentation de données dans divers domaines, y compris les services web, les API et les fichiers de configuration.
5. Schéma et API
- Les structures XML peuvent être définies à l’aide d’un Document Type Definition (DTD), d’un XML Schema (XSD) ou de Relax NG.
- Diverses API, telles que DOM (Document Object Model) et SAX (Simple API for XML), permettent de traiter XML.
6. Utilisations courantes de XML
- Échange de données entre différents systèmes (p. ex., services web, API).
- Fichiers de configuration dans les applications logicielles.
- Stockage d’informations structurées (p. ex., flux RSS, graphiques SVG, formats de documents comme DOCX).
- Développement web (p. ex., XHTML, SOAP, applications basées sur AJAX).
Vue d’ensemble de XML
1. Objectif principal de XML : la sérialisation
La sérialisation dans XML signifie:
- Stocker des données dans un format structuré.
- Transmettre des données entre différents systèmes.
- Reconstruire des données dans une forme utilisable.
Lorsque deux systèmes ont besoin d’échanger des informations, XML fournit un format de fichier standardisé pour l’interopérabilité. Il agit comme une “lingua franca” pour l’échange de données structurées.
2. XML en tant que langage de balisage
XML est un langage de balisage, ce qui signifie qu’il:
- Étiquette les données avec des balises pour une structure claire.
- Organise l’information de manière hiérarchique.
- Catégorise les données avec des métadonnées.
Exemple :
<book>
<title>XML Basics</title>
<author>John Doe</author>
</book>
Ici, <book>
, <title>
, et <author>
sont des balises qui définissent les éléments de données.
3. Schéma XML (XSD) et validation
Un schéma XML (XSD) définit les règles structurelles pour les documents XML.
Les documents XML peuvent être:
- Bien formés → Suivent les règles de syntaxe de base (imbriquement correct, balises fermantes appropriées).
- Valides → Conforment aux règles du schéma (éléments obligatoires, types de données corrects).
Exemple d’une règle XSD:
<xs:element name="title" type="xs:string"/>
Cela garantit que <title>
doit contenir une valeur de type chaîne.
4. Types de médias XML (RFC 7303)
Le IETF RFC 7303 définit les types de médias XML pour la transmission de données:
- application/xml → Données XML standard.
- application/xml-external-parsed-entity → Entités XML analysées.
- application/xml-dtd → Documents DTD XML.
Pour les formats basés sur XML, le suffixe +xml est utilisé (p. ex., image/svg+xml
pour les images SVG).
5. XML dans les applications réseau (RFC 3470 / IETF BCP 70)
Le IETF BCP 70 (RFC 3470) décrit les meilleures pratiques pour l’utilisation de XML dans les applications basées sur le réseau, assurant une interopérabilité des données sans faille entre les systèmes.
1. Applications de XML
XML est un langage de balisage flexible conçu pour l’échange de données sur Internet. Sa syntaxe a influencé de nombreux formats de documents et protocoles de communication, la rendant une technologie fondamentale dans plusieurs industries.
Formats courants basés sur XML :
- Flux web : RSS, Atom
- Documents bureautiques : Office Open XML, OpenDocument
- Graphiques et modèles 3D : SVG, COLLADA
- Technologies web : XHTML
- Protocoles d’échange de données : SOAP, XMPP
- AJAX : Utilise XML pour l’échange de données asynchrone
Normes industrielles utilisant XML :
- Santé : HL7 (Health Level 7)
- Industrie du voyage : OpenTravel Alliance
- Finance : FpML (Financial products Markup Language)
- Immobilier et hypothèques : MISMO
- Échange de données gouvernementales : National Information Exchange Model
XML dans la science :
En météorologie, XML est utilisé pour la représentation des données météorologiques opérationnelles suivant les standards IWXXM. De même, Darwin Information Typing Architecture (DITA) est une norme XML largement utilisée dans l’édition.
2. Terminologie clé dans XML
Comprendre la terminologie de base dans XML est crucial pour travailler efficacement avec les documents XML.
Caractère
Un document XML est une séquence de caractères Unicode. XML 1.1 permet presque tous les caractères Unicode, sauf le caractère Null (U+0000
), qui est strictement interdit.
Processeur et application
- Le processeur XML (ou analyseur) lit et analyse le balisage XML.
- L’application reçoit les données structurées du processeur et les utilise.
Balisage et contenu
XML divise les caractères en balisage et contenu :
- Balisage : Comprend les éléments, attributs et entités (p. ex.,
<tag>
et&
). - Contenu : Les données réelles à l’intérieur des éléments.
- Sections CDATA : Permettent le texte qui ne doit pas être analysé comme balisage, entouré de
<![CDATA[ ... ]]>
.
Balises et éléments
- Balises : Constructions de balisage entourées par
< >
.<section>
(Balise de début)</section>
(Balise de fin)<line-break />
(Balise d’élément vide)
- Éléments : Composants logiques définis par des balises.
- Exemple :
<greeting>Hello, world!</greeting>
- Exemple :
Attributs
Les attributs fournissent des métadonnées pour les éléments utilisant des paires nom-valeur. Exemple :
<img src="image.jpg" alt="Description" />
src="image.jpg"
etalt="Description"
sont des attributs de l’élément<img>
.
3. Caractères et échappement dans XML
Caractères Unicode valides dans XML
Les documents XML n’autorisent que certains caractères Unicode pour garantir une analyse correcte.
Caractères autorisés dans XML 1.0 :
- Caractères de contrôle :
U+0009
(Tabulation)U+000A
(Saut de ligne)U+000D
(Retour chariot)
- Caractères de texte :
U+0020–U+D7FF
U+E000–U+FFFD
U+10000–U+10FFFF
Améliorations de XML 1.1 :
- Autorise tous les caractères de contrôle U+0001–U+001F mais exige qu’ils soient échappés.
- Le caractère Null U+0000 reste interdit.
4. Encodage dans XML
Encodages courants XML :
XML prend en charge les encodages basés sur Unicode, y compris :
- UTF-8 (Recommandé par défaut)
- UTF-16 (Doit être pris en charge par tous les analyseurs XML)
- ASCII, ISO-8859-X (Encodages hérités)
Déclaration d’encodage dans XML :
L’en-tête XML peut spécifier l’encodage :
<?xml version="1.0" encoding="UTF-8"?>
- Si aucun encodage n’est spécifié, UTF-8 est supposé.
- UTF-16 nécessite un BOM (Byte Order Mark) pour une détection appropriée.
5. Échappement des caractères spéciaux dans XML
Puisque la syntaxe XML réserve certains caractères, ils doivent être échappés pour éviter les conflits.
Entités XML prédéfinies :
Caractère | Forme échappée | Exemple |
---|---|---|
< (Inférieur à) | < | I <3 XML → I <3 XML |
> (Supérieur à) | > | x > y → x > y |
& (Esperluette) | & | AT&T → AT&T |
' (Apostrophe) | ' | "O'Reilly" → O’Reilly |
" (Guillemet) | " | She said "hello" → She said “hello” |
Références de caractères numériques :
Pour les caractères spéciaux qui ne peuvent pas être tapés, utilisez des références numériques :
- Décimal :
中 <!-- Caractère chinois "中" -->
- Hexadécimal :
中 <!-- Caractère chinois "中" -->
- Exemple :S’affiche sous : I <3 Jörg
<message>I <3 Jörg</message>
Gestion des données binaires :
XML ne prend pas en charge les données binaires brutes. Au lieu de cela, utilisez l’encodage Base64.
6. Commentaires dans XML
Syntaxe des commentaires XML :
<!-- Ceci est un commentaire XML valide -->
Règles pour les commentaires XML :
- Ne peuvent pas apparaître avant la déclaration XML.
- Ne peuvent pas contenir
--
(double tiret) à l’intérieur du commentaire. - Les références d’entité sont ignorées dans les commentaires.
Exemple :
<!-- Ceci est un commentaire avec symboles < et & -->
Conclusion
XML est une technologie essentielle pour l’échange de données structurées, alimentant les flux web, documents bureautiques, données scientifiques et normes industrielles. Comprendre la terminologie clé XML, les règles d’encodage et les mécanismes d’échappement garantit des documents XML bien formés qui fonctionnent correctement sur différents systèmes.
En suivant les meilleures pratiques en matière d’encodage de caractères et d’échappement, les développeurs peuvent éviter les erreurs d’analyse et garantir la compatibilité dans les applications basées sur XML.