Sie sind auf Seite 1von 19

Extensible Markup Language

Extensible Markup Language


Extensible Markup Language

Extension Type MIME

.xml application/xml, text/xml

Dvelopp par World Wide Web Consortium [1] Type de format Langage de balisage Standard(s) Spcification 1.0 (5e dition) Format ouvert [2] 1.1 (2e dition) [3]

Le XML[4] (Extensible Markup Language, langage de balisage extensible ) est un langage informatique de balisage gnrique qui drive du SGML. Cette syntaxe est dite extensible car elle permet de dfinir diffrents espaces de noms, c'est--dire des langages avec chacun leur vocabulaire et leur grammaire, comme XHTML, XSLT, RSS Elle est reconnaissable par son usage des chevrons (<>) encadrant les balises. L'objectif initial est de faciliter l'change automatis de contenus complexes (arbres, texte riche) entre systmes d'informations htrognes (interoprabilit). Avec ses outils et langages associs une application XML respecte gnralement certains principes : la structure d'un document XML est dfinie et validable par un schma, un document XML est entirement transformable dans un autre document XML.

Historique
Dan Connolly ajoute le Standard Generalized Markup Language la liste des activits du World Wide Web Consortium lorsqu'il s'y joint en 1995. Les travaux dbutent la mi-1996 lorsque l'ingnieur Jon Bosak(en) de Sun Microsystems labore une charte et recrute des collaborateurs. Bosak se fait connatre dans la petite communaut de personnes qui avaient de l'exprience la fois dans le SGML et dans le Web. XML est compil par un groupe de travail de onze membres[5], soutenu par environ 150 membres de divers groupes d'intrt. Le dbat technique a eu lieu sur la liste commune et les questions ont t rsolues par consensus ou, lorsque cela a chou, la majorit des voix du groupe de travail. Un compte rendu des dcisions de conception et de leurs justifications ont t compiles par Michael Sperberg-McQueen(en) de Chicago, le 4 dcembre, 1997[6]. James Clark servit comme responsable technique du groupe de travail, notamment en contribuant l'lment vide <empty/> et au nom XML . Les co-rdacteurs du cahier des charges taient l'origine Tim Bray(en), 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 ; accompagns ensuite de Jean Paoli, de Microsoft, comme troisime co-diteur[7]. Tim Bray, dans son Annotated XML Specification (en) [8] la spcification XML annote ,

Extensible Markup Language explique plus longuement le contexte qui a rendu possible ce standard. Le groupe de travail XML ne s'est jamais rencontr face--face, la conception a t ralise en utilisant courrier lectronique et tlconfrences hebdomadaires. Les principales dcisions de conception ont t prises en une vingtaine de semaines de travail intense entre juillet et novembre 1996, lorsque le premier travail de spcification XML a t publi[9]. D'autres travaux de conception sont poursuivis jusqu'en 1997, puis le XML 1.0 est devenu une recommandation W3C le 10fvrier1998.

XML et SGML
L'objectif initial de XML est expliqu au dbut de la spcification du 10fvrier1998, la phrase est toujours d'actualit : Son but est de permettre au SGML gnrique d'tre transmis, reu et trait sur le web de la mme manire que l'est HTML aujourd'hui. (fr) [10][11]. 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 dfinir un langage aussi gnrique, mais plus simple : XML has been designed for ease of implementation (en) [12], XML a t conu pour une facilit de mise en uvre (fr) [10]. la lumire des annes passes, cette spcification a rempli l'objectif qu'elle se fixait, XML a t largement suivi et favorise l'interoprabilit. La disponibilit d'une syntaxe standard et d'outils de manipulation rduit significativement le cot du cycle de dveloppement, permettant des programmes de modifier et de valider, sans connaissances pralables, des documents crits dans ces langages. En effet, avant l'avnement du populaire langage gnraliste de description de donnes qu'est XML, les concepteurs de logiciels avaient pour habitude de dfinir leurs propres formats de fichiers ou leurs propres langages pour partager les donnes entre programmes ( l'exception de quelques standards professionnels tels qu'EDIFACT). Ceci ncessitait de concevoir et de programmer des analyseurs syntaxiques ddis, ces tches et bien d'autres s'effectuent dsormais avec de outils XML standardises. Plusieurs choix ont contribu aux succs du XML. Unicode Par dfaut, SGML tait en ASCII (alphabet latin sans lettre accentue). Il apportait un systme d'encodage pour les autres signes, les entits caractres que l'on trouve encore parfois en HTML (exemple : &eacute; pour ). En 1996, apparat la version 2.0 d'Unicode, XML adoptera cet encodage par dfaut. <?xml version="1.0" encoding="UTF-8"?> < > </ > Dlimitation explicite du contenu SGML tait orient pour la saisie humaine de textes structurs, sur des machines moins puissantes qu'aujourd'hui. Il autorisait beaucoup de raccourcis. HTML conserve par exemple les balises fermeture optionnelle (exemple : <li>). Ces possibilits compliquaient l'implmentation de la norme. En XML, toute balise ouverte doit tre ferme. <!-- Accept en HTML4, pas en xhtml --> <UL Class=Defaut> <LI>Item 1 <li>Item 2 </ul> <!-- normalisation xhtml --> <ul class="Defaut"> <li>Item 1</li> <li>Item 1</li> </ul>

Extensible Markup Language Espace de noms SGML insistait surtout sur la validation, sur la conformit un modle contraignant. XML prvoyait un usage plus souple de l'information structure, il spcifie un moyen de faire cohabiter plusieurs vocabulaires de balises dans un mme document.
<?xml version="1.0" encoding="UTF-8"?> <xsl:transform 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" > <!-- Transformation XSLT (instructions XML avec le prfixe xsl:) qui prend en entre du TEI (noms avec prfixe tei:) et donne en sortie du html (noms sans prfixe). --> <xsl:template match="tei:abbr"> <abbr> <xsl:apply-templates/> </abbr> </xsl:template> </xsl:transform>

Bilan Paradoxalement, il reste un domaine o SGML persiste, les HTML. Le W3C ne dveloppe plus XHTML (une version de HTML plus stricte, avec par exemple des balises obligatoirement fermes), pour se consacrer plutt HTML5, le successeur d'HTML4, qui ajoute quelques balises sans imposer la conformit XML. L'chec du XHTML pour remplacer le HTML s'explique par la force des habitudes, et la trs importante base HTML installe[13]. Au-del de HTML, le W3C avait d'autres projets pour lesquels une syntaxe plus facilement extensible tait ncessaire. Ces directions ont annonc une trs grande plasticit de XML pour de nombreux usages. SGML tait une technologie de niche, sa simplification l'a universalis avec Internet. Il pntre dsormais la plupart des secteurs de l'informatique. Mais avant de dtailler ces utilisations, il peut tre utile de prciser un peu ce que c'est.

Versions
La version 1.0 d'XML a t publie le 10fvrier1998. La version 1.1 publie le 4fvrier2004 apporte des amliorations dans le support des diffrentes versions d'Unicode. Le W3C recommande aux processeurs XML de reconnatre les deux versions, bien que la premire version soit beaucoup plus rpandue que la seconde.

Comparaison d'autres formats


Si le dbut de cet article tait encod en XML, il pourrait ressembler ceci. <article xmlns="http://docbook.org/ns/docbook"> <title>Extensible Markup Language</title> <para> <acronym>XML</acronym> (Extensible Markup Language, langage de balisage extensible )... </para>

Extensible Markup Language </article> Dans ce code, chacun peut identifier des portions de texte (exemple : Extensible, XML) et des mots cls encadrs de chevrons (<, >) : <article>, <title>, <para> Ces mots sont dfinis dans l'espaces de noms Docbook. Le 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 ferme. l'intrieur de cet article, il y a un titre <title>, un paragraphe <para>, et un acronyme <acronym>. Ce qui est spcifique XML, c'est le choix des chevrons pour identifier les balises, et l'obligation de les fermer. Les mots cls ne sont pas dfinis par la norme XML, mais par le vocabulaire choisi. En XHTML, l'lment 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 rservs (exemple : echo, for, public, function, class), mais plutt des caractres rservs permettant de dfinir un langage . Cet exemple illustre une autre spcificit de ce format. part SGML, peu d'autres syntaxes permettent de sparer la dfinition smantique 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 donnes. Pour s'en convaincre, regardons ce que la mme information donne dans d'autres formats.

Formats binaires (un exemple Microsoft Word)


Les logiciels, surtout pour le grand public, aboutissent gnralement des fichiers. Le format se soucie d'abord d'tre fiable et performant, mais probablement pas de simplicit et d'interoprabilit. Par exemple, le format d'enregistrement natif du traitement de texte Word n'est pas lisible par l'humain, le texte est difficile extraire, le lien avec sa structuration (gras, italique) est difficile reconstruire. Thoriquement, seul le logiciel qui le produit est capable de le lire.
XML i CJ [ beaucoup d'informations binaires supprimes ] F Document Microsoft Word MSWordDoc Word.Document.8 9q _H > ! # % a bjbj%%

Extensible Markup Language (Extensible Markup Language, langage de balisage extensible ) 8 aJ @ mH 8 sH N o r m a l tH N @ N T i t r e 1

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 destines tre crites par un humain. {\rtf {\f2\fs36\b Extensible Markup Language}\par {\b XML} (Extensible Markup Language, langage de balisage extensible )... \par }

Extensible Markup Language On retrouve le besoin d'encadrer du contenu avec un marqueur (ici les accolades {}), d'attacher des proprits 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 smantique d'un texte.

TEX
Donald Knuth, auteur de The Art of Computer Programming l'Art de la programmation , s'est un jour (1977) indign de la qualit d'impression de ses ouvrages. Il dveloppa TEX, une syntaxe trs labore destine l'criture humaine, spcialement puissante pour les quations mathmatiques. On remarquera que RTF lui a repris ses sparateurs (\, {, }), mais pas son systme 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 ddi la mise en forme, davantage conu pour l'apparence des documents que pour stocker/transfrer des donnes.

wiki
Une syntaxe wiki sait aussi sparer le contenu de la prsentation. =={{lang|en|Extensible Markup Language}}== '''XML''' ({{lang|en|Extensible Markup Language}}, langage de balisage extensible ) Cependant, cette structuration repose ici sur des squences de caractres particulires (==, '''). Or, le nombre de caractres sans signification n'est pas indfini. Un tel format peut tre appropri pour un seul type de document, mais ce n'est pas une syntaxe gnrique et facilement extensible.

XML, format textuel, structur, et extensible


Compar aux langages plus haut, XML est une syntaxe gnrique et extensible. Il permet de structurer une grande varit de contenus, car son langage (vocabulaire et grammaire) peut tre redfini.

Composants et syntaxe d'un document XML bien form


D'un point de vue formel, un document XML est un arbre. Un tel arbre accepte diffrentes incarnations (objet en mmoire, flux d'vnements), et surtout, une version texte. Les composants principaux de ce modle sont les nuds, qui peuvent tre de diffrents types (lments, attributs, commentaires) prsents dans l'exemple artificiel suivant :
<?xml version="1.0" encoding="UTF-8"?> <!-- Commentaire --> <ex:collection xml:lang="fr" xmlns:dc="http://purl.org/dc/elements/1.1/"

Extensible Markup Language


xmlns="http://www.w3.org/1999/xhtml" xmlns:ex="http://exemple.org" > <lment>Texte</lment> <dc:title>Astrix le Gaulois</dc:title> <ex:livre attribut="valeur" type="BD"> <dc:title>Astrix chez les Belges</dc:title> <!-- lment rpt --> <dc:creator>Ren Goscinny</dc:creator> <dc:creator>Albert Uderzo</dc:creator> <dc:description> <b>Astrix chez les Belges</b> est un album de <a href="http://fr.wikipedia.org/wiki/Bande_dessine">bande dessine</a> de la srie Astrix le Gaulois cre par Ren Goscinny et Albert Uderzo. <br/><!-- lment vide --> Cet album publi en 1979 est le dernier de la srie crit par Ren Goscinny. </dc:description> </ex:livre> </ex:collection>

Le nud document {/}


Un document XML a toujours une et une seule racine, le nud document. Dans le langage d'accs un document XML, XPath, le nud document est abrg avec la barre oblique /, comme la racine de l'arborescence d'un systme de fichiers Unix. La racine peut ventuellement comporter des enfants de type commentaire ou instruction de traitement, elle doit obligatoirement comporter un et un seul lment.

Les lments <lment/> {*}


Un lment est un nud, dsign par un nom qualifi au sein d'un espace de noms (<espace:lment/>), pouvant contenir la plupart des autres nuds : texte, lments, attributs ( l'exception du nud document). Cette spcification formelle est l'origine des particularits de XML compar d'autres formats : rptable Une mme proprit peut tre rpte. L'exemple montre comment indiquer qu'un livre a plusieurs auteurs <dc:creator>. Dans un format tabulaire, avec un nombre de colonnes dfini, ce n'est pas impossible, mais moins spcifi. ordonn L'ordre des lments 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]]"). hirarchique Les lments XML sont imbricables. Ceci rend ce format particulirement adapt reprsenter des arbres. L'exemple est limit 2 niveaux (/ex:collection/ex:livre), une collection avec un titre (Astrix le Gaulois), et un exemple d'ouvrage de cette collection (Astrix chez les Belges). XML permet une rcursivit

Extensible Markup Language complte. Par exemple, un livre, ou une thse, peut tre format trs conomiquement avec un lment [14] <section >. La partie 2.3.5 correspondra une structure d'imbrication XML /section[2]/section[3]/section[5]. mlangeable XML est plus qu'un format de donnes, c'est un format de document, permettant de mlanger du texte et des lments, permettant par exemple de structurer du texte riche. Dans l'exemple, le texte de la description <dc:description> est enrichi avec des balises XHTML (gras <b>, lien <a>). qualifi La qualification des noms contribue la prcision smantique des contenus baliss. La notation xmlns="URI", ou xmlns:prefix="autre/URI", avec hritage hirarchique, permet de rattacher tous les noms une URI, et donc potentiellement une documentation.

Les balises
Une balise est un nom commode pour dsigner les constructions entre deux chevrons <> dans un fichier XML. On distinguera les balises ouvrantes <lment attribut="valeur">, les balises fermantes </lment> (sans attribut et avec barre oblique au dbut), et les balises vides <lment attribut="valeur"/> (barre oblique la fin, attributs possibles). Il ne faut pas confondre les balises avec les lments. Ces notations permettent de dlimiter des lments (ainsi que leurs attributs), mais les balises ne sont pas des nuds dans le modle abstrait du document. Le nom d'une balise ne peut pas contenir !"#$%&'()*+,/;<=>?@[\]^`{|}~ ou une espace et ne peut pas commencer par -. ou un chiffre.

Le texte {text()}
Un nud texte[15] n'a pas d'enfants, il est toujours contenu dans un lment. Ainsi dans le cas de texte ml (exemple : <p> du texte en <b>gras</b> dans un paragraphe</p>), ce n'est pas le texte qui contient le gras, mais plutt l'lment parent <p> qui contient plusieurs enfants : un nud texte, un nud lment <b>, puis nud texte (exemple : p/node()[1]="du texte en ", p/node()[2]="<b>gras</b>", p/node()[3]=" dans un paragraphe"). encodage Par dfaut, le texte est trait comme de l'Unicode (UTF-8). XML permet de spcifier d'autres encodages dans le prologue (ex. : <?xml version="1.0" encoding="ISO-8859-1"?>). espaces En XML, espaces et sauts de lignes sont quivalents[16], autrement dit, un document peut perdre son indentation en restant identique pour les traitements, sauf instructions particulires (exemple : bloc prformat avec l'attribut @xml:space="preserve").

Les attributs, <lment attribut="valeur"/> {@*}


Un attribut est un nom et une valeur. Un nom d'attribut a les mmes possibilits de qualification qu'un nom d'lment. La valeur est un texte sans lment (ni autres nuds). Un attribut est toujours port par un lment. 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 accepte en XML). Un attribut est unique. La rptition d'un attribut de mme nom sur le mme lment 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, mme s'ils sont crits diffremment.

Extensible Markup Language

Les commentaires <!-- --> {comment()}


En XML, les commentaires[17] sont dlimits par <!-- et -->. Le contenu d'un commentaire ne sera pas interprt. <!-- Cet <lment> n'est pas ferm mais cela est autoris dans un commentaire -->. La chane de caractres -- ne peut apparatre dans le contenu du commentaire.

Le prologue
En XML, le prologue[18] est constitu de la dclaration XML <?xml version="1.0"?>, et de la dclaration de type de document (DOCTYPE). La dclaration XML est obligatoire partir de la version 1.1. La dclaration DOCTYPE avait une grande importance en SGML. Elle attache le document trait par un processeur son schma (DTD, Document Type Definition, Dfinition de Type de Document ), afin de le valider, et d'interprter certains raccourcis (les entits). Dsormais, il existe plusieurs langages de validation, et parfois plusieurs manires de les attacher. La dclaration DOCTYPE n'a plus la mme importance.

Autres nuds
Afin d'tre complet, on mentionnera aussi : Les instructions de traitement[19], <?xml-stylesheet href="transform.xsl" type="text/xsl"?> <?cl valeur?>, des nuds destins aux logiciels traitant le XML ; Les sections d'chappement[20], <![CDATA[<ceci> ne sera pas considr comme un lment ]]>.

Document bien form


Un document bien form respecte les contraintes formelles dfinies ci-dessus. Certaines erreurs courantes se rencontrent particulirement en (X)HTML, o les navigateurs sont plus tolrants quun processeur XML : un fichier XML ne doit comporter que des caractres dans l'encodage dclar (ex : pour un document UTF-8, certaines squences sont interdites) ; les caractres de la syntaxe (ex : <, &), doivent tre chapps s'ils ne servent pas dlimiter une balise ou une entit ( remplacer par l'entit, &lt;=<, &amp;=&) ou qu'ils ne sont pas dans un champ CDATA ; tout lment XML doit tre ferm, les enchssements forment un arbre strict, les chevauchements sont interdits ; les lments de commentaires et CDATA ne peuvent tre enchsss ; les noms (lments et attributs) sont sensibles la casse ; les valeurs d'attribut sont entre guillemets ; un document XML na quun seul lment racine.

Utilisations et langages drivs


SGML tait une syntaxe gnrique, permettant de dfinir des langages spcialiss, comme HTML, mais il tait surtout ddi au balisage de documents. En simplifiant SGML, les concepteurs d'XML prvoyaient d'largir l'usage des chevrons (< >) bien d'autres emplois, comme par exemple, la programmation. Les premiers langages bass sur XML par le W3C dessinent plusieurs directions d'utilisation. 1999, RDF Resource Description Framework(en) [21] cadre de description de ressource (fr) [22]. Ce modle abstrait vise dfinir un rseau de mtadonnes adapt au web, reprsentable 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

Extensible Markup Language 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 complment indispensable XML pour les industries de l'dition. Enfin, il fallait une nouvelle syntaxe schma tenant compte des espaces de noms pour remplacer les DTDs (ce qui deviendra XML Schema). Quelques mois aprs sa sortie, XML est donc utilis pour encoder des donnes, programmer des transformations, reprsenter un objet imprimable, et dfinir le schma d'un document XML. Ceci annonce la varit des utilisations de cette syntaxe. Quelques annes aprs, le catalogue est beaucoup plus important, couvrant des usages comme : langage de balisage de documents, format de donnes, langage de description de format de document (DSDL), langage de reprsentation (texte, image), langage de programmation, protocole de communication.

Ces catgories permettent une classification approximative des langages base XML (ou acceptant une expression XML). La liste des langages plus bas repre quelques spcifications marquantes. Elles ont fait date dans le monde XML. Les succs, 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 mtier initial d'XML. Les DTD SGML publiques comme TEI et Docbook l'ont adopt. XML aurait pu permettre l'apparition de nombreux autres schmas. On assiste plutt l'apparition de vocabulaires spcialiss, et combinables l'exemple de la modularisation XHTML[23] : XHTML - eXtensible HyperText Markup Language, Langage de balisage hypertexte Docbook - documentation technique, 1991 1997 O'Reilly, 1998 OASIS, (Norman Walsh). TEI - Text Encoding Initiative, balisage de textes acadmiques, 1987, 1994, 1999, 2002, Text Encoding Initiative [24] . EAD Encoded Archival Description, description archivistique, 1993, 2002, Bibliothque du Congrs. NITF(en) News Interchange Text Format, change d'articles de presse, 2000, 2002, IPTC. NewsML(en) News Markup Language, balisage de dpche de presse, 2000, 2002, IPTC.

Format de donnes
XML s'est impos comme format de rfrence pour l'change de donnes, notamment de mtadonnes. L'exemple d'un transfert d'informations entre base de donnes 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, sparateurs, ordre et nom des colonnes ?). Il demande une documentation externe rarement automatise entre les partenaires. Que faire lorsque les tables source et destination n'ont pas des structures identiques ? Pour cette raison, on peut prfrer des changes en SQL ( la fois langage de dfinition de donnes et langage de manipulation de donnes). Cependant, malgr de nombreux efforts de normalisation, SQL comporte beaucoup de risques d'incompatibilit entre les implmentations[25]. 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 mtadonnes rparties sur autant de clients et de serveurs . Verbosit ? - Compar l'export CSV d'une table, XML rplique le nom de la colonne pour chaque cellule (une fois pour un attribut, deux fois pour un lment). Le poids du fichier gnr est suprieur celui d'un fichier CSV. Dans des contextes o la bande passante est coteuse (exemple : tlphonie mobile), cela n'a pas sembl poser de

Extensible Markup Language problme (WML), car ces rptitions se compressent trs bien (zip). Traitement lourd ? - Traiter du XML demande des bibliothques ddies (processeur XML). Cela n'ajoute pas vraiment du temps de dveloppement supplmentaire, du moins pour des quipes formes. Pour des petites tches, un parseur ligne ligne est parfois plus simple. Mais si la donne se destine se complexifier, s'changer plus largement, il vaut mieux choisir XML ds le dpart. XML : donnes ou document ? - Cette section est l'occasion de marquer la distinction entre XML donnes et XML document. Il ne s'agit pas d'une diffrence dans la syntaxe, mais dans ses usages, ses outils et ses communauts 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 donnes, 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 spcification (types de donnes XML Schema [26], XPath 2.0 [27], XSLT 2.0 [28] ) avec des ractions du monde documentaire (Relax NG). RDF - Resource Description Framework Rseaux de mtadonnes, 1997 2006 W3C. RSS Rich Site Summary, RDF Site Summary et Really Simple Syndication, 1999 , (principe plus que norme). Atom - syndication, 2003, IETF. OWL - Ontologies (W3C) GML - Donnes gographiques (Open Geospatial Consortium) Dublin Core - bibliographie (dublincore.org [29]) MODS [30] - bibliographie (Bibliothque du Congrs, USA) METS - change de collection de fichiers (Bibliothque du Congrs, USA) BiblioML - bibliographie (Bibliothque nationale de France) EbXML - commerce lectronique (OASIS) XBRL - Donnes comptables XMI - XML Metadata Interchange

10

Langages de schma
Un processus XML complet comporte une tape de validation des documents. C'est le rle d'un schma de dfinir ces rgles de validit. Faut-il que ce schma soit en XML ? La question ne se posait pas en SGML, qui connaissait surtout les DTD, une syntaxe texte. Les limites rencontres alors concernaient surtout la documentation des lments et attributs dclars(en) [31]. La documentation est trs importante pour la russite d'un standard XML. Celles de Docbook [32] ou TEI [33] constituent des livres complets, avec mme des versions imprimes. Ces communauts ont attendu avec impatience ce que donnerait XML Schema. Les nombreux outils de documentation automatiques qui sont apparus, avec un simple jeu d'XSLT, prouvent l'intrt d'XML comme langage de description de format de document. Cependant, pour des choses simples, XML Schema s'est avr difficile. Est-ce l'effet de trop de concessions ? Toujours est-il que malgr le nombre d'diteurs derrire le W3C, la communaut est trs intresse par Relax NG, de James Clark. Ce modle 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 rponse unique. Un schma XML peut se dfinir dans un vocabulaire XML, ou autrement. L'volution actuelle est de pouvoir combiner plusieurs langages de schmas, notamment le typage fort d'XML Schema [26], avec des motifs XPath pour Schematron, dans du Relax NG[34]. DTD Document Type Definition dfinition de type de document , ISO. XML Schema langage de Schma XML, W3C, 2001. Relax NG, DSDL acceptant une forme XML et une syntaxe compacte, ISO , 2001. Schematron, validation par motifs, ISO, 2001. LOM/ IEEE LOM, scorm 2004 spcifie que sont fichier xml manifest doit tre compatible avec le modle de donne SCORM LOM et le schma XML .

Extensible Markup Language

11

Langages de reprsentation
On vante souvent XML pour sa facult de sparer contenu, prsentation et traitement. Attention, XML rend cette sparation possible, mais il n'interdit pas de tout mlanger, comme dans certaines pages XHTML sur Internet. En tous cas, ce format extensible a prouv qu'il pouvait conserver la prsentation des documents pour les applications les plus exigeantes. La varit des applications l'utilisant en est la preuve. MathML - formules mathmatiques, W3C, 1999, 2001, 2003. Office Open XML - documents bureautiques, Microsoft Office versions 2007 et 2008. OpenDocument - documents bureautiques. SVG - Scalable Vector Graphics, graphiques vectoriels 2D, W3C, 2003. SMIL - Synchronized Multimedia Integration Language, Intgration multimdia, W3C, 1998, 2005. XSL-FO - eXtensible Stylesheet Language - Formatting Objects, langage extensible de stylage - formatage d'objets, W3C, 2001. X3D - 3D multimdia, consortium Web3D.
Organisation d'un document au format OpenDocument : content.xml (contenu), styles.xml (apparence), meta.xml ( propos du document)

Langages de programmation
Dans de nombreuses applications, il est parfois pratique de dvelopper un langage spcialis, usage local. Avec un schma, un dialecte XML dispose d'une grammaire (un peu comme BNF). En guise de compilateur, il suffit par exemple d'une transformation XSLT qui gnre du code Java, comme pour une bibliothque de balises (taglibs). Cet exemple montre comment la syntaxe XML permet de dfinir des langages de programmation. En thorie, la structure en arbre d'XML permet de reprsenter la hirarchie d'un programme objets, ou l'imbrication des instructions d'un langage impratif. En pratique, les boucles sont le cas limite partir duquel XML devient trop verbeux. Par contre, cette criture est remarquablement adapte aux syntaxes dclaratives (configuration, dfinition d'interface), et mme, popularise les algorithmes fonctionnels (XSLT, logique d'une application web). Il en rsulte que l'on trouve de plus en plus d'XML dans les logiciels. Dans certains frameworks de dveloppement web, il est possible de monter une application complte et complexe, en n'ditant que du XML. XSLT - Extended Stylesheet Language Transformations, transformation de document XML, W3C, 1999. XQuery - requte et transformation XML, W3C, 2005. ANT - scripts de compilation, ASF. Servlet - serveur d'application Java, configuration et logique fonctionnelle, Sun Microsystems. Log4j [35] - log for Java, configuration d'une bibliothque d'historique, 1996, 1999-2006, ASF. UIML - User Interface Markup Language, dfinition d'interface utilisateur graphique, OASIS, 1997. XUL - XML-based User interface Language, dfinition d'interface, Mozilla, 2000. XAML - dfinition d'interface, Windows Vista, 2006. MXML, Flex - dfinition d'interface, Macromedia. Apache XSP - eXtensible Server Pages - gnration de documents XML ct serveur.

Extensible Markup Language

12

Protocoles d'changes
Un protocole spcifie l'change de contenus et d'instructions, entre un client et un serveur. HTTP est un modle 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 crer un nouveau protocole. XForms - formulaires web (W3C) OAI - Open Archive Initiative Protocole Archives ouvertes, 2000, 2002 (OAI) SOAP - RPC par HTTP (W3C) WSDL - Services web (W3C) WebDAV - Lecture/criture distante par HTTP (IETF) Jabber/XMPP - Messagerie instantane et prsence, multimdia (IETF)

Langages associs
Les langages associs XML sont des syntaxes qui ne sont pas en XML mais trs attaches XML. CSS illustrera bien la notion. Il peut tre contenu dans un attribut (@xhtml:style), dans un lment (<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 spcification entirement ddie XML, mais qui est justement sans lments 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 requte. NB: XQuery possde 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? [36] Quelle est l'tape suivante pour XML ? Il rpondit d'abord que cela revenait demander quelle est l'tape suivante pour le texte ASCII ou pour les fichiers lignes dlimites. 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 reprsenter beaucoup de choses ne signifie pas que ce soit toujours la forme la plus adapte, chaque utilisation a ses cas limites. Ainsi l'arbre bute sur un motif simple : l'intersection. Considrez 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 reprsentation 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 dtail se dmultiplie dans les applications WYSIWYG qui produisent du XML (traitement de texte, SVG), rendant la source gnre de moins en moins lisible par un humain. Ce dtail amnera peut-tre un nouveau format. Selon James Clark en 2001, la nouveaut ne viendrait plus du format, mais de l'intgration applicative pour le traiter.

Extensible Markup Language

13

Outils et processus XML


XML a dsormais prouv qu'il tait une syntaxe trs gnrique de balisage, propre de nombreux usages. Cette russite s'explique par des implmentations concurrentes de nombreuses interfaces de programmation (API) prcisment spcifies. Comment entre-t-il dans un processus applicatif ? Pour dtailler ces tapes, considrons le processus le plus simple, accessible depuis quelques annes dans Internet Explorer ou Firefox. Ces navigateurs permettent de consulter des fichiers dans un XML smantique (qui ne contient que des contenus, sans prsentation), et de les voir comme des pages accompagnes de couleurs et de navigation. Ils sont transforms par le client, l'aide d'une feuille XSLT. Prenons par exemple le site de Norman Walsh [37][38]. 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 prsentation. La page apparente est le rsultat d'une transformation, signale 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 immdiat, il est intressant de le dtailler, car on le retrouve dans des applications XML plus complexes. 1. produire : le document DocBook doit avoir t produit ou rsulter d'un import ; 2. entre : dans le navigateur, un parser lit le fichier XML pour construire un objet informatique, et vrifie 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 nuds ; 5. validation : le document peut tre valid, pour vrifier que sa structure est conforme au schma docbook ; 6. sortie : le navigateur s'occupe de rendre le rsultat 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 expliques pour montrer comment elles peuvent apparatre dans d'autres contextes applicatifs plus complexes.

Exporter et Produire
Une organisation qui a dj son systme d'informations qui n'est pas base sur XML peut se demander comment produire du XML. Il existe de nombreuses manires d'exporter et de produire du XML, afin de rentrer dans une chane de processus XML. Traitement de texte, la plupart des logiciels bureautiques proposent un export XML, quand ils ne sont pas nativement XML (LibreOffice, OpenOffice.org, Microsoft Word). Le plus simple est parfois d'enregistrer en HTML, rcuprable 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 schma attendu. Dans le cas en introduction, Norman Walsh utilise un simple diteur de texte, emacs.

Extensible Markup Language

14

Parseurs et interfaces de programmation (API)


Avant d'entrer dans un processus XML, un contenu doit tre xmlis . Cette opration est effectue par un processeur XML. Les parseurs les plus rpandus sont : MSXML - Microsoft Core XML Services, le parseur XML Microsoft, 2000-2006, intgr au systme d'exploitation Windows, accessible aux langages Microsoft, notamment en JavaScript sur le navigateur Internet Explorer. libxml2 [39] - Le processeur XML libre du systme d'exploitation linux, accessible en C , Python [40], PHP[41], et en Ruby[42] Xerces [43] - XML Java Parser, le parseur XML par dfaut d'une machine virtuelle Java, accessible en Java Expat [44] - Le parseur XML de James Clark, notamment embarqu par les navigateurs mozilla (firefox). VTD-XML [45] Il en existe beaucoup d'autres, en particulier en Java, adapts diffrents cas particuliers : ouvrir une API plus simple, accepter des documents mal forms comme HTML, traitements plus simples (notamment pour les documents longs). Une fois xmlis , un document est accessible diffrents langages, selon des interfaces de programmation standardises. On distingue gnralement l'approche DOM, modle objet en mmoire, et l'approche SAX, gnration d'vnements. DOM, Document Object Model, constitue un objet en mmoire de la totalit d'un document XML. Cette API permet l'accs direct tous les nuds de l'arbre (lments, texte, attributs), pour les lire, ou les modifier. Il est par exemple trs utilis sur les navigateur web avec JavaScript. Cette norme est crite par le W3C. SAX, Simple API for XML, est une alternative intressante DOM pour le traitement de documents longs. Quand un document entre dans un processeur XML, du code SAX peut capturer des vnements, comme l'ouverture et la fermeture d'une balise, afin par exemple, d'crire dans une base de donnes. l'inverse, il est possible de gnrer des vnements SAX, par exemple partir de la lecture d'une base de donnes, afin de produire un document consomm par une autre tape d'un processus XML. D'autres API existent, comme JDOM(en), dom4J (Java), ou StAX. Il n'est toutefois pas ncessaire 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
La transformation est l'tape d'un processus XML qui prend un document dans un certain schma pour le transposer dans un autre espace de noms. L'exemple en introduction permet de bien comprendre l'opration. Soit un document textuel qui ne comporte que du contenu. Il sera ncessaire de lui ajouter au moins de la navigation avant de le diffuser sur Internet ; on en voudra aussi une version imprime (pdf). La facilit de transformer un document XML, notamment avec XSLT, est une raison importante pour choisir ce format.

Extensible Markup Language

15

Inclusions
Un document XML peut tre constitu de plusieurs fichiers. Il y a deux normes actuellement concurrentes. les entits externes[46], issues de SGML, rsolues a priori par un parseur validant, avant tout traitement du document. xinclude[47], un lment XML ddi, pouvant tre trait comme une tape spare. Les spcifications et les implmentations privilgient maintenant xinclude, bien que son adoption ait pu tre discute[48]. Considrons 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 matre qui assemble toutes les rfrences. En entits, cela s'explique ainsi. <!DOCTYPE catalogue [ <!ENTITY article001 SYSTEM "articles/article001.xml"> <!ENTITY article002 SYSTEM "articles/article002.xml"> ]> <!-- Un exemple d'inclusion par rsolution d'entit externe --> <catalogue xmlns="http://exemple.net/ns"> <titre>catalogue</titre> &article001; &article002; </catalogue>

On remarquera que les entits sont dclares en entte de document, puis appeles par une criture du type &entit;. Cette syntaxe est initialement prvue pour des raccourcis, afin de factoriser l'criture de variables comme un nom de produit ou une socit. Ce mcanisme a t tendu pour rsoudre les problmes d'encodage en ASCII avant l'Unicode. Ce sont les entits caractre comme &eacute;=&#E9;=. Pour le cas d'une inclusion d'un fichier, cela demande deux dclarations, celle du lien, celle de son appel. Ce moyen reste massivement employ par les socits qui ont connu SGML, d'autant que son support est beaucoup plus gnralis que celui d'xinclude. La rsolution a priori des inclusions peut avoir des inconvnients, en particulier pour des documents matre trs lourds que l'on peut vouloir travailler sans leur dpendances. Xinclude [49] permet cela, ainsi que de gnrer 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.

Extensible Markup Language

16

Validation
La validation est l'opration automatique qui vrifie la conformit d'un document XML son schma. Elle a pour but de dlivrer des messages comme il n'y a pas de titre au chapitre 5, ou bien, la date de fabrication est dans le futur. La prcision et la convivialit de cette vrification dpendent de la syntaxe utilise. En SGML, la validation s'effectuait toujours avant l'entre 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) dclars d'une seule manire l'intrieur du document XML (la dclaration DOCTYPE, Type de document). La pratique a montr que la validation n'est pas toujours ncessaire, et mme, contre performante. Dans d'autres cas, plusieurs tapes de validation peuvent tre utiles, par exemple, une pour vrifier la structure de l'arbre XML, une autre pour vrifier les liens. L'volution va vers une tape de validation distincte, dclare l'extrieur du document, et gre selon les besoins du logiciel. Les parseurs XML gardent l'ancien usage de conserver les bibliothques logicielles de validation. Cependant la fonctionnalit peut tre dbranche, ou appele sparment. Il existe aussi des bibliothques uniquement ddies la validation. Le dploiement actuel rend la validation XML nativement accessible la plupart des systmes, et dans la plupart des langages de programmation. MSXML - Microsoft Core XML Services, validation DTD et XML Schema. libxml2 [39] - Validation DTD et Relax NG (le support XML Schema est partiel, surtout pour le typage de donnes au sein de Relax NG). Xerces [43] - XML Java Parser, validation DTD et XML Schema. Jing [50] - 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 trs prcise 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 implmentation Schematron.

Sorties
Dans le cas en introduction, le navigateur est le consommateur final de XML, sous la forme de xhtml. Chaque langage XML de reprsentation (XSL-FO, SVG) peut tre consomm par une application utile l'utilisateur. Certains formats peuvent tre traits par plusieurs bibliothques logicielles. (en) Apache Batik [51], API Java traitant des documents SVG (exemple : export JPG, PNG). (en) FOP, le srialiseur XSL-FO d'Apache [52] (en) XEP [53], processeur XSL-FO et SVG commercial, RenderX.

Tuyaux (XML Pipeline)


Les tapes dcrites plus haut sont en cours de normalisation par le W3C (XML Processing Model Working Group [54] ). La terminologie [55] est officialise. Ces ides ont dj des implmentations concurrentes dans plusieurs frameworks (Apache Cocoon, Orbeon Presentation Server). L'ide de tuyaux XML existe avant d'avoir t spcifie. Un tuyau est une entre (Input Document), une sortie (Output Document), et une chane d'tapes (Step). Ces tapes traitent un flux XML (XML Information Set, Infoset [56]). La notion de flux d'information n'est pas spcifique XML, on la retrouve grande chelle dans l'informatique rseau, ou trs simplement en ligne de commande Unix, avec la barre verticale, pipe en anglais). L'originalit rside dans la structuration propre XML. Les octets traits par ces tuyaux sont des documents structurs. Les tapes sont standardises et combinables. Elles sont dfinies par des composants (components) paramtrables (parameter), le tout en XML.

Extensible Markup Language

17

Notes et rfrences
Notes :
[1] http:/ / www. w3. org/ [2] http:/ / www. w3. org/ TR/ 2008/ REC-xml-20081126/ [3] http:/ / www. w3. org/ TR/ 2006/ REC-xml11-20060816 [4] Ce nom est une ide de James Clark, elle est explique par Tim Bray(en) dans sa spcification annote (http:/ / www. xml. com/ axml/ notes/ TheCorrectTitle. html). Comme en anglais la lettre X se prononce eks , elle peut tre utilise dans les sigles pour abrger un ou plusieurs mots commenant par ce mme son comme eXtensible ou eXperience (XP). Plusieurs langages ont ainsi affich leur parent avec XML en s'adjoignant un X, comme XHTML. [5] Le groupe de travail a t l'origine appel le Editorial Review Board." Les membres la premire dition sont numrs la fin de la premire recommandation XML, W3C (http:/ / www. w3. org/ TR/ 1998/ REC-xml-19980210) 1998.

(en) Rapports du W3C SGML ERB pour le SGML WG Et du W3C XML au XML ERB SIG (http://www.w3.org/XML/9712-reports. html), rapport compil par C. M. Sperberg-McQueen, 4 dcembre 1997 [7] (fr) interview (http:/ / www. journaldunet. com/ solutions/ itws/ 040924_it_paoli. shtml), journal du net, septembre 2004 [8] http:/ / www. xml. com/ axml/ testaxml. htm
[6] [9] (en) W3C Working Draft (http:/ / www. w3. org/ TR/ WD-xml-961114. html) 14-Nov-96 [10] http:/ / pages. videotron. com/ fyergeau/ w3c/ xml10/ REC-xml-19980210. fr. html [11]

(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) (http://www.w3.org/TR/1998/REC-xml-19980210) (en) Thinking XML: The XML flavor of HTML5 (http://www.ibm.com/developerworks/xml/library/x-think45/index.html)
http:/ / docbook. org/ tdg5/ en/ html/ section. html le texte (http:/ / www. w3. org/ TR/ REC-xml/ #syntax) espaces vides (http:/ / www. w3. org/ TR/ REC-xml/ #sec-white-space) commentaires (http:/ / www. w3. org/ TR/ REC-xml/ #sec-comments) prologue (http:/ / www. w3. org/ TR/ REC-xml/ #sec-prolog-dtd) Instructions de traitement (http:/ / www. w3. org/ TR/ REC-xml/ #sec-pi) sections d'chappement (http:/ / www. w3. org/ TR/ REC-xml/ #sec-cdata-sect) http:/ / www. w3. org/ TR/ 1999/ REC-rdf-syntax-19990222/ http:/ / www. la-grange. net/ w3c/ REC-rdf-syntax/

[12] http:/ / www. w3. org/ TR/ 1998/ REC-xml-19980210 [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47]

(en) XHTML Modularization 1.1 (http://www.w3.org/TR/xhtml-modularization/), W3C Working Draft 5 July 2006
http:/ / www. tei-c. org/ http:/ / sqlzoo. net/ http:/ / www. w3. org/ TR/ xmlschema-2/ http:/ / www. w3. org/ TR/ xpath20/ http:/ / www. w3. org/ TR/ xslt20/ http:/ / dublincore. org http:/ / www. loc. gov/ standards/ mods/ http:/ / dtdparse. sourceforge. net/ http:/ / www. docbook. org/ tdg5/ en/ html/ docbook. html http:/ / www. tei-c. org/ release/ doc/ tei-p5-doc/ html/

(en) Eric van der Vlist, RELAX NG, W3C XML Schema Type Library , O'Reilly & Associates, 2003 (ISBN978-0-596-00421-7)
http:/ / logging. apache. org/ log4j/ http:/ / www. ddj. com/ 184404686 http:/ / norman. walsh. name/ 2006/ 09/ 28/ xprocfpwd. xml Ou celui de Jeni Tennison (http:/ / www. jenitennison. com/ index. xml) et de plusieurs autres. http:/ / xmlsoft. org/ http:/ / xmlsoft. org/ python. html http:/ / fr. php. net/ libxml http:/ / libxml. rubyforge. org/ http:/ / xerces. apache. org/ xerces2-j/ http:/ / expat. sourceforge. net/ http:/ / vtd-xml. sourceforge. net entits externes (http:/ / www. w3. org/ TR/ REC-xml/ #sec-external-ent)

(en) xinclude (http://www.w3.org/TR/xinclude/)

[48] (en) Norman Walsh (http:/ / norman. walsh. name/ ), XInclude, xml:base, and validation (http:/ / norman. walsh. name/ 2005/ 04/ 01/ xinclude). [49] http:/ / www. w3. org/ TR/ xinclude/

Extensible Markup Language


[50] [51] [52] [53] [54] [55] [56] http:/ / www. thaiopensource. com/ relaxng/ jing. html http:/ / xml. apache. org/ batik/ index. html http:/ / xmlgraphics. apache. org/ fop/ index. html http:/ / www. renderx. com/ http:/ / www. w3. org/ XML/ Processing/ http:/ / www. w3. org/ TR/ xproc-requirements/ #terminology http:/ / www. w3. org/ TR/ xml-infoset/

18

Rfrences : (en) Extensible Markup Language (XML) 1.0 (http://www.w3.org/TR/REC-xml/#sec-white-space), W3C Recommendation 16 August 2006 : (mul) Autres :

Sources et contributeurs de larticle

19

Sources et contributeurs de larticle


Extensible Markup Language Source: http://fr.wikipedia.org/w/index.php?oldid=76163510 Contributeurs: 007, 0A0, 16@r, Ahbon?, Al Maghi, Alkarex, Alno, Amoreau, Archibald, Arnaud.Serander, Auxerroisdu68, BMR, Badmood, BaroqueW, Bayo, BenoitL, Bigor, Billitch, Bob08, Boly38, Bombyx, Boretti, Brion VIBBER, Brunetton, Bub's, Buzz, Cedric.ch, ChF, ChrisJ, Chtit draco, Citare, ClementSeveillac, Coyote du 86, Crochet.david, Cur, Daniel.bourrion, DanielLemire, Darkoneko, Derwin, Descartes, Didup, Dirac, DocteurCosmos, Drongou, Ducloy, EDUCA33E, Eamoureux, Elg, Emericpro, Erasmus.new, Ethaniel, F-fff, FlashX, Flo Ka, Francois 1340, Francois Boulogne, Francois Trazzi, Frdric Glorieux, FvdP, GLec, GML, GitiZone, Glorieux, Golfestro, Gribeco, Guisquare, Gz260, Herman, Hubert Roksor, Inisheer, Isaac Sanolnacov, JB, Jarfe, Jef-Infojef, Jerome66, JihemD, Jmfayard, Jmh2o, Jpm2112, Kanabiz, Kassus, Kelson, Kerflyn, Keul, Kilith, Korg, Koyuki, LLB, Lastpixl, Laurent75005, Leafcat, Leag, Lgd, Litlok, Loup meraude, Ludovic89, ManuD, Marc Mongenet, Medhist, Medium69, Meszigues, MetalGearLiquid, Meuble2001, Michel BUZE, Misdre, Mwipliez, Nataraja, Nias, Nicolas Lardot, Nicolas Ray, Nono64, Nyco, Ollamh, Orthogaffe, Oyp, Pautard, Pelote de laine, Pfv2, Phe, Philias, Philibre, Pic-Sou, Pierre Jaquet, Pierrot106, Q-rieux, Riba, Richardbl, Rigou, Robert Weemeyer, Romainhk, Romanc19s, Roucas, Rpa, Ryo, S0l0xal, STyx, Sacamol, Sam Hocevar, Sanao, Sbgodin, Selecto, Shawn, Shiningfm, Silex6, Skull33, Sputnick, Stuart Little, Sweet Million, Sylvain d'Altar, Sylvestre, THA-Zp, Tarquin, Tensai, The RedBurn, Titouc330, Tornad, Touam, Traroth, Uld, Vargenau, Vberger, Vincent Aravantinos, Vincent Ramos, Vincent.vaquin, W7a, Wikinade, Witoki, Wizad, Xafran, Xmlizer, script de conversion, 230 modifications anonymes

Source des images, licences et contributeurs


Image:XML fr.svg Source: http://fr.wikipedia.org/w/index.php?title=Fichier:XML_fr.svg Licence: Creative Commons Attribution-Sharealike 3.0 Contributeurs: User:Q-rieux Fichier:ODF file - french.png Source: http://fr.wikipedia.org/w/index.php?title=Fichier:ODF_file_-_french.png Licence: Creative Commons Attribution-Sharealike 3.0 Contributeurs: Al Maghi

Licence
Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/

Das könnte Ihnen auch gefallen