Qu'est-ce que XML ?
XML (eXtensible Markup Language) est un langage de balisage conçu pour structurer, stocker et transporter des données de manière lisible tant par les humains que par les machines. Créé par le W3C en 1998, XML est devenu un standard incontournable pour l'échange de données structurées.
Contrairement à HTML qui se concentre sur la présentation, XML se focalise exclusivement sur la structure et la sémantique des données. Il permet de créer ses propres balises personnalisées, d'où son caractère "extensible".
Pourquoi XML ?
Les avantages de XML
Cas d'usage principaux
- Échange de données entre systèmes
- Fichiers de configuration
- Stockage de documents structurés
- Services web (SOAP, REST)
- Formats de fichiers (Office, SVG, RSS)
XML vs JSON vs HTML : Comprendre les différences
Comparaison structurelle
Exemple comparatif : Représenter un livre
En XML :
1<?xml version="1.0" encoding="UTF-8"?>
2<livre isbn="978-2-123456-78-9" langue="fr">
3 <titre>Les Misérables</titre>
4 <auteur>
5 <prenom>Victor</prenom>
6 <nom>Hugo</nom>
7 <nationalite>française</nationalite>
8 </auteur>
9 <publication>
10 <annee>1862</annee>
11 <editeur>A. Lacroix, Verboeckhoven & Cie</editeur>
12 </publication>
13 <resume>
14 Un roman historique, social et philosophique dans lequel
15 Victor Hugo décrit la vie de misérables dans Paris...
16 </resume>
17 <categories>
18 <categorie>Roman historique</categorie>
19 <categorie>Littérature française</categorie>
20 </categories>
21</livre>
En JSON :
1{
2 "livre": {
3 "isbn": "978-2-123456-78-9",
4 "langue": "fr",
5 "titre": "Les Misérables",
6 "auteur": {
7 "prenom": "Victor",
8 "nom": "Hugo",
9 "nationalite": "française"
10 },
11 "publication": {
12 "annee": 1862,
13 "editeur": "A. Lacroix, Verboeckhoven & Cie"
14 },
15 "resume": "Un roman historique, social et philosophique...",
16 "categories": [
17 "Roman historique",
18 "Littérature française"
19 ]
20 }
21}
En HTML :
1<div class="livre" data-isbn="978-2-123456-78-9">
2 <h1>Les Misérables</h1>
3 <div class="auteur">
4 <span class="prenom">Victor</span>
5 <span class="nom">Hugo</span>
6 </div>
7 <div class="publication">
8 <span class="annee">1862</span>
9 <span class="editeur">A. Lacroix, Verboeckhoven & Cie</span>
10 </div>
11 <p class="resume">
12 Un roman historique, social et philosophique...
13 </p>
14</div>
Domaines d'application de XML
1. Configuration d'applications
XML est largement utilisé pour les fichiers de configuration grâce à sa lisibilité et sa capacité à exprimer des structures complexes.
1<?xml version="1.0" encoding="UTF-8"?>
2<configuration>
3 <database>
4 <host>localhost</host>
5 <port>5432</port>
6 <name>ma_base</name>
7 <credentials>
8 <username>admin</username>
9 <password encrypted="true">aGVsbG93b3JsZA==</password>
10 </credentials>
11 </database>
12 <logging level="INFO">
13 <file path="/var/log/app.log" max-size="10MB"/>
14 <console enabled="true"/>
15 </logging>
16</configuration>
2. Échange de données B2B
1<?xml version="1.0" encoding="UTF-8"?>
2<commande numero="CMD-2025-001" date="2025-08-13">
3 <client id="CLIENT-123">
4 <nom>ACME Corporation</nom>
5 <adresse>
6 <rue>123 Rue du Commerce</rue>
7 <ville>Paris</ville>
8 <code_postal>75001</code_postal>
9 <pays>France</pays>
10 </adresse>
11 </client>
12 <articles>
13 <article ref="ART-001" quantite="5">
14 <nom>Ordinateur portable</nom>
15 <prix_unitaire devise="EUR">899.99</prix_unitaire>
16 </article>
17 <article ref="ART-002" quantite="2">
18 <nom>Souris sans fil</nom>
19 <prix_unitaire devise="EUR">29.99</prix_unitaire>
20 </article>
21 </articles>
22 <total devise="EUR">4559.93</total>
23</commande>
3. Documents structurés (RSS, Atom)
1<?xml version="1.0" encoding="UTF-8"?>
2<rss version="2.0">
3 <channel>
4 <title>Blog Tech - Derniers articles</title>
5 <link>https://monblog.tech</link>
6 <description>Les dernières actualités en développement web</description>
7 <language>fr-FR</language>
8
9 <item>
10 <title>Introduction à XML</title>
11 <link>https://monblog.tech/xml-introduction</link>
12 <description>Découvrez les fondements du langage XML...</description>
13 <pubDate>Wed, 13 Aug 2025 10:00:00 +0200</pubDate>
14 <guid>https://monblog.tech/xml-introduction</guid>
15 </item>
16 </channel>
17</rss>
Architecture et écosystème XML
Les technologies associées
Validation
- DTD : Validation basique de structure
- XML Schema (XSD) : Validation avancée avec types de données
Transformation et requêtes
- XSLT : Transformation de documents XML
- XPath : Navigation et sélection de nœuds
- XQuery : Langage de requête pour XML
Parsing
- DOM : Charge tout le document en mémoire
- SAX : Lecture séquentielle, événementielle
- StAX : Lecture par flux avec contrôle du développeur
Exemples concrets d'utilisation
Configuration Maven (Java)
1<?xml version="1.0" encoding="UTF-8"?>
2<project xmlns="http://maven.apache.org/POM/4.0.0">
3 <modelVersion>4.0.0</modelVersion>
4 <groupId>com.example</groupId>
5 <artifactId>mon-projet</artifactId>
6 <version>1.0.0</version>
7
8 <dependencies>
9 <dependency>
10 <groupId>org.springframework</groupId>
11 <artifactId>spring-core</artifactId>
12 <version>5.3.21</version>
13 </dependency>
14 </dependencies>
15</project>
Fichier SVG (Scalable Vector Graphics)
1<?xml version="1.0" encoding="UTF-8"?>
2<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg">
3 <circle cx="50" cy="50" r="40"
4 stroke="black" stroke-width="3" fill="red"/>
5 <text x="50" y="55" text-anchor="middle"
6 font-family="Arial" font-size="12">XML</text>
7</svg>
Avantages et inconvénients
✅ Avantages
- Lisibilité humaine : Structure claire et auto-documentée
- Validation stricte : Contrôle de conformité avec DTD/XSD
- Métadonnées riches : Attributs et espaces de noms
- Standard ouvert : Support universel et pérennité
- Outils matures : Écosystème complet de technologies
⚠️ Inconvénients
- Verbosité : Plus lourd que JSON
- Complexité : Courbe d'apprentissage plus élevée
- Performance : Parsing plus lent que JSON
- Taille : Fichiers plus volumineux
Conclusion
XML reste un choix pertinent en 2025 pour :
- Les échanges B2B nécessitant une validation stricte
- Les documents complexes avec métadonnées
- Les systèmes legacy nécessitant l'interopérabilité
- Les configurations d'applications enterprise
Dans le prochain article, nous explorerons en détail la syntaxe et structure XML, en apprenant à créer des documents bien formés et à maîtriser les règles fondamentales du langage.