XML

ÔĽŅ
XML

Extensible Markup Language

Extensible Markup Language

Extension de fichier

.xml

Type MIME

application/xml, text/xml

Développé par

World Wide Web Consortium

Type de format

Langage de balisage

Standard(s)

1.0 (5e édition)

1.1 (2e édition)

Spécification

Format ouvert

XML (Extensible Markup Language (en)[note 1] ¬ę langage extensible de balisage ¬Ľ) est un langage informatique de balisage g√©n√©rique. Il sert essentiellement √† stocker/transf√©rer des donn√©es de type texte Unicode structur√©es en champs arborescents. Ce langage est qualifi√© d'extensible car il permet √† l'utilisateur de d√©finir les balises des √©l√©ments.[note 2] L'utilisateur peut multiplier les espaces de nommage des balises et emprunter les d√©finitions d'autres utilisateurs.[1],[note 3]

Le World Wide Web Consortium (W3C), promoteur de standards favorisant l'échange d'informations sur Internet, recommande la syntaxe XML pour exprimer des langages de balisages spécifiques.

De nombreux langages respectent la syntaxe XML : SVG pour des donn√©es de graphique vectoris√©, XHTML pour des donn√©es de page web, RSS pour des donn√©es de syndication de contenu, XSLT pour des donn√©es de transformation d'un document XML, etc. Cette syntaxe est reconnaissable par son usage des chevrons (< >) pour les balises d'√©l√©ments et de la cha√ģne <!-- --> pour les commentaires du code.

L'objectif initial est de faciliter l'√©change automatis√© de contenus entre syst√®mes d'informations h√©t√©rog√®nes (interop√©rabilit√©). XML est une simplification du Standard Generalized Markup Language (SGML) dont il retient les principes essentiels comme :

  • la structure d'un document XML est d√©finissable et validable par un sch√©ma,
  • un document XML est enti√®rement transformable dans un autre document XML.

Sommaire

Historique

Dan Connolly ajoute le Standard Generalized Markup Language √† la liste des activit√©s du World Wide Web Consortium quand il y rentre en 1995. Les travaux d√©butent √† la mi-1996 lorsque l'ing√©nieur Jon Bosak de Sun Microsystems √©labore une charte et recrute des collaborateurs. Bosak se fait conna√ģtre dans la petite communaut√© de personnes qui avaient de l'exp√©rience √† la fois dans le SGML et dans le Web.

XML est compil√© par un groupe de travail de onze membres[note 4], soutenu par environ 150 membres de divers groupes d'int√©r√™t. Le d√©bat technique a eu lieu sur la liste commune et les questions ont √©t√© r√©solues par consensus ou, lorsque cela a √©chou√©, √† la majorit√© des voix du groupe de travail. Un compte rendu des d√©cisions de conception et de leurs justifications ont √©t√© compil√©es par Michael Sperberg-McQueen de Chicago, le 4 D√©cembre, 1997[2]. James Clark servit comme responsable technique du groupe de travail, notamment en contribuant √† l'√©l√©ment vide " <empty/> " et au nom " XML ". Les co-r√©dacteurs du cahier des charges √©taient √† l'origine Tim Bray, qui a notamment conduit l'informatisation du Oxford English Dictionary, et Michael Sperberg-McQueen, 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[3].

Le groupe de travail XML ne s'est jamais rencontr√© face-√†-face, la conception a √©t√© r√©alis√©e en utilisant courrier √©lectronique et 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√©[4]. D'autres travaux de conception sont poursuivis jusqu'en 1997, puis le XML 1.0 est devenu une recommandation W3C le 10 f√©vrier 1998.

Objectif initial

L'objectif initial de XML est expliqu√© au d√©but de la sp√©cification du 10 f√©vrier 1998, la phrase est toujours d'actualit√© : ¬ę Son but est de permettre √† du 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. ¬Ľ(fr)[5]. 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 : ¬ę XML has been designed for ease of implementation ¬Ľ(en), ¬ę XML a √©t√© con√ßu pour une facilit√© de mise en Ňďuvre ¬Ľ(fr).

Tim Bray, dans son Annotated XML Specification (en) ¬ę la sp√©cification XML annot√©e ¬Ľ, explique plus longuement le contexte qui a rendu possible ce standard, en mentionnant notamment les contributions d√©cisives de James Clark. √Ä 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√©. Plusieurs choix ont contribu√© √† ce succ√®s.

  • Unicode - Par d√©faut, SGML √©tait en ASCII (alphabet latin sans lettre accentu√©e). Il apportait un syst√®me d'encodage pour les autres signes, les entit√©s caract√®res que l'on trouve encore parfois en HTML (exemple : &eacute; pour √©). En 1996, appara√ģt la version 2.0 d'Unicode, XML adoptera cet encodage par d√©faut.
  • D√©limitation explicite du contenu - SGML √©tait orient√© pour la saisie humaine de textes structur√©s, sur des machines moins puissantes qu'aujourd'hui. Il autorisait beaucoup de raccourcis. HTML conserve par exemple les balises √† fermeture optionnelle (exemple : <li>). Ces possibilit√©s compliquaient l'impl√©mentation de la norme. En XML, toute balise ouverte doit √™tre ferm√©e.
  • Espace de noms - SGML insistait surtout sur la validation, sur la conformit√© √† un mod√®le contraignant. XML pr√©voyait 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.

Au-delà de HTML, le W3C avait d'autres projets pour lesquels une syntaxe plus facilement extensible était nécessaire. Ces directions ont annoncé une très grande plasticité de XML pour de nombreux usages. SGML était une technologie de niche, sa simplification l'a universalisé avec Internet. Il pénètre désormais la plupart des secteurs de l'informatique. Mais avant de détailler ces utilisations, il peut être utile de préciser un peu ce que c'est.

Versions

La version 1.0 d'XML a √©t√© publi√©e le 10 f√©vrier 1998.

La version 1.1 publi√©e le 4 f√©vrier 2004 apporte des am√©liorations dans le support des diff√©rentes versions d'Unicode.

Le W3C recommande aux processeurs XML de reconna√ģtre les deux versions, bien que la premi√®re version soit beaucoup plus r√©pandue que la seconde.

Comparaison à d'autres formats

Pour savoir à quoi ressemble du XML, le mieux est certainement d'en voir. Commençons par un exemple simplifié. Il propose une transposition du début de cet article dans un langage XML appliqué à la documentation technique, DocBook.

 
  <!-- Un petit document XML, utilisant les définitions de Docbook. Note : ceci est un commentaire. -->
  <article xmlns="http://docbook.org/ns/docbook">  <!-- l'information contenue entre les balises 'article' est un article
                                                            utilisant l'espace de nom défini sur http://docbook.org/ns/docbook -->
    <title>Extensible Markup Language</title>      <!-- l'information contenue entre les balises 'title' est un titre-->
    <para>                                         <!-- l'information contenue entre les balises 'para' est un paragraphe -->
      <acronym><!-- l'information contenue entre les balises 'acronym' est un acronyme -->XML</acronym> (Extensible Markup Language, 
      ¬ę langage de balisage extensible ¬Ľ)...
    </para>
  </article>

Dans ce code, chacun peut identifier des portions de texte (exemple : Extensible, XML‚Ķ) et des mots cl√©s encadr√©s de chevrons (<, >) : <article>, <title>, <para>‚Ķ Ce document est ouvert par le mot cl√© <article>, et clos par </article>. Notez la barre oblique, elle signifie la fermeture de la balise article. En XML, une balise doit toujours √™tre ferm√©e. √Ä l'int√©rieur de cet article, il y a un titre (<title/>), un paragraphe (<para/>), et un acronyme (<acronym/>).

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 XHTML, l'√©l√©ment racine aurait √©t√© <html>, en XSLT, cela peut √™tre <xsl:stylesheet> ou <xsl:transform>. Ceci illustre la nature extensible d'XML. Ce n'est pas un jeu de noms r√©serv√©s (exemple : echo, for, public, function, class‚Ķ), mais plut√īt des caract√®res r√©serv√©s permettant de d√©finir un ¬ę langage ¬Ľ.

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 lui souhaite (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. Pour s'en convaincre, regardons ce que la même information donne dans d'autres formats.

Formats binaires (un exemple Microsoft Word)

Les logiciels, surtout pour le grand public, aboutissent g√©n√©ralement √† des fichiers. Le format se soucie d'abord d'√™tre fiable et performant, mais est-il √©changeable ? Le format d'enregistrement natif du traitement de texte Word est l'exemple du format binaire le plus d√©ploy√©[r√©f. n√©cessaire]. Il n'est pas lisible par l'humain. Le texte est difficile √† extraire, le lien avec sa structuration (gras, italique‚Ķ) est difficile √† reconstruire. Dans la pratique, un document Word pose beaucoup de probl√®mes de conservation sur le long terme.

 √ź√Ź √†¬°¬Ī √°    >   √ĺ√Ņ !  #       √ĺ√Ņ√Ņ√Ņ  √Ņ√Ņ%    √į ¬Ņ      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       
 √Ņ
 [… beaucoup d'informations binaires supprimées ]
 √Ņ
 √Ņ√Ņ√Ņ√Ņ 	   √Ä  F    Document Microsoft Word  MSWordDoc     Word.Document.8 √ī9¬≤q

L'éditeur, Microsoft, propose désormais un format d'enregistrement en XML.

RTF (Rich Text Format)

Afin de favoriser l'√©change avec d'autres traitements de texte, Microsoft proposa RTF Rich Text Format ¬ę format texte riche ¬Ľ (1987). 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.

 {\rtf
 {\f2\fs36\b Extensible Markup Language}\par
 {\b XML} (Extensible Markup Language, 
 ¬ę langage de balisage extensible ¬Ľ)...
 \par
 }

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, bold : \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 croissante complexit√© nous instruit sur ses limites. Il est difficilement extensible, et en tous cas, inutilisable pour structurer la s√©mantique d'un texte.

TEX

Donald Knuth, auteur de The Art of Computer Programming ¬ę l'Art de la programmation ¬Ľ s'est interrompu en 1977, exc√©d√© par la mauvaise qualit√© d'impression de ses ouvrages. Il d√©veloppa TEX, une syntaxe tr√®s √©labor√©e destin√©e √† l'√©criture humaine, sp√©cialement puissante pour les √©quations math√©matiques. On remarquera que RTF lui a repris ses s√©parateurs (\, {, }), mais pas son syst√®me de macros pour factoriser les commandes.

  \documentclass[a4paper, 11pt]{article}
  \title{Extensible Markup Language}
  \begin{document}
    \maketitle
  \end{document}

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 dédié à la mise en forme, davantage conçu pour l'apparence des documents que pour stocker/transférer des données.

wiki

Une syntaxe wiki sait aussi séparer le contenu de la présentation.

  =={{lang|en|Extensible Markup Language}}==

  '''XML''' ({{lang|en|Extensible Markup Language}}, 
  ¬ę langage de balisage extensible ¬Ľ)‚Ķ

Cependant, cette structuration repose ici sur des séquences de caractères particulières (==, '''). Or, le nombre de caractères sans signification n'est pas indéfini. Un tel format peut être approprié pour un seul type de document, mais ce n'est pas une syntaxe générique et facilement extensible.

XML, format textuel, structuré, et extensible

Compar√© aux langages plus haut, XML est une syntaxe g√©n√©rique et extensible. Il permet de structurer une grande vari√©t√© de contenus, car son ¬ę langage ¬Ľ (vocabulaire et grammaire) peut √™tre red√©fini.[note 2]

Composants et syntaxe d'un document XML

La plupart des composants d'un document XML[XML 1] peuvent √™tre repr√©sent√©s par un arbre. Ce sont donc des nŇďuds. Ce mod√®le fait d'ailleurs l'objet d'une d√©finition tr√®s pr√©cise (DOM Document Object Model ¬ę mod√®le objet de document (XML) ¬Ľ), afin de permettre √† des langages de programmation de manipuler du XML. Nous nous limiterons √† √©num√©rer les types de nŇďuds fondamentaux, que l'on peut identifier dans l'exemple artificiel suivant.

  <?xml version="1.0" encoding="UTF-8"?>
  <!-- '''Commentaire''' -->
  <élément-document xmlns="http://exemple.org/" xml:lang=";fr">
    <élément>Texte</élément>
    <élément>élément répété</élément>
    <élément>
      <élément>Hiérarchie récursive</élément>
    </élément>
    <élément>Texte avec<élément>un élément</élément>inclus</élément>
    <élément/><!-- élément vide -->
    <élément attribut="valeur"></élément>
  </élément-document>

La racine du document /

En informatique, un arbre a g√©n√©ralement une et une seule racine (qui n'a pas d'anc√™tre). La racine d'un document XML se situe donc derri√®re tous les nŇďuds (sauf le prologue, qui n'est pas un nŇďud). Dans un langage d'acc√®s √† un document XML, XPath, la racine du document est not√©e avec la barre oblique /, comme l'arbre d'un syst√®me de fichiers Unix.

Pour √™tre bien form√©, un document XML doit avoir un et un seul √©l√©ment √† la racine, parfois d√©sign√© par ¬ę √©l√©ment document ¬Ľ. La racine accepte aussi les commentaires, et des instructions de traitement, mais surtout pas de texte .

Les éléments <élément/>

L'√©l√©ment[XML 2] a un nom, pr√©cis√©ment qualifi√© au sein d'un espace de noms (<espace:√©l√©ment/>), et peut porter tous les types de nŇďuds : attributs, texte, √©l√©ments‚Ķ Le fait qu'un √©l√©ment puisse avoir des enfants texte et des enfants √©l√©ments a beaucoup de cons√©quences pour en faire un format de donn√©es tr√®s souple (compar√© par exemple √† une table relationnelle). La qualification des noms contribue aussi √† la pr√©cision s√©mantique des contenus balis√©s.

Un exemple de notice bibliographique permettra de mieux montrer le potentiel de ce format, il utilise le vocabulaire Dublin Core.

  <ex:collection 
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ex="http://exemple.org">
    <dc:title>[[Astérix le Gaulois]]</dc:title>
    <ex:livre>
      <dc:title>[[Astérix chez les Belges]]</dc:title>
      <dc:creator>[[René Goscinny]]</dc:creator>
      <dc:creator>[[Albert Uderzo]]</dc:creator>
      <dc:type>Text</dc:type>
      <dc:description>
        <b>Astérix chez les Belges</b> est un album de 
        <a href="http://fr.wikipedia.org/wiki/Bande_dessinée">bande dessinée</a> 
        de la série Astérix le Gaulois créée par René Goscinny et Albert Uderzo.
        Cet album publié en 1979 est le dernier de la série écrit par René Goscinny.
      </dc:description>
    </ex:livre>
  </ex:collection>
r√©p√©table 
Une même propriété peut être répétée. L'exemple montre comment indiquer qu'un livre a plusieurs auteurs (dc:creator). Dans un format tabulaire, avec un nombre de colonnes défini, ce n'est pas impossible, mais moins spécifié.
ordonn√© 
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 XPath, /ex:collection/ex:livre/dc:creator[1] = "[[Ren√© Goscinny]]", /ex:collection/ex:livre/dc:creator[2] = "[[Albert Uderzo]]").
hi√©rarchique 
Les éléments XML sont imbricables. Ceci rend ce format particulièrement adapté à représenter des arbres. Ici, on s'est limité à 2 niveaux (/ex:collection/ex:livre), une collection avec un titre (Astérix le Gaulois), et un exemple d'ouvrage de cette collection (Astérix chez les Belges). 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 <section>. La partie 2.3.5 correspondra à une structure d'imbrication XML /section[2]/section[3]/section[5].
m√©langeable 
Enfin, ce qui fait qu'XML est plus qu'un format de données, c'est la possibilité de mélanger du texte et des éléments. L'exemple montre comment le texte de la description (dc:description) est enrichi avec des balises XHTML (du gras <b> et un lien <a>).

Noms qualifi√©s - Cette souplesse, et l'eXtensibilit√© de XML est contr√īl√©e par la qualification des noms. Vous aurez remarqu√© dans l'exemple de code que la plupart des √©l√©ments sont des liens. Comme il s'agit de standards, ils disposent d'une documentation officielle en ligne. Pour une notion commune comme un titre, cela ne semble pas n√©cessaire. Mais pour des noms beaucoup plus ambigus, comme type, il est tr√®s important de d√©terminer le vocabulaire dans lequel interpr√©ter le mot. Ainsi, Dublin Core est un vocabulaire de m√©tadonn√©es bibliographiques, type qualifiera des types de document : Text, Image, Sound‚Ķ Dans un vocabulaire d√©di√© √† la documentation informatique comme Docbook, type a le sens de type de donn√©es.

xmlns="URI" - En XML, les noms d'éléments devraient toujours être identifiés par une URI. C'est l'objet des attributs xmlns:* sur l'élément racine de l'exemple (xmlns:dc="http://purl.org/dc/elements/1.1/") et des préfixes sur certains noms (dc:type est identifié par l'URI de l'attribut xmlns:dc). Il n'est pas nécessaire ici de détailler plus cette syntaxe. L'essentiel est de retenir qu'en XML, le nom d'un élément ne se choisit pas au hasard, qu'il résulte d'un travail de modélisation, qu'il est précisément identifié.

Le texte

Un nŇďud texte[XML 3] n'a pas d'enfants, il est toujours contenu dans un √©l√©ment. Par d√©faut, il sera trait√© comme de l'Unicode en UTF-8 ou UTF-16. XML permet de sp√©cifier d'autres encodages dans le prologue (ex. : <?xml version="1.0" encoding="ISO-8859-1"?>). Ce simple choix a d√©j√† apport√© une √©norme simplification aux probl√®mes d'encodages que l'on rencontre encore en informatique.

Le traitement des espaces et sauts de lignes en XML[XML 4] peut apporter quelques surprises. Sous sa forme texte, un fichier XML sera probablement indent√© par son auteur. La recommandation n'oblige pas un processeur XML √† conserver ces espaces non significatifs, sauf instructions particuli√®res (exemple : bloc pr√©format√© <pre>). Il en r√©sulte que le texte XML propos√© √† un processeur peut ne pas revenir √† l'identique apr√®s traitement, ce qui cause des d√©sagr√©ments dans certaines applications.

texte m√™l√© - Dans le cas des textes m√™l√©s (exemple : <p> du texte en <b>gras</b> dans un paragraphe</p>), l'√©l√©ment parent a plusieurs enfants texte et √©l√©ments qui se succ√®dent, ce n'est pas le texte qui contient un √©l√©ment (exemple : p/node()[1]="du texte en ", p/node()[2]="<b>gras</b>", p/node()[3]=" dans un paragraphe"). Cette petite remarque n'a d'importance que dans certaines interfaces de manipulation XML (DOM), elle permet aussi de fixer la d√©finition.

Les attributs, <élément attribut="valeur"/>

Un attribut est un nom et une valeur, la valeur peut être vide <element attribut=""/>, mais pas nulle <element attribut> (cette écriture était permise en SGML, on la rencontre encore parfois à propos d'HTML, mais elle n'est pas acceptée en XML). Un nom d'attribut a les mêmes possibilités de qualification qu'un nom d'élément.

La valeur est un texte sans √©l√©ment (ni autres nŇďuds). Un attribut est toujours port√© par un √©l√©ment. Un attribut est unique. La r√©p√©tition d'un attribut de m√™me nom sur le m√™me √©l√©ment provoquera une erreur du processeur XML. L'ordre des attributs n'est pas significatif, et peut ne pas √™tre conserv√© dans certains traitements. <element attribut1="valeur1" attribut2="valeur2"/> et <element attribut2="valeur2" attribut1="valeur1"/> sont √©quivalents pour un processeur XML, m√™me s'ils sont √©crits diff√©remment.

Les commentaires <!-- -->

En XML, les commentaires[XML 5] sont délimités par <!-- et -->. Le contenu d'un commentaire ne sera pas interprété.

<!-- Cet <élément> est mal formé mais cela est autorisé dans un commentaire -->.

La cha√ģne de caract√®res ¬ę -- ¬Ľ, pour des raisons de compatibilit√© avec SGML, ne peut appara√ģtre dans le contenu du commentaire.

Style - Il est th√©oriquement possible de traiter le contenu des commentaires XML avec un processeur. Un exemple o√Ļ cela peut √™tre utile : transformer de la programmation en XML (exemple : XSLT) afin d'en fournir la documentation. Mais il s'agit d'un cas limite, une application XML ne doit pas s'appuyer sur le contenu des commentaires.

Le prologue

En XML, le prologue[XML 6] est constitu√© de la d√©claration XML <?xml version="1.0"?>, 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 processeur √† son sch√©ma ( DTD, Document Type Definition, ¬ę 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.

Autres nŇďuds

Afin d'√™tre complet on mentionnera aussi :

  • Les instructions de traitement[XML 7], <?xml-stylesheet href="transform.xsl" type="text/xsl"?> <?cl√© valeur?>, des nŇďuds destin√©s aux logiciels traitant le XML ;
  • Les sections d'√©chappement[XML 8], <![CDATA[<ceci> ne sera pas consid√©r√© comme un √©l√©ment ]]>.

Utilisations et langages dérivés

Article d√©taill√© : cat√©gorie:XML.

SGML était une syntaxe générique, permettant de définir des langages spécialisés, comme HTML, mais il était surtout dédié au balisage de documents. En simplifiant SGML, les concepteurs d'XML prévoyaient d'élargir l'usage des chevrons (< >) à bien d'autres emplois, comme par exemple, la programmation. Les premiers langages basés sur XML par le W3C dessinent plusieurs directions d'utilisation.

  • 1999, RDF Resource Description Framework(en) ¬ę cadre de description de ressource ¬Ľ(fr). Ce mod√®le abstrait vise √† d√©finir un r√©seau de m√©tadonn√©es adapt√© au web, repr√©sentable en XML.
  • 1999, XSLT eXtended Stylesheet Language Transformations ¬ę langage XML de feuilles de style, transformations ¬Ľ. Afin d'employer XML, il faut pouvoir le transformer. James Clark 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 (x)HTML, ou XSL-FO.
  • 2000, XSL-FO eXtended Stylesheet Language - Formatting Object ¬ę langage XML de feuilles de style - Formatage d'objets ¬Ľ. XSL-FO est un langage de description de document permettant de composer un livre, ou un document PDF. C'√©tait un compl√©ment indispensable √† XML pour les industries de l'√©dition.
  • Enfin, il fallait une nouvelle syntaxe sch√©ma tenant compte des espaces de noms pour remplacer les DTDs (ce qui deviendra XML Schema).

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 :

Ces cat√©gories permettent une classification approximative des langages √† base XML (ou acceptant une expression XML). La liste des langages plus bas rep√®re quelques sp√©cifications marquantes. Elles ont fait date dans le monde XML. Les succ√®s, ou les critiques, permettent aussi de montrer √† quoi XML est bon, et l√† o√Ļ il est parfois discut√©.

Balisage de document

Le balisage de document est le m√©tier initial d'XML. Les DTD SGML publiques comme TEI et Docbook 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[6] :

Format de données

XML s'est imposé comme format de référence pour l'échange de données, notamment de métadonnées. L'exemple d'un transfert d'informations entre base de données relationnelles permettra d'illustrer les avantages et limites de ce format pour cet usage.

L'exportation d'une table peut se faire en csv. 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 SQL (√† la fois langage de d√©finition de donn√©es et langage de manipulation de donn√©es). Cependant, malgr√© de nombreux efforts de normalisation, SQL comporte beaucoup de risques d'incompatibilit√© entre les impl√©mentations [1]. XML est une solution plus robuste. On peut en constater l'efficacit√© sur Internet avec la syndication de contenu. Il n'y a pas d'exemple connu d'√©change de m√©tadonn√©es r√©parties sur autant de ¬ę clients ¬Ľ et de ¬ę serveurs ¬Ľ.

Verbosit√© ? - Compar√© √† l'export CSV d'une table, XML r√©plique le nom de la colonne pour chaque cellule (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 : t√©l√©phonie mobile), cela n'a pas sembl√© poser de probl√®me (WML), car ces r√©p√©titions se compressent tr√®s bien (zip).

Traitement lourd ? - Traiter du XML demande des biblioth√®ques d√©di√©es (processeur 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 parseur 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.

XML : donn√©es ou document ? - Cette section est l'occasion de marquer la distinction entre XML donn√©es et XML document. 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 document. On lui a reproch√© par exemple ne pas avoir (nativement) de typage fort. On rencontre un mouvement analogue mais contraire en SQL. C'est originalement un format de donn√©es, on lui demande de plus en plus de traiter du texte. (CMS LAMP). En ce qui concerne XML, cette opposition se traduit dans la direction des efforts de sp√©cification (types de donn√©es XML Schema, XPath 2.0, XSLT 2.0) avec des r√©actions du monde documentaire (Relax NG).

Langages de schéma

Un processus XML complet comporte une √©tape de validation des documents. C'est le r√īle d'un sch√©ma de d√©finir ces r√®gles de validit√©. Faut-il que ce sch√©ma soit en XML ? La question ne se posait pas en SGML, qui connaissait surtout les DTDs, une syntaxe texte. Les limites rencontr√©es alors concernaient surtout la documentation des √©l√©ments et attributs d√©clar√©s(en). La documentation est tr√®s importante pour la r√©ussite d'un standard XML. Celles de Docbook ou TEI constituent des livres complets, avec m√™me des versions imprim√©es.

Ces communaut√©s ont attendu avec impatience ce que donnerait XML Schema. Les nombreux outils de documentation automatiques qui sont apparus, avec un simple jeu d'XSLTs, prouvent l'int√©r√™t d'XML comme langage de description de format de document. 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 W3C, la communaut√© est tr√®s int√©ress√©e par Relax NG, de James Clark. Ce mod√®le accepte une syntaxe XML, et depuis 2003, propose aussi une forme compacte, textuelle, qui n'est pas XML.

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 typage fort d'XML Schema, avec des motifs XPath pour Schematron, dans du Relax NG[7].

  • DTD Document Type Definition ¬ę d√©finition de type de document ¬Ľ, ISO.
  • XML Schema langage de Sch√©ma XML, W3C, 2001.
  • Relax NG, DSDL acceptant une forme XML et une syntaxe compacte, ISO , 2001.
  • Schematron, validation par motifs, ISO, 2001.

Langages de représentation

Organisation d'un document au format OpenDocument : content.xml (contenu), styles.xml (apparence), meta.xml (√† propos du document)

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 XHTML 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.

  • OpenDocument - tous les documents bureautiques, OpenOffice.org, 2001.
  • Word - le format natif de Microsoft Word (traitement de texte) est en XML depuis sa version 2003.
  • XSL-FO - eXtensible Stylesheet Language - Formatting Objects, langage extensible de stylage - formatage d'objets, W3C, 2001.
  • SVG - Scalable Vector Graphics, graphiques vectoriels 2D, W3C, 2003.
  • MathML - formules math√©matiques, W3C, 1999, 2001, 2003.
  • SMIL - Synchronized Multimedia Integration Language, Int√©gration multim√©dia, W3C, 1998, 2005.
  • X3D - 3D multim√©dia, consortium Web3D.

Langages de programmation

Dans de nombreuses applications, il est parfois pratique de développer un langage spécialisé, à usage local. Avec un schéma, un dialecte XML dispose d'une grammaire (un peu comme BNF). En guise de compilateur, il suffit par exemple d'une transformation XSLT qui génère du code Java, comme pour une bibliothèque de balises (taglibs). Cet exemple montre comment la syntaxe XML permet de définir des langages de programmation.

En théorie, la structure en arbre d'XML permet de représenter la hiérarchie d'un programme objets, ou l'imbrication des instructions d'un langage impératif. En pratique, les boucles sont le cas limite à partir duquel XML devient trop verbeux. Par contre, cette écriture est remarquablement adaptée aux syntaxes déclaratives (configuration, définition d'interface), et même, popularise les algorithmes fonctionnels (XSLT, logique d'une application web).

Il en résulte que l'on trouve de plus en plus d'XML dans les logiciels. Dans certains frameworks de développement web, il est possible de monter une application complète et complexe, en n'éditant que du XML.

  • XSLT - Extended Stylesheet Language Transformations, transformation de document XML, W3C, 1999.
  • XML Query - requ√™te et transformation XML, W3C, 2005.
  • ANT - scripts de compilation, ASF.
  • Servlet - serveur d'application Java, configuration et logique fonctionnelle, Sun Microsystems.
  • Log4j - log for Java, configuration d'une biblioth√®que d'historique, 1996, ¬© 1999-2006, ASF.
  • UIML - User Interface Markup Language, d√©finition d'interface, OASIS, 1997.
  • XUL - XML-based User interface Language, d√©finition d'interface, Mozilla, 2000.
  • XAML - d√©finition d'interface, Windows Vista, 2006.
  • MXML, Flex - d√©finition d'interface, Macromedia.

Protocoles d'échanges

Un protocole spécifie l'échange de contenus et d'instructions, entre un client et un serveur. HTTP 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 processeurs XML explique pourquoi XML devient une solution courante pour créer un nouveau protocole.

Langages associés

Les langages associés à XML sont des syntaxes qui ne sont pas en XML mais très attachées à XML. CSS illustrera bien la notion. Il peut être contenu dans un attribut (@xhtml:style), dans un élément (<xhtml:style>), ou relié à un document XML par une instruction de traitement (<?xml-stylesheet href="common.css" type="text/css"?>). XPath fournit un autre exemple de spécification entièrement dédiée à XML, mais qui est justement sans éléments ou attributs, afin d'être associé à un langage XML (XSLT).

  • CSS (Cascading Style Sheet)
  • DTD (Document Type Definition)
  • Espace de noms (Namespace)
  • SGML
  • XPath et XQuery, langages de requ√™te. NB: XQuery poss√®de aussi une syntaxe XML, XQueryX.

Conclusion, √©tape suivante ?

En 2001, on demandait √† James Clark, un expert XML et SGML, What's the next step for XML? ¬ę Quelle est l'√©tape suivante pour XML ¬Ľ ? Il r√©pondit d'abord que cela revenait √† demander quelle est l'√©tape suivante pour le texte ASCII ou pour les fichiers √† lignes d√©limit√©es. XML est en effet devenu un format aussi universel qu'Unicode pour structurer des contenus, comme un esperanto de l'informatique.

Qu'un arbre XML permette de repr√©senter beaucoup de choses ne signifie pas que ce soit toujours la forme la plus adapt√©e, chaque utilisation a ses cas limites. Ainsi l'arbre bute sur un motif simple : l'intersection. Consid√©rez ce texte tuil√© : en gras et en italique. Le et appartient √† deux zones, chose simulable mais pas native dans un arbre. On peut en faire une repr√©sentation XHTML comme ceci <strong>en gras <em>et</em></strong> <em>en italique</em>, dont on voit d'ailleurs qu'elle n'est pas unique, car la notion d'intersection est perdue. Ce d√©tail se d√©multiplie dans les applications WYSIWYG qui produisent du XML (traitement de texte, SVG), rendant la source g√©n√©r√©e de moins en moins lisible par un humain. Ce d√©tail am√®nera peut-√™tre un nouveau format.

Selon James Clark en 2001, la nouveauté ne viendrait plus du format, mais de l'intégration applicative pour le traiter, c'est encore vrai en 2007.

Outils et processus XML

XML a d√©sormais 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 interfaces de programmation (API) pr√©cis√©ment sp√©cifi√©es. Comment entre-t-il dans un processus applicatif ?

Pour d√©tailler ces √©tapes, consid√©rons le processus le plus simple, accessible depuis quelques ann√©es dans Internet Explorer ou Firefox. Ces navigateurs permettent de consulter des fichiers dans un XML s√©mantique (qui ne contient que des contenus, sans pr√©sentation), et de les voir comme des pages accompagn√©es de couleurs et de navigation. Ils sont transform√©s par le client, √† l'aide d'une feuille XSLT. Prenons par exemple le site de Norman Walsh[note 5]. La source de la page servie ressemble √† ceci :

  <?xml version='1.0' encoding='utf-8'?>
  <?xml-stylesheet href="/style/browser.xsl" type="text/xsl"?>
  <essay xmlns="http://docbook.org/ns/docbook" xml:lang="en" version='5.0'>
    <info>
      <title>XProc: An XML Pipeline Language</title>
  <!-- ... -->
  </xml>

Ce n'est pas du XHTML (ou du HTML) mais du DocBook. Les navigateurs ne sont pas capables de lire cette grammaire pour lui donner de la présentation. La page apparente est le résultat d'une transformation, signalée au navigateur par l'écriture <?xml-stylesheet href="/style/browser.xsl" type="text/xsl"?>. Le fichier browser.xsl explique comment transformer du DocBook en HTML. Le processus est immédiat, il est intéressant de le détailler, car on le retrouve dans des applications XML plus complexes.

  1. produire : le document DocBook doit avoir √©t√© produit ou r√©sulter d'un import ;
  2. entr√©e : dans le navigateur, un parser lit le fichier XML pour construire un objet informatique, et v√©rifie que le document est bien form√© ;
  3. transformation : le document DocBook est transform√© en XHTML ;
  4. inclusions : dans certains contextes, il est possible d'inclure des fichiers qui deviendront des nŇďuds ;
  5. validation : le document peut √™tre valid√©, pour v√©rifier que sa structure est conforme au sch√©ma docbook ;
  6. sortie : le navigateur s'occupe de rendre le r√©sultat de la transformation en une page pour un utilisateur.

Cette succession canonique d'√©tapes illustre ce que peut √™tre le tuyau d'un processus XML complet. Elles vont maintenant √™tre expliqu√©es pour montrer comment elles peuvent appara√ģtre dans d'autres contextes applicatifs plus complexes.

Exporter et Produire

Une organisation qui a d√©j√† son syst√®me d'informations qui n'est pas bas√©e sur XML peut se demander comment produire du XML. Il existe de nombreuses mani√®res d'exporter et de produire du XML, afin de rentrer dans une cha√ģne de processus XML.

  • Traitement de texte, la plupart des logiciels bureautiques proposent un export XML, quand ils ne sont pas nativement XML (OpenOffice.org, Microsoft Word). 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√© Enregistrer sous de son logiciel habituel.
  • SQL, la plupart des SGBD proposent un export XML.
  • Un √©diteur XML est le meilleur moyen de faire produire par un humain un document correspondant exactement au sch√©ma attendu.

Dans le cas en introduction, Norman Walsh utilise un simple éditeur de texte, emacs.

Parseurs et interfaces de programmation (API)

Avant d'entrer dans un processus XML, un contenu doit √™tre ¬ę xmlis√© ¬Ľ. Cette op√©ration est effectu√©e par un processeur XML. Les parseurs les plus r√©pandus sont :

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).

Une fois ¬ę xmlis√© ¬Ľ, un document est accessible √† diff√©rents langages, selon des interfaces de programmation standardis√©es. On distingue g√©n√©ralement l'approche DOM, mod√®le objet en m√©moire, et l'approche SAX, g√©n√©ration d'√©v√©nements.

  • DOM, Document Object Model, 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 navigateur web avec JavaScript. Cette norme est √©crite par le W3C.
  • SAX, Simple API for XML, est une alternative int√©ressante √† DOM pour le traitement de documents longs. Quand un document entre dans un processeur 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.
  • VTD-XML

D'autres API existent, comme JDOM, dom4J (Java), ou StAX. Il n'est toutefois pas n√©cessaire de ¬ę programmer ¬Ľ pour traiter du XML, notamment avec des langages de transformation comme XSLT. Dans le cas en introduction, votre navigateur charge automatiquement le document docbook, et passe le contenu √† une transformation xslt.

Transformation

Article d√©taill√© : Langage de transformation XML.

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. L'exemple en introduction permet de bien comprendre l'op√©ration. 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 (pdf). La facilit√© de transformer un document XML, notamment avec XSLT, est une raison importante pour choisir ce format.

Inclusions

Un document XML peut être constitué de plusieurs fichiers. Il y a deux normes actuellement concurrentes.

  • les entit√©s externes[XML 9], issues de SGML, r√©solues a priori par un parseur validant, avant tout traitement du document.
  • xinclude[8], un √©l√©ment XML d√©di√©, pouvant √™tre trait√© comme une √©tape s√©par√©e.

Les spécifications et les implémentations privilégient maintenant xinclude, bien que son adoption ait pu être discutée[9].

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.

  <!DOCTYPE catalogue [
    <!ENTITY article001 SYSTEM "articles/article001.xml">
    <!ENTITY article002 SYSTEM "articles/article002.xml">
  ]>
  <!-- Un exemple d'inclusion par résolution d'entité externe -->
  <catalogue xmlns="http://exemple.net/ns">
    <titre>catalogue</titre>
    &article001;
    &article002;
  </catalogue>

On remarquera que les entités sont déclarées en entête de document, puis appelées par une écriture du type &entité;. 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'Unicode. Ce sont les entités caractère comme &eacute;=&#E9;=é. Pour le cas d'une inclusion d'un fichier, cela demande deux déclarations, celle du lien, celle de son appel. Ce moyen reste massivement employé par les sociétés qui ont connu SGML, d'autant que son support est beaucoup plus généralisé que celui d'xinclude.

La r√©solution a priori 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. Xinclude permet cela, ainsi que de g√©n√©rer ces relations automatiquement (XSLT).

  <!-- Un exemple d'inclusion par xinclude -->
  <catalogue xmlns="http://exemple.net/ns"
    xmlns:xi="http://www.w3.org/2001/XInclude">
    <titre>catalogue</titre>
    <xi:include href="articles/article001.xml"/>
  </catalogue>

On retrouve cette √©volution vers la modularisation d'XML o√Ļ l'inclusion devient une √©tape optionnelle d'un processus.

Validation

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 il n'y a pas de titre au chapitre 5, ou bien, la date de fabrication est dans le futur. La précision et la convivialité de cette vérification dépendent de la syntaxe utilisée.

En SGML, 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 DTDs) déclarés d'une seule manière à l'intérieur du document XML (la déclaration DOCTYPE, 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.

Les parseurs XML gardent l'ancien usage de conserver les bibliothèques logicielles de validation. Cependant la fonctionnalité peut être débranchée, ou appelée séparément. Il existe aussi des bibliothèques uniquement dédiées à la validation. Le déploiement actuel rend la validation XML nativement accessible à la plupart des systèmes, et dans la plupart des langages de programmation.

  • MSXML - Microsoft Core XML Services, validation DTD et XML Schema.
  • libxml2 - Validation DTD et Relax NG (le support XML Schema est partiel, surtout pour le typage de donn√©es au sein de Relax NG).
  • Xerces - XML Java Parser, validation DTD et XML Schema.
  • Jing - a Relax NG validator in Java, un validateur qui n'est pas un parseur pour Relax NG et Schematron.
  • XSLT - Une transformation XSLT permet 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.

Sorties

Dans le cas en introduction, le navigateur est le consommateur final de XML, sous la forme de xhtml. Chaque langage XML de représentation (XSL-FO, SVG…) peut être consommé par une application utile à l'utilisateur. Certains formats peuvent être traités par plusieurs bibliothèques logicielles.

¬ę Tuyaux ¬Ľ (XML Pipeline)

Les étapes décrites plus haut sont en cours de normalisation par le W3C (XML Processing Model Working Group). La terminologie est officialisée. Ces idées ont déjà des implémentations concurrentes dans plusieurs frameworks (Apache Cocoon, Orbeon Presentation Server…). L'idée de tuyaux XML existe avant d'avoir été spécifiée.

Un tuyau est une entr√©e (Input Document), une sortie (Output Document), et une cha√ģne d'√©tapes (Step). Ces √©tapes traitent un flux XML (XML Information Set, Infoset [5]). La notion de flux d'information n'est pas sp√©cifique √† XML, on la retrouve √† grande √©chelle dans l'informatique r√©seau, ou tr√®s simplement en ligne de commande Unix, avec la barre verticale, pipe en anglais). L'originalit√© r√©side dans la structuration propre √† XML. Les octets trait√©s par ces tuyaux sont des documents structur√©s. Les √©tapes sont standardis√©es et combinables. Elles sont d√©finies par des composants (components) param√©trables (parameter), le tout en XML.

Conclusion

Les principes de la syntaxe XML s'acqui√®rent en quelques heures, avec un simple √©diteur de texte. Tout utilisateur de traitement de texte gagne √† y √™tre sensibilis√©, afin de comprendre les principes de la r√©daction structur√©e. Conna√ģtre ce formalisme peut motiver √† utiliser les styles (exemple : les titres hi√©rarchiques), afin de produire des documents r√©cup√©rables, par exemple pour HTML et Internet. Un d√©veloppeur web ne peut plus ignorer XML. Il en manipule pour rendre son HTML dynamique, sous la forme d'un DOM. Avec le web 2.0 et AJAX, ces standards p√©n√®trent sa pratique quotidienne. Le d√©veloppement serveur est lui aussi confront√© de plus en plus souvent √† des composants configurables en XML, particuli√®rement en Java. Enfin, ce formalisme s'accompagne de pratiques, de motifs de conception (design patterns), compl√®tement adapt√©s aux architectures MVC (Mod√®le Vue Contr√īleur). XML et les standards attach√©s p√©n√®trent tous les secteurs de l'informatique. Il y a quelques ann√©es, on pouvait se demander, pourquoi XML ? Maintenant, la charge de la preuve est de l'autre c√īt√©, il faut de s√©rieux arguments pour y √©chapper.

Notes et références

Notes :

  1. ‚ÜĎ Ce nom est une id√©e de James Clark, elle est tr√®s bien expliqu√©e par Tim Bray dans sa sp√©cification annot√©e. Comme en anglais la lettre X se prononce ¬ę eks ¬Ľ, elle peut √™tre utilis√©e dans les sigles pour abr√©ger un ou plusieurs mots commen√ßant par ce m√™me son comme eXtensible ou eXperience (XP). Un bon nombre de langages ont √©galement affich√© leur parent√© avec XML en s'adjoignant un X, comme XHTML.
  2. ‚ÜĎ a‚ÄČ et b‚ÄČ √Ä la diff√©rence des balises statiques du html o√Ļ par exemple <p> balise un paragraphe et <li> un item d'une liste.
  3. ‚ÜĎ Par exemple le contenu d'un ensemble de pages de Wikip√©dia s'exporte en un fichier XML utilisant les d√©finitions des balises page, title, contributor, revision, text... de ce sch√©ma XML disponible sur mediawiki.org/xml/export. Autre exemple, les donn√©es de l'INSEE sont signifiantes en utilisant les d√©finitions disponibles sur xml.insee.fr
  4. ‚ÜĎ Le groupe de travail a √©t√© √† l'origine appel√© le ¬ęEditorial Review Board." Les membres √† la premi√®re √©dition sont √©num√©r√©s √† la fin de la premi√®re recommandation XML, W3C 1998.
  5. ‚ÜĎ Ou celui de Jeni Tennison et de plusieurs autres.

R√©f√©rences :

  • (mul) Autres :
  1. ‚ÜĎ (fr)XML expliqu√© aux d√©butants, Emmanuel Lazinier, 1999
  2. ‚ÜĎ (en)Rapports du W3C SGML ERB pour le SGML WG Et du W3C XML au XML ERB SIG, rapport compil√© par C. M. Sperberg-McQueen, 4 d√©cembre 1997
  3. ‚ÜĎ (fr)interview, journal du net, septembre 2004
  4. ‚ÜĎ (en)W3C Working Draft 14-Nov-96
  5. ‚ÜĎ (en) ¬ę Its goal is to enable generic SGML to be served, received, and processed on the web in the way that is now possible with HTML. ¬Ľ(en)
  6. ‚ÜĎ (en) XHTML Modularization 1.1, W3C Working Draft 5 July 2006
  7. ‚ÜĎ (en)Eric van der Vlist, RELAX NG, ¬ę W3C XML Schema Type Library ¬Ľ, O'Reilly & Associates, 2003 (ISBN 0596004214) [lire en ligne]
  8. ‚ÜĎ (en)xinclude
  9. ‚ÜĎ (en)Norman Walsh, XInclude, xml:base, and validation.

Voir aussi

Articles connexes

Sur les autres projets Wikimedia :

Autres technologies et th√©ories int√©ressant XML :

Liens externes

Références

Divers

  • Portail de l‚Äôinformatique Portail de l‚Äôinformatique
  • Portail de l‚Äô√©criture Portail de l‚Äô√©criture
Ce document provient de ¬ę Extensible Markup Language ¬Ľ.

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article XML de Wikipédia en français (auteurs)

Regardez d'autres dictionnaires:

  • XML ‚ÄĒ (–į–Ĺ–≥–Ľ. eXtensible Markup Language) —Ä–į—Ā—ą–ł—Ä—Ź–Ķ–ľ—č–Ļ —Ź–∑—č–ļ —Ä–į–∑–ľ–Ķ—ā–ļ–ł –†–į—Ā—ą–ł—Ä–Ķ–Ĺ–ł–Ķ .xml ‚Ķ   –í–ł–ļ–ł–Ņ–Ķ–ī–ł—Ź

  • Xml ‚ÄĒ (–į–Ĺ–≥–Ľ. eXtensible Markup Language) —Ä–į—Ā—ą–ł—Ä—Ź–Ķ–ľ—č–Ļ —Ź–∑—č–ļ —Ä–į–∑–ľ–Ķ—ā–ļ–ł –†–į—Ā—ą–ł—Ä–Ķ–Ĺ–ł–Ķ —Ą–į–Ļ–Ľ–į: .xml –Ę–ł–Ņ text/xml¬†(—É—Ā—ā–į—Ä–Ķ–≤—ą–ł–Ļ) –†–į–∑—Ä–į–Ī–ĺ—ā—á–ł–ļ: World Wide Web Consortium –†–į—Ā—ą–ł—Ä–Ķ–Ĺ–ł–Ķ –ī–Ľ—Ź: –ě—Ā–Ĺ–ĺ–≤–į –ī–Ľ—Ź: SVG, XSL ‚Ķ   –í–ł–ļ–ł–Ņ–Ķ–ī–ł—Ź

  • XML ‚ÄĒ ¬† [Abk. f√ľr Extensible Markup Language, dt. ¬Ľerweiterbare Beschreibungssprache¬ę], eine Sprache, mit der die Struktur von Dokumenten beschrieben wird (eine sog. Metasprache). XML ist eine eingeschr√§nkte Form (man sagt auch: eine Untermenge) von… ‚Ķ   Universal-Lexikon

  • XML DB ‚ÄĒ est un module de gestion XML int√©gr√© au Syst√®me de gestion de base de donn√©es Oracle. Sommaire 1 Oracle XML DB 2 Fonctionnalit√©s de base 2.1 Cr√©ation d une table ‚Ķ   Wikip√©dia en Fran√ßais

  • XML-QL ‚ÄĒ ist der Name einer Anfragesprache f√ľr XML. Viele ihrer Ideen flossen in die Sprache XQuery ein. In der Praxis spielt XML QL fast keine Rolle mehr, stattdessen wird meistens XQuery eingesetzt. Weblinks w3.org XML QL: A Query Language for XML… ‚Ķ   Deutsch Wikipedia

  • XML ‚ÄĒ (–į–Ĺ–≥–Ľ. —Ā–ĺ–ļ—Ä. Extensible Markup Language‚Äď —Ä–į—Ā—ą–ł—Ä—Ź–Ķ–ľ—č–Ļ —Ź–∑—č–ļ —Ä–į–∑–ľ–Ķ—ā–ļ–ł) –°—ā–į–Ĺ–ī–į—Ä—ā –Ĺ–į –Ņ—Ä–Ķ–ī—Ā—ā–į–≤–Ľ–Ķ–Ĺ–ł–Ķ –ī–į–Ĺ–Ĺ—č—Ö, –ĺ—Ä–ł–Ķ–Ĺ—ā–ł—Ä–ĺ–≤–į–Ĺ–Ĺ—č–Ļ, –≤ —á–į—Ā—ā–Ĺ–ĺ—Ā—ā–ł, –Ĺ–į –ĺ–Ī–ľ–Ķ–Ĺ –ł–Ĺ—Ą–ĺ—Ä–ľ–į—Ü–ł–Ķ–Ļ –ľ–Ķ–∂–ī—É –Ĺ–Ķ–∑–į–≤–ł—Ā–ł–ľ—č–ľ–ł —É—á–į—Ā—ā–Ĺ–ł–ļ–į–ľ–ł. –í –ĺ—ā–Ľ–ł—á–ł–Ķ –ĺ—ā HTML, –Ņ—Ä–Ķ–ī–Ĺ–į–∑–Ĺ–į—á–Ķ–Ĺ –ī–Ľ—Ź –Ņ—Ä–Ķ–ī—Ā—ā–į–≤–Ľ–Ķ–Ĺ–ł—Ź –ł–Ĺ—Ą–ĺ—Ä–ľ–į—Ü–ł–ł… ‚Ķ   –°–Ľ–ĺ–≤–į—Ä—Ć –Ī–ł–∑–Ĺ–Ķ—Ā-—ā–Ķ—Ä–ľ–ł–Ĺ–ĺ–≤

  • XML UK ‚ÄĒ XML UK: the United Kingdom Forum for Structured Information StandardsThe organization provides a forum for XML and SGML users and developers to share their experiences and ideas concerning the use of XML, SGML and other related standards.XML UK… ‚Ķ   Wikipedia

  • XML ‚ÄĒ kalba statusas T sritis dirbtinis intelektas apibrńóŇĺtis Standartinńó saityno metaŇĺymiŇ≥ kalba, sudaranti galimybńô kurti laisvai pasirenkamus ŇĺymiŇ≥ rinkinius, kuriais galima struktŇęrizuoti ir apraŇ°yti bet kokios rŇęŇ°ies duomenis, numatant jŇ≥ laikymo ‚Ķ   Lithuanian dictionary (lietuviŇ≥ Ňĺodynas)

  • XML ‚ÄĒ er i IT terminologi en forkortelse for eXtensible Markup Language, der er efterf√łlgeren for HTML. XML tillader at de forskellige tags kan √¶ndres alt efter, hvordan XML siden skal benyttes. Web udviklere har derfor mulighed for selv at definere… ‚Ķ   Danske encyklop√¶di

  • XML ‚ÄĒ kalba statusas T sritis informatika apibrńóŇĺtis Universali dokumentŇ≥ Ňĺenklinimo kalba, skirta dokumentŇ≥ struktŇęrai apraŇ°yti. Nepriklausoma nuo kompiuteriŇ≥ ir operaciniŇ≥ sistemŇ≥, neribojanti dokumento pavaizdavimo. Yra ‚ÜĎSGML kalbos poaibis.… ‚Ķ   Enciklopedinis kompiuterijos Ňĺodynas

  • XML ‚ÄĒ es la sigla del ingl√©s eXtensible Markup Language (lenguaje de marcado ampliable o extensible) desarrollado por el World Wide Web Consortium (W3C). Es una versi√≥n simple de SGML. Su objetivo principal es conseguir una p√°gina web m√°s sem√°ntica ‚Ķ   Enciclopedia Universal


Share the article and excerpts

Direct link
… Do a right-click on the link above
and select ‚ÄúCopy Link‚ÄĚ

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.