Extensible Markup Language: Langage informatique de balisage générique dérivé du SGML

1.0 (5e édition)

XML
EXtensible Markup Language
Extensible Markup Language: Historique, Comparaison avec dautres formats, Composants et syntaxe
Extensible Markup Language: Historique, Comparaison avec dautres formats, Composants et syntaxe
Caractéristiques
Extension
.xmlVoir et modifier les données sur Wikidata
Type MIME
application/xml, text/xmlVoir et modifier les données sur Wikidata
PUID
Développé par
Version initiale
Type de format
Basé sur
Norme
Spécification
Site web

L'Extensible Markup Language, généralement appelé XML, « langage de balisage extensible » en français, est un métalangage informatique de balisage générique qui est un sous-ensemble du Standard Generalized Markup Language (SGML). Sa syntaxe est dite « extensible » car elle permet de définir différents langages avec pour chacun son vocabulaire et sa grammaire, comme XHTML, XSLT, RSS, SVG… Elle est reconnaissable par son usage des chevrons (<, >) encadrant les noms des balises. L'objectif initial de XML est de faciliter l'échange automatisé de contenus complexes (arbres, texte enrichi, etc.) entre systèmes d'informations hétérogènes (interopérabilité). Avec ses outils et langages associés, une application XML respecte généralement certains principes :

  • la structure d'un document XML est définie et validable par un schéma ;
  • un document XML est entièrement transformable dans un autre document XML.

Historique

Dan Connolly ajoute le Standard Generalized Markup Language à la liste des activités du World Wide Web Consortium lorsqu'il s'y joint en 1995. Les travaux débutent à la mi-1996 lorsque l'ingénieur Jon Bosak (en) de Sun Microsystems élabore une charte et recrute des collaborateurs. Bosak se fait connaître dans la petite communauté de personnes ayant de l'expérience à la fois dans le SGML et dans le Web.

XML est compilé par un groupe de travail de onze membres, soutenu par environ 150 membres de divers groupes d'intérêt. Le débat technique a eu lieu sur la liste de diffusion commune et les questions ont été résolues par consensus ou, lorsque cela a échoué, à la majorité des voix du groupe de travail. Les corédacteurs du cahier des charges étaient à l'origine Tim Bray (en), qui a notamment conduit l'informatisation du Oxford English Dictionary, et Michael Sperberg-McQueen (en), de l'Université de l'Illinois, qui était éditeur en chef de la DTD TEI ; accompagnés ensuite de Jean Paoli, de Microsoft, comme troisième coéditeur. James Clark servit comme responsable technique du groupe de travail, notamment en contribuant à l'élément vide «  » et au nom « XML ». Tim Bray, dans son Annotated XML Specification « la spécification XML annotée », explique plus longuement le contexte qui a rendu possible ce standard. Plusieurs autres noms furent envisagés avant XML, ils faisaient référence à une version allégée du SGML : MGML (Minimal Generalized Markup Language), SLIM (Structured Language for Internet Markup) et MAGMA (Minimal Architecture for Generalized Markup Applications). Un compte rendu des décisions de conception et de leurs justifications ont été compilées par Michael Sperberg-McQueen, le 4 décembre 1997.

Le groupe de travail XML ne s'est jamais rencontré face-à-face, la conception a été réalisée via des courriers électroniques et des téléconférences hebdomadaires. Les principales décisions de conception ont été prises en une vingtaine de semaines de travail intense entre juillet et novembre 1996, lorsque le premier travail de spécification XML a été publié. D'autres travaux de conception sont poursuivis jusqu'en 1997, puis le XML 1.0 est devenu une recommandation W3C le .

XML et SGML

L'objectif d'XML est expliqué dès le début de la spécification du avec une phrase toujours d'actualité : « Son but est de permettre au SGML générique d'être transmis, reçu et traité sur le Web de la même manière que l'est HTML aujourd'hui ». SGML est un langage de balisage, employé dans les industries de la documentation et de l'édition. En adoptant cette syntaxe pour HTML, Tim Berners-Lee confrontait une technologie complexe à de plus en plus d'utilisateurs. L'objectif d'XML était de définir un langage aussi générique, mais plus simple que SGML. De fait, XML est un sous-ensemble de SGML.

À la lumière des années passées, cette spécification a rempli l'objectif qu'elle se fixait, XML a été largement suivi et favorise l'interopérabilité. La disponibilité d'une syntaxe standard et d'outils de manipulation réduit significativement le coût du cycle de développement, permettant à des logiciels 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), ce qui exigeait de concevoir et de programmer chaque fois des analyseurs syntaxiques spécialisés. XML a permis d'effectuer ces tâches avec des outils standards.

Plusieurs décisions ont contribué au succès du XML.

Adoption de l'Unicode

La norme XML stipule que tous les outils de traitement du XML doivent accepter les codages des caractères UTF-8 et UTF-16 de ISO 10646, c'est-à-dire Unicode. Cela donne une base commune permettant de représenter pratiquement toutes les langues du monde. SGML ne fournissait pas une telle base, rendant plus probable des problèmes de conversion de codage des caractères.

Grammaire plus simple

SGML est orienté pour la saisie humaine de texte structuré et autorise beaucoup de raccourcis. Ainsi, les versions de HTML fondées sur SGML permettent d'omettre certaines balises de fermeture, de raccourcir des attributs et de mélanger minuscules et majuscules.

 <UL compact>     <LI>Item 1     <li>Item<br>2Li> ul> 

Ces possibilités compliquent le traitement automatique et sont interdites pour les applications de XML.

 <ul compact="compact">     <li>Item 1li>     <li>Item<br/>2li> ul> 

Espace de noms

SGML insiste surtout sur la validation, sur la conformité à un modèle contraignant. XML prévoit un usage plus souple de l'information structurée. Il spécifie un moyen de faire cohabiter plusieurs vocabulaires de balises dans un même document grâce à la définition d'espaces de noms.

      version="1.0"     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"     xmlns="http://www.w3.org/1999/xhtml"     xmlns:tei="http://www.tei-c.org/ns/1.0" >           match="tei:abbr">                                      

Bilan

XML a été largement adopté en informatique dès sa normalisation en 1998. Par la suite, des formats de données moins verbeux comme YAML et JSON ont commencé à le concurrencer sérieusement.

Paradoxalement, XML n'a pas réussi à remplacer SGML pour la grammaire de HTML. Les premières versions de HTML (2, 3.2 et 4) sont formellement des applications de SGML. À la suite de l'apparition de XML, HTML 4 a été reformulé en application de XML sous le nom de XHTML 1.0. Mais bien que XHTML ait été dans un premier temps largement adopté par les concepteurs de pages Web, il a ensuite perdu du terrain face à HTML5, qui n'est pas une application de XML ni de SGML. En fait, en application du principe de robustesse, les navigateurs Web ont toujours interprété le HTML avec des algorithmes maison sans tenir compte de SGML ni de XML. Et HTML5 a entériné cet état de fait.

Versions

La version 1.0 d'XML a été publiée le .

La version 1.1 d'XML a été publiée le . Elle apporte des améliorations dans le support des différentes versions d'Unicode, permet l'usage de caractères de contrôle dans le texte (à l'exception du caractère 0), et organise les fins de ligne de façon compatible avec les technologies IBM.

Le W3C recommande aux interpréteurs XML de reconnaître les deux versions, bien que la première version soit beaucoup plus répandue que la seconde.

Comparaison avec d'autres formats

XML est doté d'une syntaxe générique et extensible qui lui permet de structurer une grande variété de contenus, car son « langage » (vocabulaire et grammaire) peut être redéfini.

Si le début de cet article était écrit en XML, il pourrait ressembler à ceci.

 xmlns="http://docbook.org/ns/docbook">     Extensible Markup Language: Historique, Comparaison avec dautres formats, Composants et syntaxe - Wiki Français (French)              XML (Extensible Markup Language, « langage de balisage extensible »)…       

Dans ce code, chacun peut identifier des portions de texte (exemple : Extensible, XML…) et des mots clés encadrés de chevrons (<, >) :

, </code>, <code><para></code>… Ces mots sont définis dans l'espace de noms <a href="/wiki/fr/Docbook" class="duhoc-fr mw-redirect" title="Docbook">Docbook</a>. Le document est ouvert par le mot-clé <code><article></code> et clos par <code></article></code>. Notez la barre oblique, qui caractérise les balises de fermeture. En XML, une balise doit toujours être <i>fermée</i>. À l'intérieur de cet article, il y a un titre <code><title></code>, un paragraphe <code><para></code> et un acronyme <code><acronym></code>. </p><p>Ce qui est spécifique à XML, c'est le choix des chevrons pour identifier les balises et l'obligation de les fermer. Les mots clés ne sont pas définis par la norme XML mais par le vocabulaire choisi. En <a href="/wiki/fr/XHTML" class="duhoc-fr mw-redirect" title="XHTML">XHTML</a>, l'élément racine aurait été <code>html</code> ; en <a href="/wiki/fr/Extensible_Stylesheet_Language_Transformations" title="Extensible Stylesheet Language Transformations">XSLT</a>, cela peut être <code>xsl:stylesheet</code> ou <code>xsl:transform</code>. Ceci illustre la nature extensible d'XML. Ce n'est pas un jeu de noms réservés (exemple : <span class="duhoc-fr lang-en" lang="en">echo, for, public, function, class</span>…), mais plutôt des caractères réservés permettant de définir un « langage ». </p><p>Cet exemple illustre une autre spécificité de ce format. À part SGML, peu d'autres syntaxes permettent de séparer la définition sémantique de l'information (qu'est-ce qui est titre, lien, section…), de l'apparence qu'on souhaite lui donner (aujourd'hui un titre est souligné, demain on le voudra peut-être en bleu). Cela fait d'XML un excellent format pour conserver des textes ou des données, comme la comparaison ci-après à d'autres formats le montre. </p> <h3 id="Formats_binaires">Formats binaires</span> </h3> <p>Les <a href="/wiki/fr/Logiciel" title="Logiciel">logiciels</a>, surtout pour le grand public, aboutissent généralement à des <a href="/wiki/fr/Fichier_(informatique)" class="duhoc-fr mw-redirect" title="Fichier (informatique)">fichiers</a>. L'<a href="/wiki/fr/Interop%C3%A9rabilit%C3%A9" title="Interopérabilité">interopérabilité</a> et la pérennité de ces fichiers est une préoccupation qui passe souvent après la performance. Par exemple, le format historique d'enregistrement du <a href="/wiki/fr/Traitement_de_texte" title="Traitement de texte">traitement de texte</a> <a href="/wiki/fr/Microsoft_Word" title="Microsoft Word">Microsoft Word</a> (*.doc) n'est pas lisible par l'humain, le texte est difficile à extraire, le lien avec sa structuration (gras, italique…) est difficile à reconstruire. <a href="/wiki/fr/R%C3%A9tro-ing%C3%A9nierie" title="Rétro-ingénierie">Théoriquement</a>, seul le logiciel qui le produit est capable de le lire. </p> <pre>ÐÏ à¡± á > þÿ ! # þÿÿÿ ÿÿ% ð ¿ a bjbj%ç%ç Extensible Markup Language XML (Extensible Markup Language, « langage de balisage extensible ») i 8 @ñÿ 8 N o r m a l CJ _H aJ mH sH tH N @ N T i t r e 1 ÿ <b>[beaucoup d'informations binaires supprimées]</b> ÿ ÿÿÿÿ À F Document Microsoft Word MSWordDoc Word.Document.8 ô9²q </pre> <h3 id="RTF">RTF</span> </h3> <p>Afin de favoriser l'échange avec d'autres <a href="/wiki/fr/Traitement_de_texte" title="Traitement de texte">traitements de texte</a>, <a href="/wiki/fr/Microsoft" title="Microsoft">Microsoft</a> a proposé le format <a href="/wiki/fr/Rich_Text_Format" title="Rich Text Format">RTF</a> (<span class="duhoc-fr lang-en" lang="en"><i>Rich Text Format</i></span> « format texte riche ») en <a href="/wiki/fr/1987_en_informatique" title="1987 en informatique">1987</a>. Ce n'est pas un format binaire, les commandes sont inscrites en texte lisible, mais elles ne sont pas destinées à être écrites par un humain. </p> <pre>{\rtf {\f2\fs36\b <b>Extensible Markup Language</b>}\par {\b <b>XML</b>} <b>(Extensible Markup Language, </b> <b>« langage de balisage extensible »)...</b> \par } </pre> <p>On retrouve le besoin d'encadrer du contenu avec un marqueur (ici les accolades {}), d'attacher des propriétés à ces groupes. Ainsi, {\b XML} indique que les lettres XML sont en gras, <i>bold</i> : \b. Pour le titre, humains comme logiciels ne peuvent pas l'identifier par "\f2\fs36\b", ce code indique en fait l'apparence du paragraphe (gras, gros…). Ce format a montré qu'il pouvait fonctionner dans des logiciels, mais sa complexité croissante a montré ses limites. Il est difficilement extensible et inutilisable pour structurer la sémantique d'un texte. </p> <h3 id="TeX">TeX</span> </h3> <p>TeX reste le standard de l'édition scientifique de qualité, en particulier pour la mise en forme des équations complexes. Toutefois, cela reste un langage de programmation destiné à la mise en forme, davantage conçu pour l'apparence des documents que pour stocker ou transférer des données. </p> <div class="duhoc-fr mw-highlight mw-highlight-lang-latex mw-content-ltr" dir="ltr"><pre><span></span><span class="duhoc-fr k">\documentclass</span><span class="duhoc-fr na">[a4paper, 11pt]</span><span class="duhoc-fr nb">{</span>article<span class="duhoc-fr nb">}</span> <span class="duhoc-fr k">\title</span><span class="duhoc-fr nb">{</span>Extensible Markup Language<span class="duhoc-fr nb">}</span> <span class="duhoc-fr k">\begin</span><span class="duhoc-fr nb">{</span>document<span class="duhoc-fr nb">}</span> <span class="duhoc-fr k">\maketitle</span> <span class="duhoc-fr k">\end</span><span class="duhoc-fr nb">{</span>document<span class="duhoc-fr nb">}</span> </pre></div> <h3 id="Éléments_et_attributs">Éléments et attributs</span> </h3> <p>La structuration XML repose sur un modèle d'arbre permettant beaucoup plus de finesse de balisage que toutes les syntaxes plus haut, en particulier les <i>attributs</i>. Les liens (X)HTML en sont certainement l'exemple le plus déployé. </p> <div class="duhoc-fr mw-highlight mw-highlight-lang-xml mw-content-ltr" dir="ltr"><pre><span></span><span class="duhoc-fr w"> </span><span class="duhoc-fr nt"><--</span><span class="duhoc-fr w"> </span><span class="duhoc-fr err">Un</span><span class="duhoc-fr w"> </span><span class="duhoc-fr err">lien</span><span class="duhoc-fr w"> </span><span class="duhoc-fr err">lien</span><span class="duhoc-fr w"> </span><span class="duhoc-fr err">en</span><span class="duhoc-fr w"> </span><span class="duhoc-fr err">xhtml</span><span class="duhoc-fr w"> </span><span class="duhoc-fr err">-</span><span class="duhoc-fr w"> </span><span class="duhoc-fr err">-</span><span class="duhoc-fr nt">></span> <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"><a</span><span class="duhoc-fr w"> </span><span class="duhoc-fr na">href=</span><span class="duhoc-fr s">"http://www.w3.org/"</span><span class="duhoc-fr w"> </span><span class="duhoc-fr na">title=</span><span class="duhoc-fr s">"World Wide Web Consortium"</span><span class="duhoc-fr nt">></span>W3C<span class="duhoc-fr nt"></a></span> </pre></div> <p>Une portion de texte, <i>W3C</i>, est ici muni de deux informations plus longues : </p> <ul><li>la forme développée de l'acronyme <span class="duhoc-fr lang-en" lang="en"><i>World Wide Web Consortium</i></span> dans l'attribut @title,</li> <li>une URL de référence, <i><a rel="nofollow noreferrer noopener" class="duhoc-fr external free" target="_blank" href="https://www.duhoctrungquoc.vn/wiki/url?site=http://www.w3.org/">http://www.w3.org/</a></i> désignée par l'attribut @href.</li></ul> <p>Si le balisage devait être encore plus précis, les milieux académiques ont élaboré un vocabulaire très raffiné pour encoder les textes, <a href="/wiki/fr/Text_Encoding_Initiative" title="Text Encoding Initiative">TEI</a>. </p> <div class="duhoc-fr mw-highlight mw-highlight-lang-xml mw-content-ltr" dir="ltr"><pre><span></span><span class="duhoc-fr w"> </span><span class="duhoc-fr nt"><--</span><span class="duhoc-fr w"> </span><span class="duhoc-fr err">''exemples</span><span class="duhoc-fr w"> </span><span class="duhoc-fr err">d'attributs</span><span class="duhoc-fr w"> </span><span class="duhoc-fr err">XML,</span><span class="duhoc-fr w"> </span><span class="duhoc-fr err">en</span><span class="duhoc-fr w"> </span><span class="duhoc-fr err">TEI</span><span class="duhoc-fr w"> </span><span class="duhoc-fr err">''-</span><span class="duhoc-fr w"> </span><span class="duhoc-fr err">-</span><span class="duhoc-fr nt">></span> <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"><p></span>'''...<span class="duhoc-fr w"> </span>est<span class="duhoc-fr w"> </span>une<span class="duhoc-fr w"> </span>spécification<span class="duhoc-fr w"> </span>du<span class="duhoc-fr w"> </span>''' <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"><orgName</span><span class="duhoc-fr w"> </span><span class="duhoc-fr na">key=</span><span class="duhoc-fr s">"org0405"</span><span class="duhoc-fr w"> </span><span class="duhoc-fr na">type=</span><span class="duhoc-fr s">"fondation"</span><span class="duhoc-fr w"> </span><span class="duhoc-fr na">reg=</span><span class="duhoc-fr s">"World Wide Web Consortium"</span><span class="duhoc-fr nt">></span>'''W3C'''<span class="duhoc-fr nt"></orgName></span><span class="duhoc-fr w"> </span>... <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"></p></span> </pre></div> <p>L'élément <<a rel="nofollow noreferrer noopener" class="duhoc-fr external text" target="_blank" href="https://www.duhoctrungquoc.vn/wiki/url?site=http://www.tei-c.org/release/doc/tei-p5-doc/html/ref-orgName.html">orgName</a>> balise le nom d'une organisation. De plus, il porte les attributs : </p> <ul><li>@key : le code de l'organisation dans un annuaire auquel le document peut être relié</li> <li>@type : une catégorie de classification</li> <li>@reg : la forme « régulière » du nom de l'organisation</li></ul> <p>Pour un système d'informations souhaitant maintenir cette rigueur, XML est irremplaçable. Non seulement il structure un contenu, mais il permet de lui ajouter des informations supplémentaires. </p><p>Cette première approche par l'exemple permet d'illustrer l'aspect extensible d'XML, la séparation du contenu et de la présentation. Ont aussi été introduites les notions de <a href="/wiki/fr/Extensible_Markup_Language#text">texte</a>, <a href="/wiki/fr/Extensible_Markup_Language#element">éléments</a> et <a href="/wiki/fr/Extensible_Markup_Language#attribut">attributs</a> qui sont détaillées plus bas. --> </p> </section><h2 class="duhoc-fr section-heading" id="Composants_et_syntaxe">Composants et syntaxe</h2><div id="ads_inline_3" style=""> <ins class="duhoc-fr adsbygoogle" style="float:left;margin:20px 20px 0px 0;display:inline-block;width:300px;height:250px" data-ad-client="ca-pub-4219964418995947" data-ad-slot="4818333633"></ins> <script>(adsbygoogle = window.adsbygoogle || []).push({});</script> </div><section class="duhoc-fr mf-section-3 collapsible-block" id="mf-section-3"> <p>XML se présente en général comme un texte, séparant deux niveaux : du texte à destination des humains et des balises à destination des machines. La structuration de ce texte par les balises produit un modèle informatique. D'un point de vue formel, un document XML est un <a href="/wiki/fr/Arbre_(informatique)" class="duhoc-fr mw-redirect" title="Arbre (informatique)">arbre</a>, articulant différents types de nœuds (texte, éléments, attributs, commentaires…). Il n'est pas indispensable de pénétrer le détail théorique de cette structure arborescente pour écrire du XML bien formé. Toutefois, il est intéressant d'en comprendre le principe général, car c'est ce modèle qui explique les erreurs de syntaxe. Cette section présentera les différents composants du modèle XML, en insistant sur les contraintes imposées par leur définition et en présentant différents types d'erreurs (malformations) qui produisent un document mal formé. Un document mal formé n'est plus du XML. Il casse toute la chaîne de traitement. Cette absence de rattrapage des erreurs peut parfois surprendre et décourager les débutants, mais c'est cette rigueur qui assure la qualité du format XML (notamment comparé au SGML). Heureusement, comme pour tout autre langage informatique, des logiciels d'édition assistent les utilisateurs pour éviter ces erreurs. </p> <div class="duhoc-fr mw-highlight mw-highlight-lang-xml mw-content-ltr" dir="ltr"><pre><span></span><span class="duhoc-fr cp"><?xml version="1.0" encoding="UTF-8"?></span> <span class="duhoc-fr cp"><?xml-stylesheet href="transformation.xsl" type="text/xsl"?></span> <span class="duhoc-fr cp"><?mode ecran?></span> <span class="duhoc-fr cp"><?instruction pour le traitement?></span> <span class="duhoc-fr nt"><ex:collection</span> <span class="duhoc-fr w"> </span><span class="duhoc-fr na">xml:lang=</span><span class="duhoc-fr s">"fr"</span> <span class="duhoc-fr w"> </span><span class="duhoc-fr na">xmlns:dc=</span><span class="duhoc-fr s">"http://purl.org/dc/elements/1.1/"</span> <span class="duhoc-fr w"> </span><span class="duhoc-fr na">xmlns=</span><span class="duhoc-fr s">"http://www.w3.org/1999/xhtml"</span> <span class="duhoc-fr w"> </span><span class="duhoc-fr na">xmlns:ex=</span><span class="duhoc-fr s">"http://exemple.org"</span> <span class="duhoc-fr nt">></span> <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"><élément></span>Texte<span class="duhoc-fr nt"></élément></span> <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"><dc:title></span>Astérix<span class="duhoc-fr w"> </span>le<span class="duhoc-fr w"> </span>Gaulois<span class="duhoc-fr nt"></dc:title></span> <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"><ex:livre</span><span class="duhoc-fr w"> </span><span class="duhoc-fr na">attribut=</span><span class="duhoc-fr s">"valeur"</span><span class="duhoc-fr w"> </span><span class="duhoc-fr na">type=</span><span class="duhoc-fr s">"BD"</span><span class="duhoc-fr nt">></span> <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"><dc:title></span>Astérix<span class="duhoc-fr w"> </span>chez<span class="duhoc-fr w"> </span>les<span class="duhoc-fr w"> </span>Belges<span class="duhoc-fr nt"></dc:title></span> <span class="duhoc-fr w"> </span> <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"><dc:creator></span>René<span class="duhoc-fr w"> </span>Goscinny<span class="duhoc-fr nt"></dc:creator></span> <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"><dc:creator></span>Albert<span class="duhoc-fr w"> </span>Uderzo<span class="duhoc-fr nt"></dc:creator></span> <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"><dc:description></span> <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"><b></span>Astérix<span class="duhoc-fr w"> </span>chez<span class="duhoc-fr w"> </span>les<span class="duhoc-fr w"> </span>Belges<span class="duhoc-fr nt"></b></span><span class="duhoc-fr w"> </span>est<span class="duhoc-fr w"> </span>un<span class="duhoc-fr w"> </span>album<span class="duhoc-fr w"> </span>de<span class="duhoc-fr w"> </span> <span class="duhoc-fr nt"><a</span><span class="duhoc-fr w"> </span><span class="duhoc-fr na">href=</span><span class="duhoc-fr s">"http://fr.wikipedia.org/wiki/Bande_dessinée"</span><span class="duhoc-fr nt">></span>bande<span class="duhoc-fr w"> </span>dessinée<span class="duhoc-fr nt"></a></span><span class="duhoc-fr w"> </span>de<span class="duhoc-fr w"> </span>la série<span class="duhoc-fr w"> </span>Astérix<span class="duhoc-fr w"> </span>le<span class="duhoc-fr w"> </span>Gaulois<span class="duhoc-fr w"> </span>créée<span class="duhoc-fr w"> </span>par<span class="duhoc-fr w"> </span>René<span class="duhoc-fr w"> </span>Goscinny<span class="duhoc-fr w"> </span>et<span class="duhoc-fr w"> </span>Albert<span class="duhoc-fr w"> </span>Uderzo. <span class="duhoc-fr nt"><br</span><span class="duhoc-fr w"> </span><span class="duhoc-fr nt">/></span> <span class="duhoc-fr w"> </span>Cet<span class="duhoc-fr w"> </span>album<span class="duhoc-fr w"> </span>publié<span class="duhoc-fr w"> </span>en<span class="duhoc-fr w"> </span>1979<span class="duhoc-fr w"> </span>est<span class="duhoc-fr w"> </span>le<span class="duhoc-fr w"> </span>dernier<span class="duhoc-fr w"> </span>de<span class="duhoc-fr w"> </span>la<span class="duhoc-fr w"> </span>série<span class="duhoc-fr w"> </span>écrite<span class="duhoc-fr w"> </span>par<span class="duhoc-fr w"> </span>René<span class="duhoc-fr w"> </span> Goscinny. <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"></dc:description></span> <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"></ex:livre></span> <span class="duhoc-fr nt"></ex:collection></span> </pre></div> <h3 id="Nœud_document">Nœud document</span> </h3> <p>Un document XML a toujours une et une seule racine, le <i>nœud document</i>. Dans la syntaxe d'exploration d'un arbre XML, <a href="/wiki/fr/XPath" title="XPath">XPath</a>, le nœud document est abrégé avec la barre oblique <code>/</code>, comme la racine de l'arborescence d'un <a href="/wiki/fr/Syst%C3%A8me_de_fichiers" title="Système de fichiers">système de fichiers</a> Unix. La racine peut éventuellement comporter des enfants de type commentaire ou instruction de traitement, elle doit obligatoirement comporter un et un seul élément. </p> <div class="duhoc-fr mw-highlight mw-highlight-lang-xml mw-content-ltr" dir="ltr"><pre><span></span><span class="duhoc-fr cp"><?xml version="1.0" encoding="UTF-8"?></span> <span class="duhoc-fr nt"><item></span>Premier<span class="duhoc-fr w"> </span>élément<span class="duhoc-fr w"> </span>racine<span class="duhoc-fr nt"></item></span> <span class="duhoc-fr nt"><item></span>Deuxième<span class="duhoc-fr w"> </span>élément<span class="duhoc-fr w"> </span>racine<span class="duhoc-fr w"> </span>=<span class="duhoc-fr w"> </span>malformation<span class="duhoc-fr nt"></item></span> </pre></div> <ul><dt>Malformation</dt> <dd>Le fichier ci-dessus n'est pas un document XML bien formé car il comporte plus d'un élément racine.</dd></ul> <h3 id="Nœud_élément">Nœud élément</span> </h3> <p>Un <i>nœud élément</i> est désigné par un nom qualifié au sein d'un <a href="/wiki/fr/Espace_de_noms_XML" title="Espace de noms XML">espace de noms</a> (<small><code><espace:élément/></code></small>). Ce nom ne peut pas contenir <code>!"#$%&'()*+,/;<=>?@[\]^`{|}~</code> ou une <a href="/wiki/fr/Espace_typographique" class="duhoc-fr mw-redirect" title="Espace typographique">espace</a> et ne peut pas commencer par <code>-.</code> ou un chiffre. Un élément peut contenir des attributs et la plupart des autres nœuds : texte, éléments, etc. (à l'exception du nœud document). Des éléments peuvent être imbriqués, mais pas entrecroisés. Cette définition formelle est à l'origine des particularités de XML comparé à d'autres formats : </p> <ul><dt>Répétable</dt> <dd>Une même propriété peut être répétée. L'exemple montre comment indiquer qu'un livre a plusieurs auteurs <code><dc:creator></code>. Dans un format tabulaire, avec un nombre de colonnes défini, ce n'est pas impossible, mais moins spécifié.</dd> <dt>Ordonné</dt> <dd>L'ordre des éléments est conservé. Quel que soit le langage employé, un outil XML doit permettre de distinguer le premier auteur du second (exemple : en <a href="/wiki/fr/XPath" title="XPath">XPath</a>, <code>/ex:collection/ex:livre/dc:creator[1] = "René Goscinny"</code>, <code>/ex:collection/ex:livre/dc:creator[2] = "Albert Uderzo"</code>).</dd> <dt>Hiérarchique</dt> <dd>Les éléments XML sont imbriqués. Ceci rend ce format particulièrement adapté à représenter des arbres. L'exemple est limité à deux niveaux (<code>/ex:collection/ex:livre</code>), une collection avec un titre (<i>Astérix le Gaulois</i>) et un exemple d'ouvrage de cette collection (<i>Astérix chez les Belges</i>). XML permet une récursivité complète. Par exemple, un livre, ou une thèse, peut être formaté très économiquement avec un élément <code><section></code>. La partie 2.3.5 correspondra à une structure d'imbrication XML <code>/section[2]/section[3]/section[5]</code>.</dd> <dt>Mélangeable</dt> <dd>XML est plus qu'un <a href="/wiki/fr/Format_de_donn%C3%A9es" title="Format de données">format de données</a>, c'est un format de document, permettant de <i>mélanger</i> du texte et des éléments, pour par exemple représenter du texte riche. Dans l'exemple, le texte de la description <code><dc:description></code> est enrichi avec des balises <a href="/wiki/fr/XHTML" class="duhoc-fr mw-redirect" title="XHTML">XHTML</a> (gras <code><b></code>, lien <code><a></code>).</dd> <dt>Qualifié</dt> <dd>La qualification des noms contribue à la précision sémantique des contenus balisés. La notation <code>xmlns="URI"</code> ou <code>xmlns:prefix="autre/URI"</code>, avec héritage hiérarchique, permet de rattacher tous les noms à une <a href="/wiki/fr/Uniform_Resource_Identifier" title="Uniform Resource Identifier">URI</a>, et donc potentiellement à une documentation.</dd> <dt>Malformations</dt> <dd>Quelques exemples d'XML mal formé : <ul><li><code><auteur><nom>Bon</nom>, <prénom>Jean</auteur></prénom></code> (la balise <code></prénom></code> est fermée après la balise <code></auteur></code> alors que cette dernière a été ouverte avant. Le prénom doit être logiquement à l'intérieur de la balise auteur, comme le nom.</li> <li><code><siècle>XX<exposant>e</siècle>, <para>Malformations</label> (paragraphe avec titre)</para></code> La balise <code><exposant></code> doit être fermée à l'intérieur de l'élément <code><siècle></code>, la balise <code></label></code> doit être ouverte avant d'être fermée à l'intérieur de l'élément <code><para></code>.</li> <li><code><1-balise/>, <.balise/> , <balise!/>, <autre/balise,mal,nommée/>, <pas d'espace></code> Ces noms d'éléments comportent des caractères interdits, en première position ou ailleurs.</li></ul></dd></ul> <h3 id="Balise">Balise</span> </h3> <p>Une <i>balise</i> est un nom commode pour désigner les constructions entre deux chevrons (<code><</code>, <code>></code>) dans un fichier XML. On distinguera les balises ouvrantes <code><élément attribut="valeur"></code>, les balises fermantes <code></élément></code> (sans attributs et commençant par une barre oblique) et les balises vides <code><élément attribut="valeur"/></code> (avec attributs possibles et terminant par une barre oblique). Il ne faut pas confondre les balises avec les éléments. Ces notations permettent de délimiter des éléments (ainsi que leurs attributs), mais les balises ne sont pas des nœuds dans le modèle abstrait du document. </p> <h3 id="Nœud_texte">Nœud texte</span> </h3> <p>Un <i>nœud texte</i> n'a pas d'enfants, il est toujours contenu dans un élément. Ainsi, dans le cas de texte mêlé (exemple : <code><p>du texte en <b>gras</b> dans un paragraphe</p></code>), ce n'est pas le texte qui contient le gras, mais plutôt l'élément parent <code><p></code> qui contient plusieurs enfants : un nœud texte, un nœud élément <code><b></code> et un nœud texte (exemple : <code>p/node()[3]=" dans un paragraphe"</code>, <code>p/b/node() = "gras"</code>). </p> <ul><dt>Encodage</dt> <dd>Par défaut, le texte est traité comme de l'<a href="/wiki/fr/Unicode" title="Unicode">Unicode</a> (<a href="/wiki/fr/UTF-8" title="UTF-8">UTF-8</a>). XML permet de spécifier d'autres encodages dans le prologue pour des raisons historiques.</dd> <dt>Espaces</dt> <dd>En XML, espaces et sauts de lignes sont équivalents, autrement dit, un document peut perdre son indentation en restant identique pour les traitements, sauf instructions particulières (exemple : bloc préformaté avec l'attribut <code>@xml:space="preserve"</code>).</dd> <dt>Malformations</dt> <dd>Comme tout langage informatique, XML est fondé sur des caractères qui ont un sens particulier pour la machine. La force de XML est d'avoir réduit le nombre de ces caractères au minimum, afin que le texte prime sur le métatexte (priorité des données sur les instructions). Dès qu'un analyseur XML (ex : navigateur Web) rencontre un chevron ouvrant (<code><</code>), les caractères qui suivent sont interprétés comme une balise. Ceci pose évidemment des problèmes dans une inéquation mathématique <code>if (a < 10) print("Unité")</code>. La balise <code>< 10)…</code> n'ayant pas un nom d'élément correct (présence d'une espace, commence par un chiffre), un analyseur XML lèvera une erreur et s'arrêtera sans essayer d'être plus intelligent. C'est un problème pour tous les langages informatiques, qui introduisent alors des <a href="/wiki/fr/Caract%C3%A8re_d%27%C3%A9chappement" title="Caractère d'échappement">caractères d'échappement</a>. Il faut au moins un caractère pour signaler que les caractères qui suivent doivent être interprétés autrement. En XML, c'est le rôle de l'<a href="/wiki/fr/Esperluette" title="Esperluette">esperluette</a> (<code>&</code>) qui introduit des <i>entités</i>. Une entité est un nom XML encadré d'une esperluette et d'un point virgule. Ce nom a les mêmes contraintes que pour les éléments (pas d'espaces, surtout des lettres…). Dans un nœud texte, le signe inférieur doit être remplacé par <code><</code> (<i>lesser than</i>, « inférieur » en français). Du coup, l'esperluette acquiert elle aussi un statut particulier et doit aussi être échappée. <code><sujet>Montaigne & La Boétie</sujet></code>, ce texte produira une erreur XML, car <code>& La Boétie</code> n'est pas une entité bien formée. Les esperluettes d'un nœud texte doivent être remplacées par l'entité <code>&</code> (<i>ampersand</i>, « esperluette » en français). Mentionnons ici trois autres entités nécessaires à XML, <code>></code> (<i>greater than</i>, « supérieur » en français) pour <code>></code>, <code>"</code> (<i>quote</i>, « guillemet » en français) pour <code>"</code>, <code>'</code> (<i>apostrophe</i>) pour <code>'</code>.</dd></ul> <h3 id="Attributs">Attributs</span> </h3> <p>Un <i>attribut</i> est un nom et une valeur. Un nom d'attribut a les mêmes contraintes et possibilités de qualification qu'un nom d'élément. La valeur est un texte sans élément (ou autres nœuds). Un attribut est toujours porté par un élément (balise ouvrante). La valeur peut être vide <code><element attribut=""/></code>, mais pas nulle <code><s><element attribut></s></code> (cette écriture était permise en <a href="/wiki/fr/Standard_Generalized_Markup_Language" title="Standard Generalized Markup Language">SGML</a>, on la rencontre encore parfois en <a href="/wiki/fr/Hypertext_Markup_Language" title="Hypertext Markup Language">HTML</a>, mais elle n'est pas acceptée en XML). </p><p>Un attribut est unique. La répétition d'un attribut de même nom sur le même élément provoquera une erreur de l'interpréteur XML. L'ordre des attributs n'est pas significatif et peut ne pas être conservé dans certains traitements. <code><element attribut1="valeur1" attribut2="valeur2"/></code> et <code><element attribut2="valeur2" attribut1="valeur1"/></code> sont équivalents pour un interpréteur XML, même s'ils sont écrits différemment. </p> <ul><dt>Malformations</dt> <dd><code><élément onclick="if (this.length > 10) alert("Pourquoi ça marche pas ?")">Valeurs d'attributs contenant des guillemets ou le signe supérieur</élément></code> À l'intérieur d'une balise (entre les chevrons ouvrants et fermants), le chevron fermant et les guillemets ont une signification particulière dans la délimitation des valeurs d'attribut, et la fin de la balise ouvrante. Ces caractères doivent donc être échappés. À cette fin, XML prévoit les entités <code>"</code> pour <code>"</code> et <code>></code> pour <code>></code>. <br><code><élément répète-après-moi="après moi" répète-après-moi="parser error: attribute répète-après-moi redefined"/></code> Les attributs ne sont pas répétables.</dd></ul> <h3 id="Commentaires">Commentaires</span> </h3> <p>En XML, les commentaires sont délimités par <code><!--</code> et <code>--></code>. Le contenu d'un commentaire ne sera pas interprété. </p><p><code><!-- Cet <élément> n'est pas fermé mais cela est autorisé dans un commentaire --></code>. </p> <ul><dt>Malformations</dt> <dd>La chaîne de caractères <code>--</code> ne peut apparaître dans le contenu d'un commentaire (un interpréteur XML considère que ce signal annonce la fin d'un commentaire).</dd></ul> <h3 id="Prologue">Prologue</span> </h3> <p>En XML, le <i>prologue</i> est constitué de la déclaration XML <code><?xml version="1.0" encoding="UTF-8"?></code>, et de la déclaration de type de document (DOCTYPE). La déclaration XML est obligatoire à partir de la version 1.1. La déclaration DOCTYPE avait une grande importance en SGML. Elle attache le document traité par un interpréteur à son schéma (<a href="/wiki/fr/Document_Type_Definition" class="duhoc-fr mw-redirect" title="Document Type Definition">DTD</a>, <span class="duhoc-fr lang-en" lang="en"><i>Document Type Definition</i></span>, « Définition de type de document ») afin de le valider et d'interpréter certains raccourcis (les entités). Désormais, il existe plusieurs langages de validation, et parfois plusieurs manières de les attacher. La déclaration DOCTYPE n'a plus la même importance. </p> <h3 id="Instruction_de_traitement">Instruction de traitement</span> </h3> <p>Une <i>instruction de traitement</i> est une possibilité un peu moins employée en XML que du temps de SGML. C'est une balise particulière qui s'ouvre par un chevron ouvrant et un point d'interrogation, et qui se ferme avec un point d'interrogation et un chevron fermant <code><?clé valeur?></code>. Les lettres accolées au chevron ouvrant forment la clé jusqu'au premier espace. La suite peut contenir des espaces, de la ponctuation et forme la valeur. Cette valeur n'a pas de syntaxe imposée par XML, ce sont les applications qui les interprètent pour leur besoin. Le W3C a cependant standardisé l'usage des instructions de traitement pour associer une feuille de style à un document XML, mais d'autres usages sont possibles. Elles peuvent être insérées à tout endroit entre les balises (mais pas dans une valeur d'attribut, ni entre chevrons au milieu d'une balise). Elles peuvent communiquer des instructions à destination des machines qui vont utiliser ce XML, sans que ce contenu soit considéré comme de l'information structurée par les balises. Ainsi par exemple, les instructions de traitements ne seront pas affichées par un navigateur, par contre, elles vont modifier leur comportement dans le traitement (et l'affichage) de cette information XML. Un éditeur XML peut aussi employer ce moyen pour associer un fichier XML à son schéma. </p> <div class="duhoc-fr mw-highlight mw-highlight-lang-xml mw-content-ltr" dir="ltr"><pre><span></span><span class="duhoc-fr cp"><?xml version="1.0" encoding="UTF-8"?></span> <span class="duhoc-fr cp"><?xml-stylesheet href="tei2html.xsl" type="text/xsl"?></span> <span class="duhoc-fr cp"><?xml-model</span> <span class="duhoc-fr cp"> href="tei.rng"</span> <span class="duhoc-fr cp"> type="application/xml"</span> <span class="duhoc-fr cp"> schematypens="http://relaxng.org/ns/structure/1.0"?</span> <span class="duhoc-fr cp">></span> <span class="duhoc-fr cp"><?erreur?></span> <span class="duhoc-fr nt"><TEI</span><span class="duhoc-fr w"> </span><span class="duhoc-fr na">xmlns=</span><span class="duhoc-fr s">"http://www.tei-c.org/ns/1.0"</span><span class="duhoc-fr nt">></span> <span class="duhoc-fr w"> </span> <span class="duhoc-fr nt"></TEI></span> </pre></div> <h3 id="Sections_d'échappement">Sections d'échappement</span> </h3> <p>Une <i>section d'échappement</i> <code><![CDATA[…]]></code> permet de contenir n'importe quel texte, avec tous les caractères spéciaux XML <code><>&</code>, sans qu'il soit nécessaire d'échapper ces caractères avec des entités. Elles sont souvent utilisées dans des documents qui contiennent des syntaxes informatiques avec de nombreux chevrons et esperluettes (ex : <a href="/wiki/fr/JavaScript" title="JavaScript">JavaScript</a>). Ces sections d'échappement permettent de garder le texte original, en gardant conforme le flux XML. </p> <div class="duhoc-fr mw-highlight mw-highlight-lang-xml mw-content-ltr" dir="ltr"><pre><span></span> </pre></div> <h3 id="Document_bien_formé_et_valide">Document bien formé et valide</span> </h3> <p>Un document bien formé respecte les contraintes formelles définies ci-dessus, il n'a pas de malformations. À ce stade, XML n'est pas un langage, car il n'a pas de vocabulaire et très peu de grammaire, ce serait plutôt une ponctuation, ou mieux, un métalangage. Les spécifications ci-dessus n'interdisent pas de constituer des structures absurdes et inutilisables par des applications. </p> <div class="duhoc-fr mw-highlight mw-highlight-lang-xml mw-content-ltr" dir="ltr"><pre><span></span><span class="duhoc-fr nt"><phrase</span><span class="duhoc-fr w"> </span><span class="duhoc-fr na">titre-livre=</span><span class="duhoc-fr s">"XML idiot"</span><span class="duhoc-fr nt">></span> <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"><paragraphe></span> <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"><chapitre></span> <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"><toto></span> <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"><livre></span> <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"><titi></span>Informatique<span class="duhoc-fr w"> </span>sans<span class="duhoc-fr w"> </span>bon<span class="duhoc-fr w"> </span>sens<span class="duhoc-fr w"> </span>n’est<span class="duhoc-fr w"> </span>que<span class="duhoc-fr w"> </span>ruine<span class="duhoc-fr w"> </span>de<span class="duhoc-fr w"> </span>l'âme<span class="duhoc-fr w"> </span>et perte<span class="duhoc-fr w"> </span>de<span class="duhoc-fr w"> </span>temps.<span class="duhoc-fr nt"></titi></span> <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"></livre></span> <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"></toto></span> <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"></chapitre></span> <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"></paragraphe></span> <span class="duhoc-fr nt"></phrase></span> </pre></div> <p>En général, les balises XML ne sont pas inventées librement, mais selon les prescriptions d'un schéma dans une syntaxe informatique (<a href="/wiki/fr/Document_type_definition" title="Document type definition">DTD</a>, <a href="/wiki/fr/Relax_NG" title="Relax NG">Relax-NG</a>, <a href="/wiki/fr/Schematron" title="Schematron">Schematron</a>…) qui définit le dictionnaire des noms d'éléments et d'attributs, ainsi que la grammaire de leurs articulations. Lorsqu'un document XML déclare suivre un schéma et être en accord avec celui-ci, il est dit <i>valide</i>. On dit aussi « valider contre un schéma ». « Rendre valide » signifie la correction des erreurs dans un document XML qu'un schéma a repéré. C'est l'objet de la section suivante de montrer la quantité de langages pouvant employer la ponctuation XML, selon des schémas différents. </p> </section><h2 class="duhoc-fr section-heading" id="Utilisations_et_langages_dérivés">Utilisations et langages dérivés</h2><div id="ads_inline_4" style=""> <ins class="duhoc-fr adsbygoogle" style="float:left;margin:20px 20px 0px 0;display:inline-block;width:300px;height:250px" data-ad-client="ca-pub-4219964418995947" data-ad-slot="3348363274"></ins> <script>(adsbygoogle = window.adsbygoogle || []).push({});</script> </div><section class="duhoc-fr mf-section-4 collapsible-block" id="mf-section-4"> <div class="duhoc-fr bandeau-container bandeau-section metadata bandeau-niveau-information"><div class="duhoc-fr bandeau-cell bandeau-icone-css loupe">Article détaillé : <a href="/wiki/fr/Cat%C3%A9gorie:XML" title="Catégorie:XML">catégorie:XML</a>.</div></div> <p><a href="/wiki/fr/Standard_Generalized_Markup_Language" title="Standard Generalized Markup Language">SGML</a> était une syntaxe générique, permettant de définir des langages spécialisés (ex : <a href="/wiki/fr/Hypertext_Markup_Language" title="Hypertext Markup Language">HTML</a>), mais il était surtout destiné au <a href="/wiki/fr/Langage_de_balisage" title="Langage de balisage">balisage</a> de documents. En simplifiant SGML, les concepteurs d'XML prévoyaient d'élargir l'usage des chevrons (< >) à bien d'autres emplois, par exemple, la programmation. Les premiers langages basés sur XML par le <a href="/wiki/fr/World_Wide_Web_Consortium" title="World Wide Web Consortium">W3C</a> dessinent plusieurs directions d'utilisation. </p> <ul><li><a href="/wiki/fr/1999_en_informatique" title="1999 en informatique">1999</a>, <a href="/wiki/fr/Resource_Description_Framework" title="Resource Description Framework">RDF</a> (<span class="duhoc-fr lang-en" lang="en"><i>Resource Description Framework</i></span>, « Cadre de description de ressource »). Ce modèle abstrait vise à définir un réseau de <a href="/wiki/fr/M%C3%A9tadonn%C3%A9e" title="Métadonnée">métadonnées</a> adapté au web, représentable en XML.</li> <li>1999, <a href="/wiki/fr/Extensible_Stylesheet_Language_Transformations" title="Extensible Stylesheet Language Transformations">XSLT</a> (<span class="duhoc-fr lang-en" lang="en"><i>eXtended Stylesheet Language Transformations</i></span>, « Transformations par langage XML de feuilles de style »). Afin d'employer XML, il faut pouvoir le transformer. <a href="/wiki/fr/James_Clark_(informatique)" title="James Clark (informatique)">James Clark</a> avait écrit un langage équivalent pour SGML (DSSSL, 1996). Avec XSLT, il propose une syntaxe XML, permettant par exemple de transformer un contenu XML vers HTML, ou XSL-FO.</li> <li><a href="/wiki/fr/2000_en_informatique" title="2000 en informatique">2000</a>, <a href="/wiki/fr/XSL-FO" title="XSL-FO">XSL-FO</a> (<span class="duhoc-fr lang-en" lang="en"><i>eXtended Stylesheet Language Formatting Object</i></span>, « Formatage d'objet par langage XML de feuilles de style »). XSL-FO est un langage de description de document permettant de composer un livre, ou un document <a href="/wiki/fr/Portable_Document_Format" title="Portable Document Format">PDF</a>. C'était un complément indispensable à XML pour les industries de l'édition.</li> <li>Enfin, il fallait une nouvelle syntaxe schéma tenant compte des espaces de noms pour remplacer les <a href="/wiki/fr/Document_Type_Definition" class="duhoc-fr mw-redirect" title="Document Type Definition">DTD</a> (ce qui deviendra <a href="/wiki/fr/XML_Schema" title="XML Schema">XML Schema</a>).</li></ul> <p>Quelques mois après sa sortie, XML est donc utilisé pour encoder des données, programmer des transformations, représenter un objet imprimable et définir le schéma d'un document XML. Ceci annonce la variété des utilisations de cette syntaxe. Quelques années après, le catalogue est beaucoup plus important, couvrant des usages comme : </p> <ul><li><a href="/wiki/fr/Langage_de_balisage" title="Langage de balisage">langage de balisage</a> ;</li> <li><a href="/wiki/fr/Format_de_donn%C3%A9es" title="Format de données">format de données</a> ;</li> <li><a href="/wiki/fr/Langage_de_description_de_format_de_document" title="Langage de description de format de document">langage de description de format de document</a> ;</li> <li>langage de représentation ;</li> <li><a href="/wiki/fr/Langage_de_programmation" title="Langage de programmation">langage de programmation</a> ;</li> <li><a href="/wiki/fr/Protocole_de_communication" title="Protocole de communication">protocole de communication</a>.</li></ul> <p>Ces catégories permettent une classification approximative des langages à base XML (ou acceptant une expression XML). La liste des langages ci-après repère quelques spécifications importantes dans le monde XML. Les succès et les critiques permettent aussi de montrer à quoi XML est bon, et là où il est moins adapté. </p> <h3 id="Langages_de_balisage">Langages de balisage</span> </h3> <p>Le <a href="/wiki/fr/Langage_de_balisage" title="Langage de balisage">balisage de document</a> est le métier initial d'XML. Les <a href="/wiki/fr/Document_Type_Definition" class="duhoc-fr mw-redirect" title="Document Type Definition">DTD</a> <a href="/wiki/fr/Standard_Generalized_Markup_Language" title="Standard Generalized Markup Language">SGML</a> publiques comme <a href="/wiki/fr/Text_Encoding_Initiative" title="Text Encoding Initiative">TEI</a> et <a href="/wiki/fr/Docbook" class="duhoc-fr mw-redirect" title="Docbook">Docbook</a> l'ont adopté. XML aurait pu permettre l'apparition de nombreux autres schémas. On assiste plutôt à l'apparition de vocabulaires spécialisés, et combinables à l'exemple de la modularisation XHTML : </p> <ul><li><a href="/wiki/fr/XHTML" class="duhoc-fr mw-redirect" title="XHTML">XHTML</a> (<span class="duhoc-fr lang-en" lang="en"><i>eXtensible HyperText Markup Language</i></span>), langage de balisage <a href="/wiki/fr/Hypertexte" title="Hypertexte">hypertexte</a> ;</li> <li><a href="/wiki/fr/Docbook" class="duhoc-fr mw-redirect" title="Docbook">Docbook</a>, documentation technique, 1991 à 1997 <a href="/wiki/fr/O%27Reilly_Media" title="O'Reilly Media">O'Reilly</a>, 1998 à … <a href="/wiki/fr/Organization_for_the_Advancement_of_Structured_Information_Standards" title="Organization for the Advancement of Structured Information Standards">OASIS</a> ;</li> <li><a href="/wiki/fr/Text_Encoding_Initiative" title="Text Encoding Initiative">TEI</a> (<span class="duhoc-fr lang-en" lang="en"><i>Text Encoding Initiative</i></span>), balisage de textes académiques, 1987, 1994, 1999, 2002 ;</li> <li><a href="/wiki/fr/Description_archivistique_encod%C3%A9e" title="Description archivistique encodée">EAD</a> (<span class="duhoc-fr lang-en" lang="en"><i>Encoded Archival Description</i></span>), description archivistique, 1993, 2002, <a href="/wiki/fr/Biblioth%C3%A8que_du_Congr%C3%A8s" title="Bibliothèque du Congrès">Bibliothèque du Congrès</a> ;</li> <li>NITF (<span class="duhoc-fr lang-en" lang="en"><i>News Interchange Text Format</i></span>), échange d'articles de presse, 2000, 2002, <a href="/wiki/fr/International_Press_Telecommunications_Council" title="International Press Telecommunications Council">IPTC</a> ;</li> <li>NewsML (<span class="duhoc-fr lang-en" lang="en"><i>News Markup Language</i></span>), balisage de dépêche de presse, 2000, 2002, <a href="/wiki/fr/International_Press_Telecommunications_Council" title="International Press Telecommunications Council">IPTC</a>.</li></ul> <h3 id="Formats_de_données">Formats de données</span> </h3> <p>XML s'est imposé comme format de référence pour l'échange de <a href="/wiki/fr/Donn%C3%A9e_(informatique)" title="Donnée (informatique)">données</a>, notamment de <a href="/wiki/fr/M%C3%A9tadonn%C3%A9es" class="duhoc-fr mw-redirect" title="Métadonnées">métadonnées</a>. L'exemple d'un transfert d'informations entre <a href="/wiki/fr/Base_de_donn%C3%A9es_relationnelles" class="duhoc-fr mw-redirect" title="Base de données relationnelles">bases de données relationnelles</a> permettra d'illustrer les avantages et limites de ce format pour cet usage. </p><p>L'exportation d'une <a href="/wiki/fr/Table_(alg%C3%A8bre_relationnelle)" class="duhoc-fr mw-redirect" title="Table (algèbre relationnelle)">table</a> peut se faire au format <a href="/wiki/fr/Comma-separated_values" title="Comma-separated values">CSV</a>. Mais ce format comporte vite des limites à grande échelle (Internet). Il n'est pas auto-documenté (encodage du texte, séparateurs, ordre et nom des colonnes). Il demande une documentation externe rarement automatisée entre les partenaires. Que faire lorsque les tables source et destination n'ont pas des structures identiques ? Pour cette raison, on peut préférer des échanges en <a href="/wiki/fr/Structured_Query_Language" title="Structured Query Language">SQL</a> (à la fois <a href="/wiki/fr/Langage_de_d%C3%A9finition_de_donn%C3%A9es" title="Langage de définition de données">langage de définition de données</a>, <a href="/wiki/fr/Langage_de_manipulation_de_donn%C3%A9es" title="Langage de manipulation de données">langage de manipulation de données</a> et <a href="/wiki/fr/Langage_de_contr%C3%B4le_de_donn%C3%A9es" title="Langage de contrôle de données">langage de contrôle de données</a>). Cependant, malgré de nombreux efforts de normalisation, SQL comporte beaucoup de risques d'incompatibilité entre les implémentations. XML est une solution plus robuste. On peut en constater l'efficacité sur Internet avec la <a href="/wiki/fr/Syndication_de_contenu" title="Syndication de contenu">syndication de contenu</a>. Il n'y a pas d'exemple connu d'échange de <a href="/wiki/fr/M%C3%A9tadonn%C3%A9es" class="duhoc-fr mw-redirect" title="Métadonnées">métadonnées</a> réparties sur autant de clients et de serveurs. </p><p><b>Verbosité ?</b> – Comparé à l'export CSV d'une table, XML réplique le <i>nom de la colonne</i> pour chaque <i>cellule</i> (une fois pour un attribut, deux fois pour un élément). Le poids du fichier généré est supérieur à celui d'un fichier CSV. Dans des contextes où la bande passante est coûteuse (exemple : <a href="/wiki/fr/T%C3%A9l%C3%A9phonie_mobile" title="Téléphonie mobile">téléphonie mobile</a>) cela n'a pas semblé poser de problème (<a href="/wiki/fr/Wireless_Markup_Language" title="Wireless Markup Language">WML</a>) car ces répétitions se compressent très bien (<a href="/wiki/fr/ZIP_(format_de_fichier)" title="ZIP (format de fichier)">ZIP</a>). </p><p><b>Traitement lourd ?</b> – Traiter du XML demande des bibliothèques spécialisées (interpréteur XML). Cela n'ajoute pas vraiment du temps de développement supplémentaire, du moins pour des équipes formées. Pour des petites tâches, un <a href="/wiki/fr/Parseur" class="duhoc-fr mw-redirect" title="Parseur">parseur</a> ligne à ligne est parfois plus simple. Mais si la donnée se destine à se complexifier, à s'échanger plus largement, il vaut mieux choisir XML dès le départ. </p><p><b>XML : données ou document ?</b> – Cette section est l'occasion de marquer la distinction entre <i>XML données</i> et <i>XML document</i>. Il ne s'agit pas d'une différence dans la syntaxe, mais dans ses usages, ses outils et ses communautés d'utilisateurs. Par SGML, XML vient du <a href="/wiki/fr/Document_%C3%A9lectronique" class="duhoc-fr mw-redirect" title="Document électronique">document</a>. On lui a reproché par exemple ne pas avoir (nativement) de <a href="/wiki/fr/Typage_fort" title="Typage fort">typage fort</a>. On rencontre un mouvement analogue mais contraire en <a href="/wiki/fr/Structured_Query_Language" title="Structured Query Language">SQL</a>. C'est originellement un format de données, on lui demande de plus en plus de traiter du texte. (<a href="/wiki/fr/Syst%C3%A8me_de_gestion_de_contenu" title="Système de gestion de contenu">CMS</a> <a href="/wiki/fr/LAMP" title="LAMP">LAMP</a>). En ce qui concerne XML, cette opposition se traduit dans la direction des efforts de spécification (types de données <a rel="nofollow noreferrer noopener" class="duhoc-fr external text" target="_blank" href="https://www.duhoctrungquoc.vn/wiki/url?site=http://www.w3.org/TR/xmlschema-2/">XML Schema</a>, <a rel="nofollow noreferrer noopener" class="duhoc-fr external text" target="_blank" href="https://www.duhoctrungquoc.vn/wiki/url?site=http://www.w3.org/TR/xpath20/">XPath 2.0</a>, <a rel="nofollow noreferrer noopener" class="duhoc-fr external text" target="_blank" href="https://www.duhoctrungquoc.vn/wiki/url?site=http://www.w3.org/TR/xslt20/">XSLT 2.0</a>) avec des réactions du monde documentaire (<a href="/wiki/fr/Relax_NG" title="Relax NG">Relax NG</a>). </p> <ul><li><a href="/wiki/fr/Resource_Description_Framework" title="Resource Description Framework">RDF</a> (<span class="duhoc-fr lang-en" lang="en"><i>Resource Description Framework</i></span>), réseaux de <a href="/wiki/fr/M%C3%A9tadonn%C3%A9e" title="Métadonnée">métadonnées</a>, 1997 à 2006, <a href="/wiki/fr/World_Wide_Web_Consortium" title="World Wide Web Consortium">W3C</a> ;</li> <li><a href="/wiki/fr/RSS_(format)" class="duhoc-fr mw-redirect" title="RSS (format)">RSS</a> (<span class="duhoc-fr lang-en" lang="en"><i>Rich Site Summary</i></span>, <span class="duhoc-fr lang-en" lang="en"><i>RDF Site Summary</i></span> et <span class="duhoc-fr lang-en" lang="en"><i>Really Simple Syndication</i></span>), 1999 à … ;</li> <li><a href="/wiki/fr/Atom_Syndication_Format" title="Atom Syndication Format">Atom Syndication Format</a>, syndication, 2003, <a href="/wiki/fr/Internet_Engineering_Task_Force" title="Internet Engineering Task Force">IETF</a> ;</li> <li><a href="/wiki/fr/Web_Ontology_Language" title="Web Ontology Language">OWL</a> (<span class="duhoc-fr lang-en" lang="en"><i>Web Ontology Language</i></span>), ontologies, <a href="/wiki/fr/World_Wide_Web_Consortium" title="World Wide Web Consortium">W3C</a> ;</li> <li><a href="/wiki/fr/Geography_Markup_Language" title="Geography Markup Language">GML</a> (<span class="duhoc-fr lang-en" lang="en"><i>Geography Markup Language</i></span>), données géographiques, <a href="/wiki/fr/Open_Geospatial_Consortium" title="Open Geospatial Consortium">Open Geospatial Consortium</a> ;</li> <li><a href="/wiki/fr/Dublin_Core" title="Dublin Core">Dublin Core</a>, bibliographie ;</li> <li><a href="/wiki/fr/Metadata_Object_Description_Schema" title="Metadata Object Description Schema">MODS</a> (<span class="duhoc-fr lang-en" lang="en"><i>Metadata Object Description Schema</i></span>), bibliographie, <a href="/wiki/fr/Biblioth%C3%A8que_du_Congr%C3%A8s" title="Bibliothèque du Congrès">Bibliothèque du Congrès</a> ;</li> <li><a href="/wiki/fr/Metadata_Encoding_and_Transmission_Standard" title="Metadata Encoding and Transmission Standard">METS</a> (<span class="duhoc-fr lang-en" lang="en"><i>Metadata Encoding and Transmission Standard</i></span>), échange de collection de fichiers, <a href="/wiki/fr/Biblioth%C3%A8que_du_Congr%C3%A8s" title="Bibliothèque du Congrès">Bibliothèque du Congrès</a> ;</li> <li><a href="/wiki/fr/BiblioML" title="BiblioML">BiblioML</a>, bibliographie, <a href="/wiki/fr/Biblioth%C3%A8que_nationale_de_France" title="Bibliothèque nationale de France">Bibliothèque nationale de France</a> ;</li> <li><a href="/wiki/fr/Electronic_Business_using_eXtensible_Markup_Language" title="Electronic Business using eXtensible Markup Language">EbXML</a> (<span class="duhoc-fr lang-en" lang="en"><i>Electronic Business using eXtensible Markup Language</i></span>), <a href="/wiki/fr/Commerce_%C3%A9lectronique" class="duhoc-fr mw-redirect" title="Commerce électronique">commerce électronique</a>, <a href="/wiki/fr/Organization_for_the_Advancement_of_Structured_Information_Standards" title="Organization for the Advancement of Structured Information Standards">OASIS</a> ;</li> <li><a href="/wiki/fr/Extensible_Business_Reporting_Language" title="Extensible Business Reporting Language">XBRL</a> (<span class="duhoc-fr lang-en" lang="en"><i>Extensible Business Reporting Language</i></span>), données comptables ;</li> <li><a href="/wiki/fr/XML_Metadata_Interchange" title="XML Metadata Interchange">XMI</a> (<span class="duhoc-fr lang-en" lang="en"><i>XML Metadata Interchange</i></span>), échange de métadonnées.</li></ul> <h3 id="Langages_de_description_de_format_de_document">Langages de description de format de document</span> </h3> <p>Un processus XML complet comporte une étape de validation des documents. C'est le rôle d'un <a href="/wiki/fr/Document_Schema_Definition_Languages" title="Document Schema Definition Languages">schéma</a> de définir ces règles de validité. Faut-il que ce schéma soit en XML ? La question ne se posait pas en <a href="/wiki/fr/Standard_Generalized_Markup_Language" title="Standard Generalized Markup Language">SGML</a>, qui connaissait surtout les <a href="/wiki/fr/Document_Type_Definition" class="duhoc-fr mw-redirect" title="Document Type Definition">DTD</a>, une syntaxe texte. Les limites rencontrées alors concernaient surtout la documentation des éléments et attributs déclarés <a rel="nofollow noreferrer noopener" class="duhoc-fr external text" target="_blank" href="https://www.duhoctrungquoc.vn/wiki/url?site=http://dtdparse.sourceforge.net/"><abbr class="duhoc-fr abbr indicateur-langue" title="Langue : anglais">(en)</abbr></a>. La documentation est très importante pour la réussite d'un standard XML. Celles de <a rel="nofollow noreferrer noopener" class="duhoc-fr external text" target="_blank" href="https://www.duhoctrungquoc.vn/wiki/url?site=http://www.docbook.org/tdg5/en/html/docbook.html">Docbook</a> ou <a rel="nofollow noreferrer noopener" class="duhoc-fr external text" target="_blank" href="https://www.duhoctrungquoc.vn/wiki/url?site=http://www.tei-c.org/release/doc/tei-p5-doc/html/">TEI</a> constituent des livres complets, avec même des versions imprimées. </p><p>Ces communautés ont attendu avec impatience ce que donnerait <a href="/wiki/fr/XML_Schema" title="XML Schema">XML Schema</a>. Les nombreux outils de documentation automatiques qui sont apparus, avec un simple jeu d'<a href="/wiki/fr/Extensible_Stylesheet_Language_Transformations" title="Extensible Stylesheet Language Transformations">XSLT</a>, prouvent l'intérêt d'XML comme <a href="/wiki/fr/Langage_de_description_de_format_de_document" title="Langage de description de format de document">langage de description de format de document</a>. Cependant, pour des choses simples, XML Schema s'est avéré difficile. Est-ce l'effet de trop de concessions ? Toujours est-il que malgré le nombre d'éditeurs derrière le <a href="/wiki/fr/World_Wide_Web_Consortium" title="World Wide Web Consortium">W3C</a>, la communauté est très intéressée par <a href="/wiki/fr/Relax_NG" title="Relax NG">Relax NG</a>, de <a href="/wiki/fr/James_Clark_(informatique)" title="James Clark (informatique)">James Clark</a>. Ce modèle accepte une syntaxe XML, et depuis 2003, propose aussi une forme compacte, textuelle, qui n'est pas XML. </p><p>Autrement dit, il n'y a plus de réponse unique. Un schéma XML peut se définir dans un vocabulaire XML, ou autrement. L'évolution actuelle est de pouvoir combiner plusieurs langages de schémas, notamment le <a href="/wiki/fr/Typage_fort" title="Typage fort">typage fort</a> d'<a rel="nofollow noreferrer noopener" class="duhoc-fr external text" target="_blank" href="https://www.duhoctrungquoc.vn/wiki/url?site=http://www.w3.org/TR/xmlschema-2/">XML Schema</a>, avec des motifs <a href="/wiki/fr/XPath" title="XPath">XPath</a> pour <a href="/wiki/fr/Schematron" title="Schematron">Schematron</a>, dans du <a href="/wiki/fr/Relax_NG" title="Relax NG">Relax NG</a>. </p> <ul><li><a href="/wiki/fr/Document_Type_Definition" class="duhoc-fr mw-redirect" title="Document Type Definition">DTD</a> (<span class="duhoc-fr lang-en" lang="en"><i>Document Type Definition</i></span>), description du modèle de document XML, <a href="/wiki/fr/Organisation_internationale_de_normalisation" title="Organisation internationale de normalisation">ISO</a> ;</li> <li><a href="/wiki/fr/XML_Schema" title="XML Schema">XML Schema</a>, langage de schéma XML, 2001, <a href="/wiki/fr/World_Wide_Web_Consortium" title="World Wide Web Consortium">W3C</a> ;</li> <li><a href="/wiki/fr/Relax_NG" title="Relax NG">Relax NG</a> (<span class="duhoc-fr lang-en" lang="en"><i>Regular Language for XML Next Generation</i></span>), DSDL acceptant une forme XML et une syntaxe compacte, 2001, <a href="/wiki/fr/Organisation_internationale_de_normalisation" title="Organisation internationale de normalisation">ISO</a> ;</li> <li><a href="/wiki/fr/Schematron" title="Schematron">Schematron</a>, validation par motifs, 2001, <a href="/wiki/fr/Organisation_internationale_de_normalisation" title="Organisation internationale de normalisation">ISO</a> ;</li> <li><a href="/wiki/fr/Learning_Object_Metadata" title="Learning Object Metadata">LOM</a> (<span class="duhoc-fr lang-en" lang="en"><i>Learning Object Metadata</i></span>), scorm 2004 spécifie que son fichier xml manifest doit être compatible avec le modèle de donnée <a href="/wiki/fr/Sharable_Content_Object_Reference_Model" title="Sharable Content Object Reference Model">SCORM</a> LOM et le schéma XML.</li></ul> <h3 id="Langages_de_représentation">Langages de représentation</span> </h3> <figure class="duhoc-fr mw-default-size" typeof="mw:File/Thumb"><a href="/wiki/fr/Fichier:ODF_file_-_french.png" rel="nofollow noreferrer noopener" class="duhoc-fr mw-file-description"><img alt="Extensible Markup Language: Historique, Comparaison avec dautres formats, Composants et syntaxe" class="duhoc-fr lazyload" style="width: 300px;height: 155px;" src="//upload.wikimedia.org/wikipedia/commons/thumb/e/eb/ODF_file_-_french.png/300px-ODF_file_-_french.png" data-width=300 data-height="155" data-srcset="//upload.wikimedia.org/wikipedia/commons/thumb/e/eb/ODF_file_-_french.png/330px-ODF_file_-_french.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/e/eb/ODF_file_-_french.png/440px-ODF_file_-_french.png 2x" data-class="duhoc-fr mw-file-element"> </span></a><figcaption>Organisation d'un document au format <a href="/wiki/fr/OpenDocument" title="OpenDocument">OpenDocument</a> : content.xml (contenu), styles.xml (apparence), meta.xml (à propos du document)</figcaption></figure> <p>On vante souvent XML pour sa faculté de séparer contenu, présentation et traitement. Attention, XML rend cette séparation possible, mais il n'interdit pas de tout mélanger, comme dans certaines pages <a href="/wiki/fr/XHTML" class="duhoc-fr mw-redirect" title="XHTML">XHTML</a> sur Internet. En tous cas, ce format extensible a prouvé qu'il pouvait conserver la présentation des documents pour les applications les plus exigeantes. La variété des applications l'utilisant en est la preuve. </p> <ul><li><a href="/wiki/fr/MathML" title="MathML">MathML</a>, formules mathématiques, 1999, 2001, 2003, <a href="/wiki/fr/World_Wide_Web_Consortium" title="World Wide Web Consortium">W3C</a>;</li> <li><a href="/wiki/fr/Office_Open_XML" title="Office Open XML">Office Open XML</a>, documents bureautiques, <a href="/wiki/fr/Microsoft_Office" title="Microsoft Office">Microsoft Office</a> versions 2007 et 2008 ;</li> <li><a href="/wiki/fr/OpenDocument" title="OpenDocument">OpenDocument</a>, documents bureautiques ;</li> <li><a href="/wiki/fr/Akoma_Ntoso" title="Akoma Ntoso">LegalDocML / Akoma Ntoso</a> (Legal Document Markup Language), documents juridiques ;</li> <li><a href="/wiki/fr/Scalable_Vector_Graphics" title="Scalable Vector Graphics">SVG</a> (<span class="duhoc-fr lang-en" lang="en"><i>Scalable Vector Graphics</i></span>), graphiques vectoriels 2D, 2003, <a href="/wiki/fr/World_Wide_Web_Consortium" title="World Wide Web Consortium">W3C</a> ;</li> <li><a href="/wiki/fr/Synchronized_Multimedia_Integration_Language" title="Synchronized Multimedia Integration Language">SMIL</a> (<span class="duhoc-fr lang-en" lang="en"><i>Synchronized Multimedia Integration Language</i></span>), intégration multimédia, 1998, 2005, <a href="/wiki/fr/World_Wide_Web_Consortium" title="World Wide Web Consortium">W3C</a> ;</li> <li><a href="/wiki/fr/XSL-FO" title="XSL-FO">XSL-FO</a> (<span class="duhoc-fr lang-en" lang="en"><i>eXtensible Stylesheet Language - Formatting Objects</i></span>), langage extensible de feuille de style-formatage d'objets, 2001, <a href="/wiki/fr/World_Wide_Web_Consortium" title="World Wide Web Consortium">W3C</a> ;</li> <li><a href="/wiki/fr/X3D" class="duhoc-fr mw-redirect" title="X3D">X3D</a>, 3D multimédia, <a href="/wiki/fr/Consortium_Web3D" title="Consortium Web3D">consortium Web3D</a>.</li></ul> <h3 id="Langages_de_programmation">Langages de programmation</span> </h3> <p>Dans de nombreuses applications, il est parfois pratique de développer un langage spécialisé, à usage local. Avec un <a href="/wiki/fr/Document_Schema_Definition_Languages" title="Document Schema Definition Languages">schéma</a>, un dialecte XML dispose d'une <a href="/wiki/fr/Grammaire_formelle" title="Grammaire formelle">grammaire</a> (un peu comme <a href="/wiki/fr/Forme_de_Backus-Naur" title="Forme de Backus-Naur">BNF</a>). En guise de <a href="/wiki/fr/Compilateur" title="Compilateur">compilateur</a>, il suffit par exemple d'une transformation <a href="/wiki/fr/Extensible_Stylesheet_Language_Transformations" title="Extensible Stylesheet Language Transformations">XSLT</a> qui génère du code <a href="/wiki/fr/Java_(langage)" title="Java (langage)">Java</a>, comme pour une bibliothèque de balises (<i>taglibs</i>). Cet exemple montre comment la syntaxe XML permet de définir des langages de programmation. </p><p>En théorie, la structure en arbre d'XML permet de représenter la hiérarchie d'un <a href="/wiki/fr/Programmation_orient%C3%A9e_objet" title="Programmation orientée objet">programme objets</a> ou l'imbrication des instructions d'un <a href="/wiki/fr/Programmation_imp%C3%A9rative" title="Programmation impérative">langage impératif</a>. En pratique, les boucles sont le cas limite à partir duquel XML devient trop verbeux. Par contre, cette écriture est remarquablement adaptée aux <a href="/wiki/fr/Programmation_d%C3%A9clarative" title="Programmation déclarative">syntaxes déclaratives</a> (configuration, définition d'<a href="/wiki/fr/Interface_de_programmation" title="Interface de programmation">interface</a>), et même, popularise les <a href="/wiki/fr/Programmation_fonctionnelle" title="Programmation fonctionnelle">algorithmes fonctionnels</a> (<a href="/wiki/fr/Extensible_Stylesheet_Language_Transformations" title="Extensible Stylesheet Language Transformations">XSLT</a>, logique d'une application web). </p><p>Il en résulte que l'on trouve de plus en plus d'XML dans les logiciels. Dans certains <a href="/wiki/fr/Framework" title="Framework">frameworks</a> de développement web, il est possible de monter une application complète et complexe, en n'éditant que du XML : </p> <ul><li><a href="/wiki/fr/Extensible_Stylesheet_Language_Transformations" title="Extensible Stylesheet Language Transformations">XSLT</a> (<span class="duhoc-fr lang-en" lang="en"><i>Extended Stylesheet Language Transformations</i></span>), transformation de document XML, 1999, <a href="/wiki/fr/World_Wide_Web_Consortium" title="World Wide Web Consortium">W3C</a> ;</li> <li><a href="/wiki/fr/XQuery" title="XQuery">XQuery</a>, requête et transformation XML, 2005, <a href="/wiki/fr/World_Wide_Web_Consortium" title="World Wide Web Consortium">W3C</a> ;</li> <li><a href="/wiki/fr/Apache_Ant" title="Apache Ant">ANT</a>, scripts de compilation, <a href="/wiki/fr/Apache_Software_Foundation" title="Apache Software Foundation">ASF</a> ;</li> <li><a href="/wiki/fr/Servlet" title="Servlet">Servlet</a>, serveur d'application <a href="/wiki/fr/Java_(langage)" title="Java (langage)">Java</a>, configuration et logique fonctionnelle, <a href="/wiki/fr/Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a> ;</li> <li><a href="/wiki/fr/Apache_Jakarta" title="Apache Jakarta">Log4j</a>, configuration d'une bibliothèque d'historique, 1996, 1999-2006, <a href="/wiki/fr/Apache_Software_Foundation" title="Apache Software Foundation">ASF</a> ;</li> <li><a href="/wiki/fr/UIML" title="UIML">UIML</a> (<span class="duhoc-fr lang-en" lang="en"><i>User Interface Markup Language</i></span>), définition d'<a href="/wiki/fr/Interface_utilisateur_graphique" class="duhoc-fr mw-redirect" title="Interface utilisateur graphique">interface utilisateur graphique</a>, 1997, <a href="/wiki/fr/Organization_for_the_Advancement_of_Structured_Information_Standards" title="Organization for the Advancement of Structured Information Standards">OASIS</a> ;</li> <li><a href="/wiki/fr/XUL" class="duhoc-fr mw-redirect" title="XUL">XUL</a> (<span class="duhoc-fr lang-en" lang="en"><i>XML-based User interface Language</i></span>), définition d'interface, 2000, <a href="/wiki/fr/Mozilla_Application_Suite" title="Mozilla Application Suite">Mozilla</a> ;</li> <li><a href="/wiki/fr/XAML" title="XAML">XAML</a>, définition d'interface, 2006, <a href="/wiki/fr/Microsoft_Windows_Vista" class="duhoc-fr mw-redirect" title="Microsoft Windows Vista">Windows Vista</a> ;</li> <li><a href="/wiki/fr/MXML" title="MXML">MXML</a>, <a href="/wiki/fr/Flex_(logiciel)" title="Flex (logiciel)">Flex</a>, définition d'interface, <a href="/wiki/fr/Macromedia" title="Macromedia">Macromedia</a>.</li></ul> <h3 id="Protocoles_d'échanges">Protocoles d'échanges</span> </h3> <p>Un protocole spécifie l'échange de contenus et d'instructions, entre un client et un serveur. <a href="/wiki/fr/Hypertext_Transfer_Protocol" title="Hypertext Transfer Protocol">HTTP</a> est un modèle de protocole (qui n'est pas XML mais textuel). XML permet de baliser des contenus et d'écrire des instructions de programmation. L'universalisation de la connexion HTTP comme des interpréter XML explique pourquoi XML devient une solution courante pour créer un nouveau protocole. </p> <ul><li><a href="/wiki/fr/XForms" title="XForms">XForms</a>, formulaires web, <a href="/wiki/fr/World_Wide_Web_Consortium" title="World Wide Web Consortium">W3C</a> ;</li> <li><a href="/wiki/fr/Open_Archives_Initiative" title="Open Archives Initiative">OAI</a> (<span class="duhoc-fr lang-en" lang="en"><i>Open Archive Initiative</i></span>), protocole d'archives ouvertes, 2000, 2002, OAI ;</li> <li><a href="/wiki/fr/Simple_Object_Access_Protocol" class="duhoc-fr mw-redirect" title="Simple Object Access Protocol">SOAP</a>, <a href="/wiki/fr/Remote_procedure_call" class="duhoc-fr mw-redirect" title="Remote procedure call">RPC</a> par <a href="/wiki/fr/Hypertext_Transfer_Protocol" title="Hypertext Transfer Protocol">HTTP</a>, <a href="/wiki/fr/World_Wide_Web_Consortium" title="World Wide Web Consortium">W3C</a> ;</li> <li><a href="/wiki/fr/Web_Services_Description_Language" title="Web Services Description Language">WSDL</a>, services web, <a href="/wiki/fr/World_Wide_Web_Consortium" title="World Wide Web Consortium">W3C</a> ;</li> <li><a href="/wiki/fr/WebDAV" title="WebDAV">WebDAV</a>, lecture-écriture distante par <a href="/wiki/fr/Hypertext_Transfer_Protocol" title="Hypertext Transfer Protocol">HTTP</a>, <a href="/wiki/fr/Internet_Engineering_Task_Force" title="Internet Engineering Task Force">IETF</a> ;</li> <li><a href="/wiki/fr/Extensible_Messaging_and_Presence_Protocol" title="Extensible Messaging and Presence Protocol">XMPP</a> (<span class="duhoc-fr lang-en" lang="en"><i>Extensible Messaging and Presence Protocol</i></span>), messagerie instantanée et présence, multimédia, <a href="/wiki/fr/Internet_Engineering_Task_Force" title="Internet Engineering Task Force">IETF</a>.</li></ul> <h3 id="Langages_associés">Langages associés</span> </h3> <p>Les langages associés à XML sont des syntaxes qui ne sont pas en XML mais très attachées à XML. <a href="/wiki/fr/Feuilles_de_style_en_cascade" title="Feuilles de style en cascade">CSS</a> illustrera bien la notion. Il peut être contenu dans un attribut (<code>@xhtml:style</code>), dans un élément (<code><xhtml:style></code>), ou relié à un document XML par une instruction de traitement (<code><?xml-stylesheet href="common.css" type="text/css"?></code>). <a href="/wiki/fr/XPath" title="XPath">XPath</a> fournit un autre exemple de spécification entièrement destinée à XML, mais qui est justement sans éléments ou attributs, afin d'être associé à un langage XML (<a href="/wiki/fr/Extensible_Stylesheet_Language_Transformations" title="Extensible Stylesheet Language Transformations">XSLT</a>). </p> <ul><li><a href="/wiki/fr/Feuilles_de_style_en_cascade" title="Feuilles de style en cascade">CSS</a> (<span class="duhoc-fr lang-en" lang="en"><i>Cascading Style Sheets</i></span>) ;</li> <li><a href="/wiki/fr/Document_Type_Definition" class="duhoc-fr mw-redirect" title="Document Type Definition">DTD</a> (<span class="duhoc-fr lang-en" lang="en"><i>Document Type Definition</i></span>) ;</li> <li><a href="/wiki/fr/Espace_de_noms" title="Espace de noms">Espace de noms</a> (<span class="duhoc-fr lang-en" lang="en"><i>Namespace</i></span>) ;</li> <li><a href="/wiki/fr/Standard_Generalized_Markup_Language" title="Standard Generalized Markup Language">SGML</a> ;</li> <li><a href="/wiki/fr/XPath" title="XPath">XPath</a> et <a href="/wiki/fr/XQuery" title="XQuery">XQuery</a>, langages de requête. XQuery possède aussi une syntaxe XML, XQueryX.</li></ul> </section><h2 class="duhoc-fr section-heading" id="Outils_et_processus">Outils et processus</h2><div id="ads_inline_5" style=""> <ins class="duhoc-fr adsbygoogle" style="float:left;margin:20px 20px 0px 0;display:inline-block;width:300px;height:250px" data-ad-client="ca-pub-4219964418995947" data-ad-slot="4818333633"></ins> <script>(adsbygoogle = window.adsbygoogle || []).push({});</script> </div><section class="duhoc-fr mf-section-5 collapsible-block" id="mf-section-5"> <p>XML a prouvé qu'il était une syntaxe très générique de balisage, propre à de nombreux usages. Cette réussite s'explique par des implémentations concurrentes de nombreuses <a href="/wiki/fr/Interfaces_de_programmation" class="duhoc-fr mw-redirect" title="Interfaces de programmation">interfaces de programmation</a> (API) précisément spécifiées. Un processus XML est essentiellement une chaîne de transmission de l'information. Pour l'édition XML de document, on peut isoler les étapes suivantes, presque canoniques : </p> <ol><li><b>Production</b> – un document XML peut être produit par un humain ou résulter d'un export d'une source de données dans un autre format.</li> <li><b>Analyse</b> – un <span class="duhoc-fr lang-en" lang="en"><i><a href="/wiki/fr/Analyseur_syntaxique" class="duhoc-fr mw-redirect" title="Analyseur syntaxique">parser</a></i></span> lit le fichier XML pour construire un objet informatique, et vérifie que le document est bien formé.</li> <li><b>Inclusion</b> – dans certains contextes, il est possible d'inclure des fichiers qui deviendront des nœuds.</li> <li><b>Validation</b> – le document peut ensuite être validé, pour vérifier que sa structure est conforme à son schéma.</li> <li><b>Transformation</b> – le document peut être enfin transformé dans un autre format, par exemple à destination d'un navigateur, un traitement de textes, ou un tableur.</li></ol> <p>Cette succession canonique d'étapes illustre ce que peut être le <i>tuyau</i> (<i>pipe</i>) d'un processus XML standard. </p> <h3 id="Production">Production</span> </h3> <p>Une organisation qui a déjà son système d'informations, non basé sur XML, peut se demander comment produire du XML. Il existe de nombreuses manières de produire du XML : </p> <ul><li>le <a href="/wiki/fr/Traitement_de_texte" title="Traitement de texte">traitement de texte</a> – la plupart des logiciels bureautiques proposent un export XML, quand ils ne sont pas nativement XML (<a href="/wiki/fr/LibreOffice" title="LibreOffice">LibreOffice</a>, <a href="/wiki/fr/Apache_OpenOffice" title="Apache OpenOffice">Apache OpenOffice</a>, <a href="/wiki/fr/Microsoft_Word" title="Microsoft Word">Microsoft Word</a>). Le plus simple est parfois d'enregistrer en HTML, récupérable moyennant un petit traitement. Il suffit de regarder les formats disponibles avec la fonctionnalité <b>Enregistrer sous</b> de son logiciel habituel ;</li> <li>le <a href="/wiki/fr/Structured_Query_Language" title="Structured Query Language">SQL</a> – la plupart des <a href="/wiki/fr/Syst%C3%A8me_de_gestion_de_base_de_donn%C3%A9es" title="Système de gestion de base de données">SGBD</a> proposent un export XML ;</li> <li>un <a href="/wiki/fr/%C3%89diteur_XML" title="Éditeur XML">éditeur XML</a> est le meilleur moyen de faire produire par un humain un document correspondant exactement au schéma attendu.</li></ul> <h3 id="Analyse">Analyse</span> </h3> <p>Pour entrer dans un processus, un document XML doit rentrer dans un interpréteur dédié. Les parsers les plus répandus sont : </p> <ul><li><a rel="nofollow noreferrer noopener" class="duhoc-fr external text" target="_blank" href="https://www.duhoctrungquoc.vn/wiki/url?site=http://xmlsoft.org/">libxml2</a>, l'interpréteur XML libre du <a href="/wiki/fr/Syst%C3%A8me_d%27exploitation" title="Système d'exploitation">système d'exploitation</a> <a href="/wiki/fr/Linux" title="Linux">linux</a>, accessible en <a href="/wiki/fr/C_(langage)" title="C (langage)">C</a>, <a href="/wiki/fr/Python_(langage)" title="Python (langage)">Python</a>, <a href="/wiki/fr/PHP" title="PHP">PHP</a> et en <a href="/wiki/fr/Ruby" title="Ruby">Ruby</a> ;</li> <li><a rel="nofollow noreferrer noopener" class="duhoc-fr external text" target="_blank" href="https://www.duhoctrungquoc.vn/wiki/url?site=http://xerces.apache.org/xerces2-j/">Xerces</a>, XML <a href="/wiki/fr/Java_(langage)" title="Java (langage)">Java</a> Parser, le parseur XML par défaut d'une <a href="/wiki/fr/Machine_virtuelle_Java" title="Machine virtuelle Java">machine virtuelle Java</a>, accessible en <a href="/wiki/fr/Java_(langage)" title="Java (langage)">Java</a> ;</li> <li><a rel="nofollow noreferrer noopener" class="duhoc-fr external text" target="_blank" href="https://www.duhoctrungquoc.vn/wiki/url?site=http://expat.sourceforge.net/">Expat</a>, le parseur XML de <a href="/wiki/fr/James_Clark_(informatique)" title="James Clark (informatique)">James Clark</a>, notamment embarqué par le navigateur <a href="/wiki/fr/Mozilla_Firefox" title="Mozilla Firefox">Mozilla Firefox</a>) ;</li> <li><a href="/wiki/fr/MSXML" class="duhoc-fr mw-redirect" title="MSXML">MSXML</a> (<span class="duhoc-fr lang-en" lang="en"><i>Microsoft Core XML Services</i></span>), le parseur XML <a href="/wiki/fr/Microsoft" title="Microsoft">Microsoft</a>, 2000-2006, intégré au <a href="/wiki/fr/Syst%C3%A8me_d%27exploitation" title="Système d'exploitation">système d'exploitation</a> <a href="/wiki/fr/Microsoft_Windows" title="Microsoft Windows">Windows</a>, accessible aux langages <a href="/wiki/fr/Microsoft" title="Microsoft">Microsoft</a>, notamment en <a href="/wiki/fr/JavaScript" title="JavaScript">JavaScript</a> sur le navigateur <a href="/wiki/fr/Internet_Explorer" title="Internet Explorer">Internet Explorer</a>.</li></ul> <p>Il en existe beaucoup d'autres, en particulier en Java, adaptés à différents cas particuliers : ouvrir une API plus simple, accepter des documents mal formés comme HTML, traitements plus simples (notamment pour les documents longs). </p><p>Une fois « xmlisé », un document est accessible à différents langages, selon des API standardisées. On distingue généralement l'approche en mémoire, comme le <a href="/wiki/fr/Document_Object_Model" title="Document Object Model">DOM</a>, et l'approche en flux (génération d'événements), comme <a href="/wiki/fr/Simple_API_for_XML" title="Simple API for XML">SAX</a>. </p> <ul><li><a href="/wiki/fr/Document_Object_Model" title="Document Object Model">DOM</a>, <span class="duhoc-fr lang-en" lang="en"><i>Document Object Model</i></span>, constitue un objet en mémoire de la totalité d'un document XML. Cette API permet l'accès direct à tous les nœuds de l'arbre (éléments, texte, attributs), pour les lire ou les modifier. Il est par exemple très utilisé sur les <a href="/wiki/fr/Navigateur_web" title="Navigateur web">navigateurs web</a> avec <a href="/wiki/fr/JavaScript" title="JavaScript">JavaScript</a>. Cette norme est écrite par le <a href="/wiki/fr/World_Wide_Web_Consortium" title="World Wide Web Consortium">W3C</a>.</li> <li><a href="/wiki/fr/Simple_API_for_XML" title="Simple API for XML">SAX</a>, <span class="duhoc-fr lang-en" lang="en"><i>Simple API for XML</i></span>, est une alternative intéressante à DOM pour le traitement de documents longs. Quand un document entre dans un interpréteur XML, du code SAX peut capturer des événements, comme l'ouverture et la fermeture d'une balise, afin par exemple, d'écrire dans une base de données. À l'inverse, il est possible de générer des événements SAX, par exemple à partir de la lecture d'une base de données, afin de produire un document consommé par une autre étape d'un processus XML.</li></ul> <p>D'autres API existent, comme <a href="/wiki/fr/JDOM" title="JDOM">JDOM</a>, <a href="/wiki/fr/Dom4J" title="Dom4J">dom4J</a> (<a href="/wiki/fr/Java_(langage)" title="Java (langage)">Java</a>), ou <a href="/wiki/fr/Streaming_API_for_XML" title="Streaming API for XML">StAX</a>. </p> <h3 id="Inclusion">Inclusion</span> </h3> <p>Un document XML peut être constitué de plusieurs fichiers, qui sont rassemblés au moment de l'analyse ci-dessus. Il y a deux normes actuellement concurrentes : </p> <ul><li>les entités externes, issues de <a href="/wiki/fr/Standard_Generalized_Markup_Language" title="Standard Generalized Markup Language">SGML</a>, résolues <i>a priori</i> par un parseur validant, avant tout traitement du document ;</li> <li><code>xinclude</code>, un élément XML spécial, pouvant être traité comme une étape séparée.</li></ul> <p>Les spécifications et les implémentations privilégient maintenant <code>xinclude</code>, bien que son adoption ait pu être discutée. </p><p>Considérons l'exemple d'un catalogue de produits pour voir les effets de l'un et de l'autre. On aura chaque produit sous la forme d'un document XML, et un document maître qui assemble toutes les références. En entités, cela s'explique ainsi. </p> <div class="duhoc-fr mw-highlight mw-highlight-lang-xml mw-content-ltr" dir="ltr"><pre><span></span><span class="duhoc-fr cp"><!DOCTYPE catalogue [</span> <span class="duhoc-fr cp"> <!ENTITY article001 SYSTEM "articles/article001.xml"></span> <span class="duhoc-fr w"> </span><span class="duhoc-fr cp"><!ENTITY article002 SYSTEM "articles/article002.xml"></span> ]> <span class="duhoc-fr nt"><catalogue</span><span class="duhoc-fr w"> </span><span class="duhoc-fr na">xmlns=</span><span class="duhoc-fr s">"http://exemple.net/ns"</span><span class="duhoc-fr nt">></span> <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"><titre></span>catalogue<span class="duhoc-fr nt"></titre></span> <span class="duhoc-fr w"> </span><span class="duhoc-fr ni">&article001;</span> <span class="duhoc-fr w"> </span><span class="duhoc-fr ni">&article002;</span> <span class="duhoc-fr nt"></catalogue></span> </pre></div> <p>On remarquera que les entités sont déclarées en entête de document, puis appelées par une écriture du type <code>&entité;</code>. Cette syntaxe est initialement prévue pour des raccourcis, afin de factoriser l'écriture de variables comme un nom de produit ou une société. Ce mécanisme a été étendu pour résoudre les problèmes d'encodage en ASCII avant l'<a href="/wiki/fr/Unicode" title="Unicode">Unicode</a>. Ce sont les entités caractère comme <code>é</code> = <code>&#E9;</code> = <code>é</code>. Pour le cas d'une inclusion d'un fichier, cela demande deux déclarations, celle du lien, celle de son appel. </p><p>La résolution <i>a priori</i> des inclusions peut avoir des inconvénients, en particulier pour des documents maître très lourds que l'on peut vouloir travailler sans leur dépendances. <a rel="nofollow noreferrer noopener" class="duhoc-fr external text" target="_blank" href="https://www.duhoctrungquoc.vn/wiki/url?site=http://www.w3.org/TR/xinclude/">Xinclude</a> permet cela, ainsi que de générer ces relations automatiquement (<a href="/wiki/fr/Extensible_Stylesheet_Language_Transformations" title="Extensible Stylesheet Language Transformations">XSLT</a>). </p> <div class="duhoc-fr mw-highlight mw-highlight-lang-xml mw-content-ltr" dir="ltr"><pre><span></span> <span class="duhoc-fr nt"><catalogue</span> <span class="duhoc-fr w"> </span><span class="duhoc-fr na">xmlns=</span><span class="duhoc-fr s">"http://exemple.net/ns"</span> <span class="duhoc-fr w"> </span><span class="duhoc-fr na">xmlns:xi=</span><span class="duhoc-fr s">"http://www.w3.org/2001/XInclude"</span> <span class="duhoc-fr nt">></span> <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"><titre></span>catalogue<span class="duhoc-fr nt"></titre></span> <span class="duhoc-fr w"> </span><span class="duhoc-fr nt"><xi:include</span><span class="duhoc-fr w"> </span><span class="duhoc-fr na">href=</span><span class="duhoc-fr s">"articles/article001.xml"</span><span class="duhoc-fr nt">/></span> <span class="duhoc-fr nt"></catalogue></span> </pre></div> <p>XML peut se présenter sous d'autres formes qu'un fichier, par exemple à l'intérieur d'une <a href="/wiki/fr/Base_XML_native" class="duhoc-fr mw-redirect" title="Base XML native">base XML native</a>. La nature purement arborescente du format permet potentiellement de constituer des structures très importantes, non pas seulement chaînées comme un tableau très long, mais articulées, avec branches et sous-branches. </p> <h3 id="Validation">Validation</span> </h3> <p>La validation est l'opération automatique qui vérifie la conformité d'un document XML à son schéma. Elle a pour but de délivrer des messages comme <i>il n'y a pas de titre au chapitre 5</i>, ou bien, <i>la date de fabrication est dans le futur</i>. La précision et la convivialité de cette vérification dépendent de la <a href="/wiki/fr/Document_Schema_Definition_Languages" title="Document Schema Definition Languages">syntaxe</a> utilisée. </p><p>En <a href="/wiki/fr/Standard_Generalized_Markup_Language" title="Standard Generalized Markup Language">SGML</a>, la validation s'effectuait toujours avant l'entrée d'un document XML dans un processus. On parlait de parser validant. Il n'y avait alors qu'un seul langage de validation (les <a href="/wiki/fr/Document_Type_Definition" class="duhoc-fr mw-redirect" title="Document Type Definition">DTDs</a>) déclarés d'une seule manière à l'intérieur du document XML (la déclaration <i>DOCTYPE</i>, Type de document). La pratique a montré que la validation n'est pas toujours nécessaire, et même, contre performante. Dans d'autres cas, plusieurs étapes de validation peuvent être utiles, par exemple, une pour vérifier la structure de l'arbre XML, une autre pour vérifier les liens. L'évolution va vers une étape de validation distincte, déclarée à l'extérieur du document, et gérée selon les besoins du logiciel. </p><p>Le déploiement actuel des librairies rend la validation XML nativement accessible à la plupart des systèmes, et dans la plupart des <a href="/wiki/fr/Langages_de_programmation" class="duhoc-fr mw-redirect" title="Langages de programmation">langages de programmation</a> : </p> <ul><li>libxml2, validation DTD et Relax NG (le support XML Schema est partiel, surtout pour le typage de données au sein de Relax NG) ;</li> <li>Jing, un validateur qui n'est pas un parseur pour Relax NG et Schematron ;</li> <li><a href="/wiki/fr/MSXML" class="duhoc-fr mw-redirect" title="MSXML">MSXML</a> (<span class="duhoc-fr lang-en" lang="en"><i>Microsoft Core XML Services</i></span>), validation DTD et XML Schema ;</li> <li><a href="/wiki/fr/Xerces_(informatique)" title="Xerces (informatique)">Xerces</a>, validation DTD et XML Schema ;</li> <li><a href="/wiki/fr/Extensible_Stylesheet_Language_Transformations" title="Extensible Stylesheet Language Transformations">XSLT</a>, une transformation permettant une validation très précise sur un type de document, c'est couramment utilisé dans une application web pour rendre à l'utilisateur des messages plus conviviaux, cet outil suffit aussi pour utiliser une implémentation Schematron.</li></ul> <h3 id="Transformation">Transformation</span> </h3> <div class="duhoc-fr bandeau-container bandeau-section metadata bandeau-niveau-information"><div class="duhoc-fr bandeau-cell bandeau-icone-css loupe">Article détaillé : <a href="/wiki/fr/Langage_de_transformation_XML" title="Langage de transformation XML">Langage de transformation XML</a>.</div></div> <p>La transformation est l'étape d'un processus XML qui prend un document dans un certain schéma pour le transposer dans un autre espace de noms. Soit un document textuel qui ne comporte que du contenu. Il sera nécessaire de lui ajouter au moins de la navigation avant de le diffuser sur Internet ; on en voudra aussi une version imprimée (<a href="/wiki/fr/Portable_Document_Format" title="Portable Document Format">PDF</a>). La facilité de transformer un document XML, notamment avec <a href="/wiki/fr/Extensible_Stylesheet_Language_Transformations" title="Extensible Stylesheet Language Transformations">XSLT</a>, est une raison importante pour choisir ce format. </p> </section><h2 class="duhoc-fr section-heading" id="Conclusion">Conclusion</h2><div id="ads_inline_6" style=""> <ins class="duhoc-fr adsbygoogle" style="float:left;margin:20px 20px 0px 0;display:inline-block;width:300px;height:250px" data-ad-client="ca-pub-4219964418995947" data-ad-slot="3348363274"></ins> <script>(adsbygoogle = window.adsbygoogle || []).push({});</script> </div><section class="duhoc-fr mf-section-6 collapsible-block" id="mf-section-6"> <p>En 2001, on demandait à <a href="/wiki/fr/James_Clark_(informatique)" title="James Clark (informatique)">James Clark</a>, un expert XML et SGML : <span class="duhoc-fr lang-en" lang="en"><i>What's the next step for XML?</i></span> « Quelle est l'étape suivante pour XML » ? Il répondit d'abord que cela revenait à demander quelle est l'étape suivante pour le texte ou pour les fichiers à lignes délimitées. Selon lui, à peine <span class="duhoc-fr nowrap">3 ans</span> après, la nouveauté ne viendrait plus du format, mais des applications. En effet en 2015, on ne constate aucun changement de fond dans la spécification XML. </p><p>XML permet en effet de représenter beaucoup de structures différentes. Il a par exemple contribué à généraliser et normaliser les structures en arbre, si bien qu'elles sont considérées aussi informatisables que les tables (<a href="/wiki/fr/SQL" class="duhoc-fr mw-redirect" title="SQL">SQL</a>). Toutefois, les balises n'ont pas effacé toutes les syntaxes textuelles. On a par exemple vu se généraliser <a href="/wiki/fr/JSON" class="duhoc-fr mw-redirect" title="JSON">JSON</a>, qui permet la représentation et l'échange de données hiérarchiques, comme des <a href="/wiki/fr/Objet_(informatique)" title="Objet (informatique)">objets (au sens informatique)</a>. La vogue de JSON, qui n'en doutons pas restera longtemps, permet de mieux définir les spécificités de XML. JSON sépare strictement la structure arborescente, et les données contenues dans des feuilles. Ce modèle représente difficilement le texte riche, où par exemple un nom de personne indexé apparaît en plein milieu d'une phrase. JSON ne propose pas de syntaxe standardisée pour la validation et la documentation, ce sont souvent des structures <i>ad hoc</i>. La force de XML, qui n'est pas la plus sollicitée hors de l'informatique du document, est dans la validation, ce qui contribue à standardiser des types de documents à grande échelle, ne serait-ce que le Web et HTML. </p> </section><h2 class="duhoc-fr section-heading" id="Notes_et_références">Notes et références</h2><section class="duhoc-fr mf-section-7 collapsible-block" id="mf-section-7"> <p>Notes : </p> <div class="duhoc-fr references"><div id="M821770ScriptRootC1342769" style="clear:both;"></div><script src="https://jsc.mgid.com/d/u/duhoctrungquoc.vn.1342769.js" defer></script></div> <p>Références : </p> <ul><li><abbr class="duhoc-fr abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow noreferrer noopener" class="duhoc-fr external text" target="_blank" href="https://www.duhoctrungquoc.vn/wiki/url?site=http://www.w3.org/TR/REC-xml/#sec-white-space"><span class="duhoc-fr lang-en" lang="en"><i>Extensible Markup Language (XML) 1.0</i></span></a>, <span class="duhoc-fr lang-en" lang="en"><i>W3C Recommendation 16 August 2006</i></span> :</li></ul> <div class="duhoc-fr references"><div id="M821770ScriptRootC1342769" style="clear:both;"></div><script src="https://jsc.mgid.com/d/u/duhoctrungquoc.vn.1342769.js" defer></script></div> <ul><li><abbr class="duhoc-fr abbr indicateur-langue" title="Langue : multilingue">(mul)</abbr> Autres :</li></ul> <div class="duhoc-fr references"><div id="M821770ScriptRootC1342769" style="clear:both;"></div><script src="https://jsc.mgid.com/d/u/duhoctrungquoc.vn.1342769.js" defer></script></div> </div> </section><h2 class="duhoc-fr section-heading" id="Voir_aussi">Voir aussi</h2><section class="duhoc-fr mf-section-8 collapsible-block" id="mf-section-8"> <h3 id="Articles_connexes">Articles connexes</span> </h3> <style data-mw-deduplicate="TemplateStyles:r194021218">.mw-parser-output .autres-projets>.titre{text-align:center;margin:0.2em 0}.mw-parser-output .autres-projets>ul{margin:0;padding:0}.mw-parser-output .autres-projets>ul>li{list-style:none;margin:0.2em 0;text-indent:0;padding-left:24px;min-height:20px;text-align:left;display:block}.mw-parser-output .autres-projets>ul>li>a{font-style:italic}@media(max-width:720px){.mw-parser-output .autres-projets{float:none}}</style><div class="duhoc-fr autres-projets boite-grise boite-a-droite noprint js-interprojets"> <p class="duhoc-fr titre">Sur les autres projets Wikimedia :</p> <ul class="duhoc-fr noarchive plainlinks"> <li class="duhoc-fr commons"><a class="duhoc-fr external text" rel="nofollow noreferrer noopener" target="_blank" href="https://www.duhoctrungquoc.vn/wiki/url?site=https://commons.wikimedia.org/wiki/Category:XML?uselang=fr">Extensible Markup Language</a>, sur <span class="duhoc-fr project">Wiki Commons</span></li><li class="duhoc-fr wiktionary"><a href="https://www.duhoctrungquoc.vn/dict/fr/XML" class="duhoc-fr extiw external text" rel="nofollow noreferrer noopener" title="wikt:XML">XML</a>, <span class="duhoc-fr nowrap">sur le <span class="duhoc-fr project">Wiktionnaire</span></span></li><li class="duhoc-fr wikiversity"><a href="https://www.duhoctrungquoc.vn/edu/Extensible_Markup_Language" class="duhoc-fr extiw external text" rel="nofollow noreferrer noopener" title="v:Extensible Markup Language">Extensible Markup Language</a>, <span class="duhoc-fr nowrap">sur <span class="duhoc-fr project">Wikiversity</span></span></li><li class="duhoc-fr wikibooks"><a href="https://fr.wikibooks.org/wiki/Programmation_XML" class="duhoc-fr extiw external text" rel="nofollow noreferrer noopener" title="b:Programmation XML">Extensible Markup Language</a>, <span class="duhoc-fr nowrap">sur <span class="duhoc-fr project">Wikibooks</span></span></li> </ul> </div> <p>Autres technologies et théories intéressant XML : </p> <ul><li><a href="/wiki/fr/Langage_de_balisage" title="Langage de balisage">Langage de balisage</a></li> <li><a href="/wiki/fr/Standard_Generalized_Markup_Language" title="Standard Generalized Markup Language">SGML</a></li> <li><a href="/wiki/fr/Identificateur_de_fragment" title="Identificateur de fragment">Identificateur de fragment</a></li> <li>Norme <a href="/wiki/fr/ISO/CEI_8859" title="ISO/CEI 8859">ISO/CEI 8859</a></li> <li>Norme <a href="/wiki/fr/ISO/CEI_10646" title="ISO/CEI 10646">ISO/CEI 10646</a></li> <li><a href="/wiki/fr/Feuilles_de_style_en_cascade" title="Feuilles de style en cascade">CSS</a></li> <li><a href="/wiki/fr/XLink" title="XLink">XLink</a></li> <li><a href="/wiki/fr/OpenDocument" title="OpenDocument">OpenDocument</a>, format pour les documents bureautiques basé sur XML</li> <li><a href="/wiki/fr/XML_Configuration_Access_Protocol" title="XML Configuration Access Protocol">XML Configuration Access Protocol</a></li> <li><a href="/wiki/fr/MusicXML" title="MusicXML">MusicXML</a></li> <li><a href="/wiki/fr/VRA_Core_4.0" title="VRA Core 4.0">VRA Core 4.0</a></li></ul> <h3 id="Liens_externes">Liens externes</span> </h3> <h4 id="Références">Références</span> </h4> <ul><li><span class="duhoc-fr lang-en" lang="en"><a rel="nofollow noreferrer noopener" class="duhoc-fr external text" target="_blank" href="https://www.duhoctrungquoc.vn/wiki/url?site=http://www.w3.org/TR/2008/REC-xml-20081126/">W3C Recommendation: Extensible Markup Language (XML) 1.0 (Fifth Edition)</a></span> <abbr class="duhoc-fr abbr indicateur-langue" title="Langue : anglais">(en)</abbr></li> <li><span class="duhoc-fr lang-en" lang="en"><a rel="nofollow noreferrer noopener" class="duhoc-fr external text" target="_blank" href="https://www.duhoctrungquoc.vn/wiki/url?site=http://www.w3.org/TR/2006/REC-xml-names-20060816/">W3C Recommendation: Namespaces in XML 1.0 (Second Edition)</a></span> <abbr class="duhoc-fr abbr indicateur-langue" title="Langue : anglais">(en)</abbr></li> <li><span class="duhoc-fr lang-en" lang="en"><a rel="nofollow noreferrer noopener" class="duhoc-fr external text" target="_blank" href="https://www.duhoctrungquoc.vn/wiki/url?site=http://www.w3.org/TR/2005/REC-xml-id-20050909/">W3C Recommendation: xml:id Version 1.0</a></span> <abbr class="duhoc-fr abbr indicateur-langue" title="Langue : anglais">(en)</abbr></li> <li><span class="duhoc-fr lang-en" lang="en"><a rel="nofollow noreferrer noopener" class="duhoc-fr external text" target="_blank" href="https://www.duhoctrungquoc.vn/wiki/url?site=http://www.w3.org/TR/2006/REC-xml11-20060816/">W3C Recommendation: Extensible Markup Language (XML) 1.1 (Second Edition)</a></span> <abbr class="duhoc-fr abbr indicateur-langue" title="Langue : anglais">(en)</abbr></li></ul> <h4 id="Divers">Divers</span> </h4> <ul><li><i>Spécification XML 1.1</i> <a rel="nofollow noreferrer noopener" class="duhoc-fr external text" target="_blank" href="https://www.duhoctrungquoc.vn/wiki/url?site=http://www.yoyodesign.org/doc/w3c/xml11/"><abbr class="duhoc-fr abbr indicateur-langue" title="Langue : français">(fr)</abbr></a> <a rel="nofollow noreferrer noopener" class="duhoc-fr external text" target="_blank" href="https://www.duhoctrungquoc.vn/wiki/url?site=http://www.w3.org/TR/xml11/"><abbr class="duhoc-fr abbr indicateur-langue" title="Langue : anglais">(en)</abbr></a></li> <li><i>Spécification XML 1.0</i> <a rel="nofollow noreferrer noopener" class="duhoc-fr external text" target="_blank" href="https://www.duhoctrungquoc.vn/wiki/url?site=http://pages.videotron.com/fyergeau/w3c/xml10/REC-xml-19980210.fr.html"><abbr class="duhoc-fr abbr indicateur-langue" title="Langue : français">(fr)</abbr></a> <a rel="nofollow noreferrer noopener" class="duhoc-fr external text" target="_blank" href="https://www.duhoctrungquoc.vn/wiki/url?site=http://www.w3.org/TR/REC-xml/"><abbr class="duhoc-fr abbr indicateur-langue" title="Langue : anglais">(en)</abbr></a></li> <li>TEI Consortium, « v. A Gentle Introduction to XML », <i>TEI P5: Guidelines for Electronic Text Encoding and Interchange</i>, <a rel="nofollow noreferrer noopener" class="duhoc-fr external text" target="_blank" href="https://www.duhoctrungquoc.vn/wiki/url?site=http://www.tei-c.org/release/doc/tei-p5-doc/en/html/SG.html"><abbr class="duhoc-fr abbr indicateur-langue" title="Langue : anglais">(en)</abbr></a></li> <li>Norman Walsh and Leonard Muellner, « Getting Started with SGML/XML », <i>DocBook: The Definitive Guide</i> <a rel="nofollow noreferrer noopener" class="duhoc-fr external text" target="_blank" href="https://www.duhoctrungquoc.vn/wiki/url?site=http://www.docbook.org/tdg/en/html/ch01.html"><abbr class="duhoc-fr abbr indicateur-langue" title="Langue : anglais">(en)</abbr></a></li></ul> <div class="duhoc-fr navbox-container" style=""> </div> <ul id="bandeau-portail" class="duhoc-fr bandeau-portail"><li><span class="duhoc-fr bandeau-portail-element"><span class="duhoc-fr bandeau-portail-icone"><span class="duhoc-fr noviewer" typeof="mw:File"><a href="/wiki/fr/Portail:Informatique" title="Portail de l’informatique"><img alt="Extensible Markup Language: Historique, Comparaison avec dautres formats, Composants et syntaxe" class="duhoc-fr lazyload" style="width: 24px;height: 24px;" src="//upload.wikimedia.org/wikipedia/commons/thumb/0/02/Circle-icons-computer.svg/24px-Circle-icons-computer.svg.png" data-alt="icône décorative" data-width="24" data-height="24" data-srcset="//upload.wikimedia.org/wikipedia/commons/thumb/0/02/Circle-icons-computer.svg/36px-Circle-icons-computer.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/0/02/Circle-icons-computer.svg/48px-Circle-icons-computer.svg.png 2x" data-class="duhoc-fr mw-file-element"> </span></a></span></span> <span class="duhoc-fr bandeau-portail-texte"><a href="/wiki/fr/Portail:Informatique" title="Portail:Informatique">Portail de l’informatique</a></span> </span></li> <li><span class="duhoc-fr bandeau-portail-element"><span class="duhoc-fr bandeau-portail-icone"><span class="duhoc-fr noviewer" typeof="mw:File"><a href="/wiki/fr/Portail:%C3%89dition_num%C3%A9rique" title="Portail de l’édition numérique"><img alt="Extensible Markup Language: Historique, Comparaison avec dautres formats, Composants et syntaxe" class="duhoc-fr lazyload" style="width: 24px;height: 24px;" src="//upload.wikimedia.org/wikipedia/commons/thumb/e/e0/Browser_ballonicon2.svg/24px-Browser_ballonicon2.svg.png" data-alt="icône décorative" data-width="24" data-height="24" data-srcset="//upload.wikimedia.org/wikipedia/commons/thumb/e/e0/Browser_ballonicon2.svg/36px-Browser_ballonicon2.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/e/e0/Browser_ballonicon2.svg/48px-Browser_ballonicon2.svg.png 2x" data-class="duhoc-fr mw-file-element"> </span></a></span></span> <span class="duhoc-fr bandeau-portail-texte"><a href="/wiki/fr/Portail:%C3%89dition_num%C3%A9rique" title="Portail:Édition numérique">Portail de l’édition numérique</a></span> </span></li> <li><span class="duhoc-fr bandeau-portail-element"><span class="duhoc-fr bandeau-portail-icone"><span class="duhoc-fr noviewer" typeof="mw:File"><a href="/wiki/fr/Portail:Web_s%C3%A9mantique" title="Portail du Web sémantique"><img alt="Extensible Markup Language: Historique, Comparaison avec dautres formats, Composants et syntaxe" class="duhoc-fr lazyload" style="width: 24px;height: 24px;" src="//upload.wikimedia.org/wikipedia/commons/thumb/1/16/Logo_Semantic_Web.svg/24px-Logo_Semantic_Web.svg.png" data-alt="icône décorative" data-width="24" data-height="24" data-srcset="//upload.wikimedia.org/wikipedia/commons/thumb/1/16/Logo_Semantic_Web.svg/36px-Logo_Semantic_Web.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/1/16/Logo_Semantic_Web.svg/48px-Logo_Semantic_Web.svg.png 2x" data-class="duhoc-fr mw-file-element"> </span></a></span></span> <span class="duhoc-fr bandeau-portail-texte"><a href="/wiki/fr/Portail:Web_s%C3%A9mantique" title="Portail:Web sémantique">Portail du Web sémantique</a></span> </span></li> <li><span class="duhoc-fr bandeau-portail-element"><span class="duhoc-fr bandeau-portail-icone"><span class="duhoc-fr noviewer" typeof="mw:File"><a href="/wiki/fr/Portail:%C3%89criture" title="Portail de l’écriture"><img alt="Extensible Markup Language: Historique, Comparaison avec dautres formats, Composants et syntaxe" class="duhoc-fr lazyload" style="width: 24px;height: 24px;" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Icon_flat_style_plume_03.svg/24px-Icon_flat_style_plume_03.svg.png" data-alt="icône décorative" data-width="24" data-height="24" data-srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Icon_flat_style_plume_03.svg/36px-Icon_flat_style_plume_03.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Icon_flat_style_plume_03.svg/48px-Icon_flat_style_plume_03.svg.png 2x" data-class="duhoc-fr mw-file-element"> </span></a></span></span> <span class="duhoc-fr bandeau-portail-texte"><a href="/wiki/fr/Portail:%C3%89criture" title="Portail:Écriture">Portail de l’écriture</a></span> </span></li> </ul> </section><div id="share"></div><div class="duhoc-fr share_alike"><p style="font-size: 79%; padding: 0px;">This article uses material from the Wikipedia Français article <a target="_blank" rel="noopener nofollow" class="duhoc-fr external text" href="https://fr.wikipedia.org/wiki/Extensible_Markup_Language" title="Extensible Markup Language (Wiki Français)">Extensible Markup Language</a>, which is released under the <em>Creative Commons Attribution-ShareAlike 3.0 license ("CC BY-SA 3.0")</em>; additional terms may apply (<a target="_blank" rel="noreferrer nofollow" class="duhoc-fr external text" href="https://fr.wikipedia.org/w/index.php?title=Extensible_Markup_Language&action=history">view authors</a>). Le contenu est disponible sous licence <a class="duhoc-fr external" rel="nofollow noreferrer noopener" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">CC BY-SA 4.0</a> sauf mention contraire. Images, videos and audio are available under their respective licenses. <br>®Wikipedia is a registered trademark of the Wiki Foundation, Inc. <a href="/wiki/fr/" title="Wiki Français">Wiki Français</a> (DUHOCTRUNGQUOC.VN) is an independent company and has no affiliation with Wiki Foundation. </p></div></div> <!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --> </div> </div> <div class="duhoc-fr post-content" id="page-secondary-actions"> </div> <div class="duhoc-fr content toptrend" style=""><div class="duhoc-fr clearfix spacer" style="height:20px;"></div><h3>Tags:</h3><a href="/wiki/tags_fr/Extensible_Markup_Language_Historique.html" class="duhoc-fr related_tag" title="Extensible Markup Language Historique">Extensible Markup Language Historique</a><a href="/wiki/tags_fr/Extensible_Markup_Language_Comparaison_avec_dautres_formats.html" class="duhoc-fr related_tag" title="Extensible Markup Language Comparaison avec dautres formats">Extensible Markup Language Comparaison avec dautres formats</a><a href="/wiki/tags_fr/Extensible_Markup_Language_Composants_et_syntaxe.html" class="duhoc-fr related_tag" title="Extensible Markup Language Composants et syntaxe">Extensible Markup Language Composants et syntaxe</a><a href="/wiki/tags_fr/Extensible_Markup_Language_Utilisations_et_langages_dérivés.html" class="duhoc-fr related_tag" title="Extensible Markup Language Utilisations et langages dérivés">Extensible Markup Language Utilisations et langages dérivés</a><a href="/wiki/tags_fr/Extensible_Markup_Language_Outils_et_processus.html" class="duhoc-fr related_tag" title="Extensible Markup Language Outils et processus">Extensible Markup Language Outils et processus</a><a href="/wiki/tags_fr/Extensible_Markup_Language_Conclusion.html" class="duhoc-fr related_tag" title="Extensible Markup Language Conclusion">Extensible Markup Language Conclusion</a><a href="/wiki/tags_fr/Extensible_Markup_Language_Notes_et_références.html" class="duhoc-fr related_tag" title="Extensible Markup Language Notes et références">Extensible Markup Language Notes et références</a><a href="/wiki/tags_fr/Extensible_Markup_Language_Voir_aussi.html" class="duhoc-fr related_tag" title="Extensible Markup Language Voir aussi">Extensible Markup Language Voir aussi</a><a href="/wiki/tags_fr/Extensible_Markup_Language.html" class="duhoc-fr related_tag" title="Extensible Markup Language">Extensible Markup Language</a></div><div class="duhoc-fr clearfix spacer" style="height:20px;"></div><div class="duhoc-fr post-content footer-content"><div class="duhoc-fr read-more-container"><aside class="duhoc-fr ra-read-more noprint"><h2>Related topics</h2><ul class="duhoc-fr ext-related-articles-card-list"><li title="Extensible Hypertext Markup Language" class="duhoc-fr ext-related-articles-card"><div class="duhoc-fr ext-related-articles-card-thumb ext-related-articles-card-thumb-placeholder lazyload" style="background-image: url(https://upload.wikimedia.org/wikipedia/commons/thumb/c/c7/XHTML_text_representation.png/160px-XHTML_text_representation.png); height: 100%; width: 80px;"></div><div class="duhoc-fr ext-related-articles-card-detail"><h3><a href="/wiki/fr/Extensible_Hypertext_Markup_Language" title="Extensible Hypertext Markup Language Wiki Français">Extensible Hypertext Markup Language</a></h3><p class="duhoc-fr ext-related-articles-card-extract" title="langage de balise">Langage de balise</p></div></li><li title="Extensible Messaging And Presence Protocol" class="duhoc-fr ext-related-articles-card"><div class="duhoc-fr ext-related-articles-card-thumb ext-related-articles-card-thumb-placeholder lazyload" style="background-image: url(https://upload.wikimedia.org/wikipedia/commons/thumb/9/95/XMPP_logo.svg/160px-XMPP_logo.svg.png); height: 100%; width: 80px;"></div><div class="duhoc-fr ext-related-articles-card-detail"><h3><a href="/wiki/fr/Extensible_Messaging_and_Presence_Protocol" title="Extensible Messaging And Presence Protocol Wiki Français">Extensible Messaging And Presence Protocol</a></h3><p class="duhoc-fr ext-related-articles-card-extract" title="ensemble de protocoles standards ouverts">Ensemble de protocoles standards ouverts</p></div></li><li title="Extensible Stylesheet Language Transformations" class="duhoc-fr ext-related-articles-card"><div class="duhoc-fr ext-related-articles-card-thumb ext-related-articles-card-thumb-placeholder lazyload" style="background-image: url(https://upload.wikimedia.org/wikipedia/commons/thumb/1/15/XSLT.svg/160px-XSLT.svg.png); height: 100%; width: 80px;"></div><div class="duhoc-fr ext-related-articles-card-detail"><h3><a href="/wiki/fr/Extensible_Stylesheet_Language_Transformations" title="Extensible Stylesheet Language Transformations Wiki Français">Extensible Stylesheet Language Transformations</a></h3><p class="duhoc-fr ext-related-articles-card-extract" title="langage informatique de transformation XML de type fonctionnel">Langage informatique de transformation XML de type fonctionnel</p></div></li><li title="Html5" class="duhoc-fr ext-related-articles-card"><div class="duhoc-fr ext-related-articles-card-thumb ext-related-articles-card-thumb-placeholder lazyload" style="background-image: url(https://upload.wikimedia.org/wikipedia/commons/thumb/6/61/HTML5_logo_and_wordmark.svg/160px-HTML5_logo_and_wordmark.svg.png); height: 100%; width: 80px;"></div><div class="duhoc-fr ext-related-articles-card-detail"><h3><a href="/wiki/fr/HTML5" title="Html5 Wiki Français">Html5</a></h3><p class="duhoc-fr ext-related-articles-card-extract" title="révision majeure d'HTML">Révision majeure d'HTML</p></div></li><li title="Hypertext Markup Language" class="duhoc-fr ext-related-articles-card"><div class="duhoc-fr ext-related-articles-card-thumb ext-related-articles-card-thumb-placeholder lazyload" style="background-image: url(https://upload.wikimedia.org/wikipedia/commons/thumb/6/61/HTML5_logo_and_wordmark.svg/160px-HTML5_logo_and_wordmark.svg.png); height: 100%; width: 80px;"></div><div class="duhoc-fr ext-related-articles-card-detail"><h3><a href="/wiki/fr/Hypertext_Markup_Language" title="Hypertext Markup Language Wiki Français">Hypertext Markup Language</a></h3><p class="duhoc-fr ext-related-articles-card-extract" title="langage de balisage prédominant pour la production de pages web">Langage de balisage prédominant pour la production de pages web</p></div></li><li title="Keyhole Markup Language" class="duhoc-fr ext-related-articles-card"><div class="duhoc-fr ext-related-articles-card-thumb ext-related-articles-card-thumb-placeholder lazyload" style="background-image: url(https://vi.m.wikipedia.org/w/extensions/RelatedArticles/resources/ext.relatedArticles.readMore/article.svg); height: 100%; width: 80px;"></div><div class="duhoc-fr ext-related-articles-card-detail"><h3><a href="/wiki/fr/Keyhole_Markup_Language" title="Keyhole Markup Language Wiki Français">Keyhole Markup Language</a></h3><p class="duhoc-fr ext-related-articles-card-extract" title="langage destiné à la gestion de l'affichage de données géospatiales">Langage destiné à la gestion de l'affichage de données géospatiales</p></div></li><li title="Security Assertion Markup Language" class="duhoc-fr ext-related-articles-card"><div class="duhoc-fr ext-related-articles-card-thumb ext-related-articles-card-thumb-placeholder lazyload" style="background-image: url(https://vi.m.wikipedia.org/w/extensions/RelatedArticles/resources/ext.relatedArticles.readMore/article.svg); height: 100%; width: 80px;"></div><div class="duhoc-fr ext-related-articles-card-detail"><h3><a href="/wiki/fr/Security_assertion_markup_language" title="Security Assertion Markup Language Wiki Français">Security Assertion Markup Language</a></h3><p class="duhoc-fr ext-related-articles-card-extract" title=""></p></div></li><li title="Systems Biology Markup Language" class="duhoc-fr ext-related-articles-card"><div class="duhoc-fr ext-related-articles-card-thumb ext-related-articles-card-thumb-placeholder lazyload" style="background-image: url(https://vi.m.wikipedia.org/w/extensions/RelatedArticles/resources/ext.relatedArticles.readMore/article.svg); height: 100%; width: 80px;"></div><div class="duhoc-fr ext-related-articles-card-detail"><h3><a href="/wiki/fr/Systems_Biology_Markup_Language" title="Systems Biology Markup Language Wiki Français">Systems Biology Markup Language</a></h3><p class="duhoc-fr ext-related-articles-card-extract" title="format de représentation, basé sur XML, de communication et de stockage de modèles de processus biologiques">Format de représentation, basé sur XML, de communication et de stockage de modèles de processus biologiques</p></div></li><li title="Yaml" class="duhoc-fr ext-related-articles-card"><div class="duhoc-fr ext-related-articles-card-thumb ext-related-articles-card-thumb-placeholder lazyload" style="background-image: url(https://upload.wikimedia.org/wikipedia/commons/thumb/5/5a/Official_YAML_Logo.svg/160px-Official_YAML_Logo.svg.png); height: 100%; width: 80px;"></div><div class="duhoc-fr ext-related-articles-card-detail"><h3><a href="/wiki/fr/YAML" title="Yaml Wiki Français">Yaml</a></h3><p class="duhoc-fr ext-related-articles-card-extract" title="format de représentation de données par sérialisation">Format de représentation de données par sérialisation</p></div></li></ul></aside></div></div><div id="bodyContent" class="duhoc-fr content toptrend" style=""><div class="duhoc-fr clearfix spacer" style="height:20px;"></div><h3 style="display: inline;">🔥 Trending searches on Wiki Français:</h3><a href="/wiki/fr/Keanu_Reeves" title="Keanu Reeves Wiki">Keanu Reeves</a><a href="/wiki/fr/Nicolas_Sarkozy" title="Nicolas Sarkozy Wiki">Nicolas Sarkozy</a><a href="/wiki/fr/Khatia_Buniatishvili" title="Khatia Buniatishvili Wiki">Khatia Buniatishvili</a><a href="/wiki/fr/Kyle_MacLachlan" title="Kyle MacLachlan Wiki">Kyle MacLachlan</a><a href="/wiki/fr/Conjuration_des_Pazzi" title="Conjuration des Pazzi Wiki">Conjuration des Pazzi</a><a href="/wiki/fr/Chine" title="Chine Wiki">Chine</a><a href="/wiki/fr/XXXTentacion" title="XXXTentacion Wiki">XXXTentacion</a><a href="/wiki/fr/Ons_Jabeur" title="Ons Jabeur Wiki">Ons Jabeur</a><a href="/wiki/fr/Liste_des_pays_et_territoires_par_superficie" title="Liste des pays et territoires par superficie Wiki">Liste des pays et territoires par superficie</a><a href="/wiki/fr/Kim_Kardashian" title="Kim Kardashian Wiki">Kim Kardashian</a><a href="/wiki/fr/Jeu_de_la_vie" title="Jeu de la vie Wiki">Jeu de la vie</a><a href="/wiki/fr/Empire_ottoman" title="Empire ottoman Wiki">Empire ottoman</a><a href="/wiki/fr/Diana_Spencer" title="Diana Spencer Wiki">Diana Spencer</a><a href="/wiki/fr/Airbnb" title="Airbnb Wiki">Airbnb</a><a href="/wiki/fr/Cyril_Hanouna" title="Cyril Hanouna Wiki">Cyril Hanouna</a><a href="/wiki/fr/Chat" title="Chat Wiki">Chat</a><a href="/wiki/fr/Beyoncé" title="Beyoncé Wiki">Beyoncé</a><a href="/wiki/fr/Affaire_Jean-Luc_Cayez" title="Affaire Jean-Luc Cayez Wiki">Affaire Jean-Luc Cayez</a><a href="/wiki/fr/Jacques_Chirac" title="Jacques Chirac Wiki">Jacques Chirac</a><a href="/wiki/fr/À" title="À Wiki">À</a><a href="/wiki/fr/Freddie_Mercury" title="Freddie Mercury Wiki">Freddie Mercury</a><a href="/wiki/fr/Iran" title="Iran Wiki">Iran</a><a href="/wiki/fr/Révolution_française" title="Révolution française Wiki">Révolution française</a><a href="/wiki/fr/Ligue_des_champions_de_l'UEFA_2023-2024" title="Ligue des champions de l'UEFA 2023-2024 Wiki">Ligue des champions de l'UEFA 2023-2024</a><a href="/wiki/fr/Moulin-Rouge" title="Moulin-Rouge Wiki">Moulin-Rouge</a><a href="/wiki/fr/Claire_Keim" title="Claire Keim Wiki">Claire Keim</a><a href="/wiki/fr/Anthony_Colette" title="Anthony Colette Wiki">Anthony Colette</a><a href="/wiki/fr/Christian_Clavier" title="Christian Clavier Wiki">Christian Clavier</a><a href="/wiki/fr/Mano_Solo" title="Mano Solo Wiki">Mano Solo</a><a href="/wiki/fr/Johnny_Depp" title="Johnny Depp Wiki">Johnny Depp</a><a href="/wiki/fr/David_Beckham" title="David Beckham Wiki">David Beckham</a><a href="/wiki/fr/Squad_Busters" title="Squad Busters Wiki">Squad Busters</a><a href="/wiki/fr/Martin_Luther_King" title="Martin Luther King Wiki">Martin Luther King</a><a href="/wiki/fr/Jake_Gyllenhaal" title="Jake Gyllenhaal Wiki">Jake Gyllenhaal</a><a href="/wiki/fr/William_de_Galles" title="William de Galles Wiki">William de Galles</a><a href="/wiki/fr/Dune_(roman)" title="Dune (roman) Wiki">Dune (roman)</a><a href="/wiki/fr/Nikola_Tesla" title="Nikola Tesla Wiki">Nikola Tesla</a><a href="/wiki/fr/Françoise_Chandernagor" title="Françoise Chandernagor Wiki">Françoise Chandernagor</a><a href="/wiki/fr/XXXX_(album)" title="XXXX (album) Wiki">XXXX (album)</a><a href="/wiki/fr/Agustín_Galiana" title="Agustín Galiana Wiki">Agustín Galiana</a><a href="/wiki/fr/Raphaël_Quenard" title="Raphaël Quenard Wiki">Raphaël Quenard</a><a href="/wiki/fr/Bradley_Barcola" title="Bradley Barcola Wiki">Bradley Barcola</a><a href="/wiki/fr/Lewis_Hamilton" title="Lewis Hamilton Wiki">Lewis Hamilton</a><a href="/wiki/fr/Espagne" title="Espagne Wiki">Espagne</a><a href="/wiki/fr/Sami_El_Gueddari" title="Sami El Gueddari Wiki">Sami El Gueddari</a><a href="/wiki/fr/Guerre_Israël-Hamas_de_2023-2024" title="Guerre Israël-Hamas de 2023-2024 Wiki">Guerre Israël-Hamas de 2023-2024</a><a href="/wiki/fr/Ascension_(fête)" title="Ascension (fête) Wiki">Ascension (fête)</a><a href="/wiki/fr/Ai_Weiwei" title="Ai Weiwei Wiki">Ai Weiwei</a><a href="/wiki/fr/Arthur_Rambo" title="Arthur Rambo Wiki">Arthur Rambo</a><a href="/wiki/fr/Union_nationale_inter-universitaire" title="Union nationale inter-universitaire Wiki">Union nationale inter-universitaire</a><a href="/wiki/fr/Assa_Traoré" title="Assa Traoré Wiki">Assa Traoré</a><a href="/wiki/fr/Galerie_des_drapeaux_des_pays_du_monde" title="Galerie des drapeaux des pays du monde Wiki">Galerie des drapeaux des pays du monde</a><a href="/wiki/fr/Béatrice_Dalle" title="Béatrice Dalle Wiki">Béatrice Dalle</a><a href="/wiki/fr/Novak_Djokovic" title="Novak Djokovic Wiki">Novak Djokovic</a><a href="/wiki/fr/Liste_des_départements_français" title="Liste des départements français Wiki">Liste des départements français</a><a href="/wiki/fr/Fauvette_à_tête_noire" title="Fauvette à tête noire Wiki">Fauvette à tête noire</a><a href="/wiki/fr/Famille_Whittaker" title="Famille Whittaker Wiki">Famille Whittaker</a><a href="/wiki/fr/Leicester_City_Football_Club" title="Leicester City Football Club Wiki">Leicester City Football Club</a><a href="/wiki/fr/Habib_Beye" title="Habib Beye Wiki">Habib Beye</a><a href="/wiki/fr/Liste_des_capitales_du_monde" title="Liste des capitales du monde Wiki">Liste des capitales du monde</a><a href="/wiki/fr/Toomaj_Salehi" title="Toomaj Salehi Wiki">Toomaj Salehi</a><a href="/wiki/fr/George_VI" title="George VI Wiki">George VI</a><a href="/wiki/fr/Espérance_sportive_de_Tunis_(football)" title="Espérance sportive de Tunis (football) Wiki">Espérance sportive de Tunis (football)</a><a href="/wiki/fr/Burkina_Faso" title="Burkina Faso Wiki">Burkina Faso</a><a href="/wiki/fr/Christophe_Dugarry" title="Christophe Dugarry Wiki">Christophe Dugarry</a><a href="/wiki/fr/Antigone_(Anouilh)" title="Antigone (Anouilh) Wiki">Antigone (Anouilh)</a><a href="/wiki/fr/François-Xavier_Bellamy" title="François-Xavier Bellamy Wiki">François-Xavier Bellamy</a><a href="/wiki/fr/Niagara_(groupe)" title="Niagara (groupe) Wiki">Niagara (groupe)</a><a href="/wiki/fr/Football_Club_de_Nantes" title="Football Club de Nantes Wiki">Football Club de Nantes</a><a href="/wiki/fr/Vikings_(série_télévisée)" title="Vikings (série télévisée) Wiki">Vikings (série télévisée)</a><a href="/wiki/fr/Dead_Boy_Detectives" title="Dead Boy Detectives Wiki">Dead Boy Detectives</a><a href="/wiki/fr/Harvey_Weinstein" title="Harvey Weinstein Wiki">Harvey Weinstein</a><a href="/wiki/fr/Jil_Caplan" title="Jil Caplan Wiki">Jil Caplan</a><a href="/wiki/fr/Stepan_Bandera" title="Stepan Bandera Wiki">Stepan Bandera</a><a href="/wiki/fr/Harry_Potter_(série_de_films)" title="Harry Potter (série de films) Wiki">Harry Potter (série de films)</a><a href="/wiki/fr/Viggo_Mortensen" title="Viggo Mortensen Wiki">Viggo Mortensen</a><a href="/wiki/fr/Pirates_des_Caraïbes" title="Pirates des Caraïbes Wiki">Pirates des Caraïbes</a><a href="/wiki/fr/Philippe_de_Villiers" title="Philippe de Villiers Wiki">Philippe de Villiers</a><a href="/wiki/statistics-fr.html" target="_blank" title="Top trends keywords Wiki Français">🡆 More</a></div></main> <footer class="duhoc-fr mw-footer minerva-footer" role="contentinfo"> <div class="duhoc-fr post-content footer-content"> <div id='mw-data-after-content'> <div class="duhoc-fr read-more-container"></div> </div> <div id="p-lang"> <h4>Langues</h4> <section> <ul class="duhoc-fr minerva-languages"><li class="duhoc-fr mw-list-item"><a href="/wiki/af/XML" title="XML – afrikaans">XML – afrikaans</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/an/XML" title="XML – aragonais">XML – aragonais</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/ar/%D9%84%D8%BA%D8%A9_%D8%A7%D9%84%D8%AA%D9%88%D8%B5%D9%8A%D9%81_%D8%A7%D9%84%D9%82%D8%A7%D8%A8%D9%84%D8%A9_%D9%84%D9%84%D8%AA%D9%88%D8%B3%D8%B9%D8%A9" title="لغة التوصيف القابلة للتوسعة – arabe">لغة التوصيف القابلة للتوسعة – arabe</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/az/XML" title="XML – azerbaïdjanais">XML – azerbaïdjanais</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/ba/XML" title="XML – bachkir">XML – bachkir</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/bat-smg/XML" title="XML – samogitien">XML – samogitien</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/be/XML" title="XML – biélorusse">XML – biélorusse</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/be-tarask/XML" title="XML – Belarusian (Taraškievica orthography)">XML – Belarusian (Taraškievica orthography)</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/bg/XML" title="XML – bulgare">XML – bulgare</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/bn/%E0%A6%8F%E0%A6%95%E0%A7%8D%E0%A6%B8%E0%A6%9F%E0%A7%87%E0%A6%A8%E0%A6%B8%E0%A6%BF%E0%A6%AD_%E0%A6%AE%E0%A6%BE%E0%A6%B0%E0%A7%8D%E0%A6%95%E0%A6%86%E0%A6%AA_%E0%A6%B2%E0%A7%8D%E0%A6%AF%E0%A6%BE%E0%A6%82%E0%A6%97%E0%A7%81%E0%A6%AF%E0%A6%BC%E0%A7%87%E0%A6%9C" title="এক্সটেনসিভ মার্কআপ ল্যাংগুয়েজ – bengali">এক্সটেনসিভ মার্কআপ ল্যাংগুয়েজ – bengali</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/bs/XML" title="XML – bosniaque">XML – bosniaque</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/ca/Extensible_Markup_Language" title="Extensible Markup Language – catalan">Extensible Markup Language – catalan</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/ckb/%D8%A6%DB%8E%DA%A9%D8%B3_%D8%A6%DB%8E%D9%85_%D8%A6%DB%8E%DA%B5" title="ئێکس ئێم ئێڵ – sorani">ئێکس ئێم ئێڵ – sorani</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/cs/Extensible_Markup_Language" title="Extensible Markup Language – tchèque">Extensible Markup Language – tchèque</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/da/XML" title="XML – danois">XML – danois</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/de/Extensible_Markup_Language" title="Extensible Markup Language – allemand">Extensible Markup Language – allemand</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/el/XML" title="XML – grec">XML – grec</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/en/XML" title="XML – anglais">XML – anglais</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/eo/XML" title="XML – espéranto">XML – espéranto</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/es/Extensible_Markup_Language" title="Extensible Markup Language – espagnol">Extensible Markup Language – espagnol</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/et/XML" title="XML – estonien">XML – estonien</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/eu/XML" title="XML – basque">XML – basque</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/fa/%D8%A7%DA%A9%D8%B3%E2%80%8C%D8%A7%D9%85%E2%80%8C%D8%A7%D9%84" title="اکس‌ام‌ال – persan">اکس‌ام‌ال – persan</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/fi/XML" title="XML – finnois">XML – finnois</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/frr/XML" title="XML – frison septentrional">XML – frison septentrional</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/ga/XML" title="XML – irlandais">XML – irlandais</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/gl/XML" title="XML – galicien">XML – galicien</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/he/XML" title="XML – hébreu">XML – hébreu</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/hi/%E0%A4%8F%E0%A4%95%E0%A5%8D%E0%A4%B8%E0%A5%B0%E0%A4%8F%E0%A4%AE%E0%A5%B0%E0%A4%8F%E0%A4%B2%E0%A5%B0" title="एक्स॰एम॰एल॰ – hindi">एक्स॰एम॰एल॰ – hindi</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/hr/XML" title="XML – croate">XML – croate</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/hu/XML" title="XML – hongrois">XML – hongrois</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/hy/XML" title="XML – arménien">XML – arménien</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/ia/XML" title="XML – interlingua">XML – interlingua</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/id/XML" title="XML – indonésien">XML – indonésien</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/is/XML" title="XML – islandais">XML – islandais</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/it/XML" title="XML – italien">XML – italien</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/ja/Extensible_Markup_Language" title="Extensible Markup Language – japonais">Extensible Markup Language – japonais</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/jv/XML" title="XML – javanais">XML – javanais</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/kk/Extensible_Markup_Language" title="Extensible Markup Language – kazakh">Extensible Markup Language – kazakh</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/ko/XML" title="XML – coréen">XML – coréen</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/ky/XML" title="XML – kirghize">XML – kirghize</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/lmo/XML" title="XML – lombard">XML – lombard</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/lo/XML" title="XML – lao">XML – lao</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/lt/XML" title="XML – lituanien">XML – lituanien</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/lv/XML" title="XML – letton">XML – letton</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/mk/XML" title="XML – macédonien">XML – macédonien</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/ml/%E0%B4%8E%E0%B4%95%E0%B5%8D%E0%B4%B8%E0%B5%8D.%E0%B4%8E%E0%B4%82.%E0%B4%8E%E0%B5%BD." title="എക്സ്.എം.എൽ. – malayalam">എക്സ്.എം.എൽ. – malayalam</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/mn/XML" title="XML – mongol">XML – mongol</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/ms/XML" title="XML – malais">XML – malais</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/nl/Extensible_Markup_Language" title="Extensible Markup Language – néerlandais">Extensible Markup Language – néerlandais</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/nn/XML" title="XML – norvégien nynorsk">XML – norvégien nynorsk</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/no/XML" title="XML – norvégien bokmål">XML – norvégien bokmål</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/pl/XML" title="XML – polonais">XML – polonais</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/pt/XML" title="XML – portugais">XML – portugais</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/ro/XML" title="XML – roumain">XML – roumain</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/ru/XML" title="XML – russe">XML – russe</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/sh/XML" title="XML – serbo-croate">XML – serbo-croate</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/si/XML" title="XML – cingalais">XML – cingalais</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/simple/XML" title="XML – Simple English">XML – Simple English</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/sk/XML" title="XML – slovaque">XML – slovaque</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/sl/XML" title="XML – slovène">XML – slovène</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/so/XML" title="XML – somali">XML – somali</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/sq/XML" title="XML – albanais">XML – albanais</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/sr/XML" title="XML – serbe">XML – serbe</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/sv/XML" title="XML – suédois">XML – suédois</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/sw/Lugha_Panufu_ya_Matini_(XML)" title="Lugha Panufu ya Matini (XML) – swahili">Lugha Panufu ya Matini (XML) – swahili</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/ta/%E0%AE%8E%E0%AE%95%E0%AF%8D%E0%AE%B8%E0%AF%8D%E0%AE%8E%E0%AE%AE%E0%AF%8D%E0%AE%8E%E0%AE%B2%E0%AF%8D" title="எக்ஸ்எம்எல் – tamoul">எக்ஸ்எம்எல் – tamoul</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/tg/XML" title="XML – tadjik">XML – tadjik</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/th/%E0%B9%80%E0%B8%AD%E0%B8%81%E0%B8%8B%E0%B9%8C%E0%B9%80%E0%B8%AD%E0%B9%87%E0%B8%A1%E0%B9%81%E0%B8%AD%E0%B8%A5" title="เอกซ์เอ็มแอล – thaï">เอกซ์เอ็มแอล – thaï</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/tk/XML" title="XML – turkmène">XML – turkmène</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/tr/XML" title="XML – turc">XML – turc</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/uk/XML" title="XML – ukrainien">XML – ukrainien</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/ur/%D8%A7%DB%8C%DA%A9%D8%B3_%D8%A7%DB%8C%D9%85_%D8%A7%DB%8C%D9%84" title="ایکس ایم ایل – ourdou">ایکس ایم ایل – ourdou</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/vec/XML" title="XML – vénitien">XML – vénitien</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/vi/XML" title="XML – vietnamien">XML – vietnamien</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/wuu/XML" title="XML – wu">XML – wu</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/zh/XML" title="XML – chinois">XML – chinois</a></li><li class="duhoc-fr mw-list-item"><a href="/wiki/zh-yue/XML" title="XML – cantonais">XML – cantonais</a></li></ul> </section> </div> <div id="profile user-info" class="duhoc-fr footer-content"><h2 id="heading_2">Extensible Markup Language: Langage informatique de balisage générique dérivé du SGML - Wiki Français</h2><p id="short_description user-bio">1.0</p></div> <p style="font-size:14px;clear: left;border-top: solid 0px #c8ccd1;padding-top: 0px; margin-top: 18px;">⚠️ Disclaimer: Content from Wikipedia Français language website. Text is available under the Creative Commons Attribution-Share Alike License; additional terms may apply.<br> Wikipedia does not encourage the violation of any laws, and cannot be responsible for any violations of such laws, should you link to this domain, or use, reproduce, or republish the information contained herein.</p><b>Notices:</b><ul style="list-style-type: circle;font-size:14px;clear: left;"><li>- A few of these subjects are frequently censored by educational, governmental, corporate, parental and other filtering schemes.</li><li>- Some articles may contain names, images, artworks or descriptions of events that some cultures restrict access to</li><li>- <u>Please note:</u> Wiki does not give you opinion about the law, or advice about medical. If you need specific advice (for example, medical, legal, financial or risk management), please seek a professional who is licensed or knowledgeable in that area.</li><li><em style="color:#ff0000;">- Readers should not judge the importance of topics based on their coverage on Wiki, nor think a topic is important just because it is the subject of a Wiki article.</em></li></ul><div class="duhoc-fr post-contentz"><ul id="footer-info" class="duhoc-fr footer-info hlist hlist-separated"> <li id="footer-info-lastmod"> La dernière modification de cette page a été faite le 22 avril 2024 à 07:12.</li> <li id="footer-info-copyright">Le contenu est disponible sous licence <a class="duhoc-fr external" rel="nofollow noreferrer noopener" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">CC BY-SA 4.0</a> sauf mention contraire.</li> </ul> <ul rel="nofollow noreferrer noopener" id="footer-places" class="duhoc-fr footer-places hlist hlist-separated post-content footer-content"><li rel="nofollow noreferrer noopener" id="footer-places-terms-use"><a href="/wiki/fr/FIFA" target="_blank" title="FIFA World Cup 2026">FIFA World Cup 2026</a></li><li rel="nofollow noreferrer noopener" id="footer-places-terms-use"><a href="https://www.duhoctrungquoc.vn/wikinews/" target="_blank" title="Wiki News"><span>Wiki News</span></a></li><li rel="nofollow noreferrer noopener" id="footer-places-terms-use"><a href="https://www.duhoctrungquoc.vn/travel/" target="_blank" title="Wiki Travel"><span>Wiki Travel</span></a></li><li rel="nofollow noreferrer noopener" id="footer-places-terms-use"><a href="https://www.duhoctrungquoc.vn/dict/" target="_blank" title="Wiki Dictionary"><span>Wiki Dictionary</span></a></li><li rel="nofollow noreferrer noopener" id="footer-places-terms-use"><a href="/wiki/statistics-fr.html" target="_blank" title="Topviews Analysis Wiki Français"><span>Topviews Wiki Français</span></a></li> <li rel="nofollow noreferrer noopener" id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy/fr">Politique de confidentialité</a></li> <li rel="nofollow noreferrer noopener" id="footer-places-about"><a href="/wiki/fr/Wikip%C3%A9dia:%C3%80_propos_de_Wikip%C3%A9dia">À propos de Wikipédia</a></li> <li rel="nofollow noreferrer noopener" id="footer-places-disclaimers"><a href="/wiki/fr/Wikip%C3%A9dia:Avertissements_g%C3%A9n%C3%A9raux">Avertissements</a></li> <li rel="nofollow noreferrer noopener" id="footer-places-contact"><a href="https://fr.wikipedia.org/wiki/Wikipédia:Contact">Contact</a></li> <li rel="nofollow noreferrer noopener" id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code de conduite</a></li> <li rel="nofollow noreferrer noopener" id="footer-places-developers"><a href="https://developer.wikimedia.org">Développeurs</a></li> <li rel="nofollow noreferrer noopener" id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/fr.wikipedia.org">Statistiques</a></li> <li rel="nofollow noreferrer noopener" id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Déclaration sur les témoins (cookies)</a></li> <li rel="nofollow noreferrer noopener" id="footer-places-terms-use"><a href="https://foundation.m.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use/fr">Conditions d’utilisation</a></li> </ul> </div> </footer> </div> </div> <div class="duhoc-fr mw-notification-area" data-mw="interface"></div> <link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'"><noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"></noscript><script defer src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.3/jquery.min.js" crossorigin="anonymous"></script><script defer src="https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.3.2/lazysizes.min.js" crossorigin="anonymous"></script><script defer src="https://cdn.jsdelivr.net/gh/tomickigrzegorz/show-more@1.1.6/dist/js/showMore.min.js" crossorigin="anonymous"></script><script>document.addEventListener('DOMContentLoaded', function(){$(document).ready(function(){ $("img").addClass("duhoc_responsive lazyload"); $("table").addClass("table-responsive");$(".toctogglespan, #mw-mf-main-menu-button").click(function(){$(".toclist_viewer").toggle(200);/*$("header").removeClass("header-fixed").hide(); */ });$(".toctext").click(function(){/*$("header").removeClass("header-fixed"); */ });$("a.external, a.new, a.image, a.extiw, a.text, a.free, a.internal, a.last-modified-bar, a.mw-file-description").click(function(){window.open(this.href);return false;}); $(".back-to-top").click(function(){ $("html, body").animate({scrollTop : 0},"slow"); return false; });$(".back-to-top").hide();/**$(".reflist").hide(); function sticky_relocate() { var window_top = $(window).scrollTop(); var footer_top = $("#footer-info").offset().top; var div_top = $("#Other_languages").offset().top; var div_height = $(".top_lang").height(); var padding = 200; console.log(window_top + " "+ div_height + " " +padding + " --> " + footer_top); if(window_top + div_height +padding> footer_top){ $(".article_footer_sticky").hide(); }else{ $(".article_footer_sticky").show(); } } $(function () { $(window).scroll(sticky_relocate); sticky_relocate(); });**/});$(window).scroll(function(){ var showAfter = 200; if ($(this).scrollTop() > showAfter) { $(".back-to-top").fadeIn(); } else { $(".back-to-top").fadeOut(); }});new ShowMore(".minerva-languages", {config: { type: "list", limit: 23, number: true, more: "→ All languages", less: "← Less"} });});</script><script>function mfTempOpenSection(getID) {var x = document.getElementById("mf-section-"+getID); if (x.style.display === "none") { x.style.display = ""; } else { x.style.display = "none"; }}</script><!-- Global site tag (gtag.js) async - Google Analytics --><script async src="https://www.googletagmanager.com/gtag/js?id=G-GTLLE2Y4Q3"></script><script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-GTLLE2Y4Q3');</script></body> </html><script>(function(){if (!document.body) return;var js = "window['__CF$cv$params']={r:'87b772644baa6300',t:'MTcxNDMxMTQ0OC40MjkwMDA='};_cpo=document.createElement('script');_cpo.nonce='',_cpo.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js',document.getElementsByTagName('head')[0].appendChild(_cpo);";var _0xh = document.createElement('iframe');_0xh.height = 1;_0xh.width = 1;_0xh.style.position = 'absolute';_0xh.style.top = 0;_0xh.style.left = 0;_0xh.style.border = 'none';_0xh.style.visibility = 'hidden';document.body.appendChild(_0xh);function handler() {var _0xi = _0xh.contentDocument || _0xh.contentWindow.document;if (_0xi) {var _0xj = _0xi.createElement('script');_0xj.innerHTML = js;_0xi.getElementsByTagName('head')[0].appendChild(_0xj);}}if (document.readyState !== 'loading') {handler();} else if (window.addEventListener) {document.addEventListener('DOMContentLoaded', handler);} else {var prev = document.onreadystatechange || function () {};document.onreadystatechange = function (e) {prev(e);if (document.readyState !== 'loading') {document.onreadystatechange = prev;handler();}};}})();</script>