Qu'est-ce que le format de fichier XML ?
Les fichiers .xml stockent des données au format Extensible Markup Language, un standard de texte brut développé par le W3C. Les fichiers XML peuvent représenter n'importe quelle structure de données en texte brut, ce qui les rend adaptés au stockage, au partage et au transport de données entre applications sur Internet.
Le XML utilise des structures de balisage - des balises et des attributs imbriqués - qui définissent les règles qu'un processus d'encodage doit suivre pour produire des documents à la fois lisibles par la machine et par l'homme. Il a été conçu comme une implémentation plus accessible du SGML (Standard Generalized Markup Language), simplifiée pour le web. Les fichiers commencent généralement par la déclaration <?xml version="1.0" encoding="UTF-8"?>, et le type MIME est application/xml.
Les fichiers XML utilisent l'encodage Unicode (UTF-8 par défaut) et peuvent être ouverts et modifiés avec n'importe quel éditeur de texte standard. Comme le format est auto-descriptif - chaque élément est nommé et imbriqué dans une hiérarchie claire - les données peuvent être inspectées sans logiciel dédié, bien que leur traitement ou leur interrogation par programmation nécessite un analyseur (parser) ou un langage de requête tel que XPath.
Le XML est à bien des égards similaire au .HTML, car les deux formats utilisent un langage de balisage pour représenter un contenu structuré. L'HTML est axé sur la présentation et l'interaction des pages web, tandis que le XML décrit le contenu par rapport aux données elles-mêmes. Les deux formats sont utilisés ensemble dans de nombreuses applications web. Le XML sert également de base à des standards connexes tels que les schémas de validation .XSD, les feuilles de style de transformation .XSL et les flux de syndication .RSS.
Sécurité et sûreté
RISQUE : MEDIUMUn fichier XML est du texte brut et ne contient aucun code exécutable, sa lecture est donc sûre. Les risques réels se situent au niveau de l'ANALYSEUR (parser), pas du fichier : les attaques XML External Entity (XXE) abusent des déclarations <!DOCTYPE>/<!ENTITY> pour lire des fichiers locaux ou déclencher des requêtes réseau, et l'expansion d'entités « billion laughs » peut épuiser la mémoire (déni de service). Cela ne concerne que les logiciels qui analysent du XML non fiable avec les entités externes et le traitement DTD activés - les analyseurs modernes les désactivent par défaut. Pour un utilisateur final ouvrant simplement un .xml pour le lire, il n'y a aucun danger ; la prudence est de mise pour les développeurs traitant du XML non fiable. Méfiez-vous également des fichiers qui ressemblent à « data.xml » mais qui sont en réalité autre chose renommée.
Détails du format
en brefProgrammes qui ouvrent les fichiers XML
Détails techniques
spécifications approfondies| Encodage du fichier | Unicode uniquement ; UTF-8 est la valeur par défaut lorsqu'aucune déclaration n'est présente ; UTF-16 et UTF-32 sont pris en charge et doivent être déclarés dans le prologue XML |
| Type MIME | `application/xml` (principal, selon la RFC 7303) ; `text/xml` accepté pour la compatibilité héritée ; des dialectes spécifiques peuvent enregistrer leur propre type (ex: `application/rss+xml`) |
| Signature de fichier | Pas de nombre magique binaire fixe ; les fichiers s'ouvrent généralement par la déclaration XML facultative `<?xml` (hex `3C 3F 78 6D 6C`) ; un BOM UTF-8 (`EF BB BF`) ou un BOM UTF-16 (`FF FE` / `FE FF`) peut le précéder |
| Structure du document | Hiérarchie stricte : exactement un élément racine ; imbrication illimitée d'éléments enfants ; les balises d'ouverture peuvent porter des attributs nommés et entre guillemets ; l'arborescence entière doit être bien formée |
| Règles de conformité | Toutes les balises doivent être fermées ou auto-fermées ; les éléments ne doivent pas se chevaucher ; les valeurs d'attributs doivent être entre guillemets ; cinq entités prédéfinies (&, <, >, ", ') gèrent les caractères réservés |
| Mécanismes de validation | DTD (Document Type Definition - fichier `.dtd` interne ou externe, standard plus ancien) et XSD (XML Schema Definition - un fichier `.xsd` lui-même écrit en XML, avec un système de types plus riche) ; Schematron propose une validation basée sur des règles |
| Support des espaces de noms | Les déclarations `xmlns` et `xmlns:prefix` lient les noms d'éléments et d'attributs à un URI, empêchant les collisions lors de la combinaison de vocabulaires provenant de sources multiples |
| Sections CDATA | Les blocs `<![CDATA[...]]>` permettent au texte brut contenant <, >, et & d'apparaître sans échappement d'entité ; utile pour intégrer des fragments HTML ou du code de script |
| Instructions de traitement | La syntaxe `<?target instruction?>` intègre des directives spécifiques à l'application (ex: `<?xml-stylesheet type="text/xsl" href="style.xsl"?>`) en dehors du modèle de données XML |
| Langages de requête | XPath 1.0/2.0/3.1 cible des nœuds individuels à l'intérieur d'un document ; XQuery permet des requêtes de style SQL sur des ensembles de données XML ; les deux sont standardisés par le W3C |
| Transformation XSLT | Les fichiers `.xml` peuvent être transformés en HTML, texte brut ou d'autres vocabulaires XML au moment de l'exécution par un processeur XSLT fusionnant le document source avec une feuille de style `.xsl` ou `.xslt` |
| Syntaxe des commentaires | Les commentaires `<!-- texte -->` peuvent apparaître n'importe où en dehors d'une balise ; les doubles tirets sont interdits à l'intérieur du corps du commentaire ; les commentaires sont exclus du modèle de données XML |
| Normalisation des sauts de ligne | Les analyseurs conformes normalisent les séquences \r\n et \r seul en \n avant le traitement, garantissant un comportement cohérent des fins de ligne sur toutes les plateformes |
| Déclarations d'entités | Les entités nommées (&nom;) et les références de caractères numériques (&#nnnn; décimal ou &#xHHHH; hex) intègrent n'importe quel point de code Unicode ; des entités personnalisées peuvent être déclarées dans une DTD |
| Structure du prologue | Un document XML se compose d'une déclaration XML facultative, d'une déclaration DOCTYPE facultative, d'instructions de traitement et de commentaires facultatifs, suivis d'exactement un élément racine |
| Écosystème de dialectes | Le XML est la syntaxe de base pour XHTML, SVG, RSS, Atom, DOCX (Office Open XML), EPUB, KML, et les formats de configuration utilisés par Android, Maven, Spring et Java EE |
| Publié | 1998 (XML 1.0 W3C Recommendation, February 10, 1998) |
| Standard ouvert | Oui · libre de droits |
| Spécification | www.w3.org |
Conversions XML
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers XML.