xml

24
Extensible Markup Language 1 Extensible Markup Language Extensible Markup Language Extension de fichier : .xml Type MIME : application/xml, text/xml Développé par : World Wide Web Consortium [1] Type de format : langage de balisage Standard(s) : 1.0 (5 e édition) [2] 1.1 (2 e édition) [3] Spécification : Format ouvert Un exemple de fichier XML. Le document représente ici une recette de cuisine. XML (Extensible Markup Language (en) [4] , « langage de balisage extensible ») est un langage informatique de balisage générique. Il sert essentiellement à stocker/transférer des données de type texte Unicode structuré en champs arborescents. 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 : XHTML, SVG, XSLT, etc. Son 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 de 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. Cette syntaxe est reconnaissable par son usage des chevrons (< >). 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é : « 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) [5] , « 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) [6] . 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) [7] , « XML a été conçu

Upload: firstbook1

Post on 18-Dec-2015

6 views

Category:

Documents


0 download

DESCRIPTION

xml

TRANSCRIPT

  • Extensible Markup Language 1

    Extensible Markup LanguageExtensible Markup Language

    Extension de fichier : .xml

    Type MIME : application/xml, text/xml

    Dvelopp par : World Wide Web Consortium [1]

    Type de format : langage de balisage

    Standard(s) : 1.0 (5e dition) [2] 1.1 (2e dition) [3]

    Spcification : Format ouvert

    Un exemple de fichier XML. Le document reprsente ici une recettede cuisine.

    XML (Extensible MarkupLanguage (en)[4] , langagede balisage extensible ) estun langage informatique debalisage gnrique. Il sertessentiellement stocker/transfrer desdonnes de type texte Unicodestructur en champsarborescents. Le World WideWeb Consortium (W3C),promoteur de standardsfavorisant l'changed'informations sur Internet,recommande la syntaxe XML pour exprimer des langages de balisages spcifiques. Denombreux langages respectent la syntaxe XML : XHTML, SVG, XSLT, etc.

    Son objectif initial est de faciliter l'change automatis de contenus entre systmesd'informations htrognes (interoprabilit). XML est une simplification de SGML dont ilretient les principes essentiels comme : la structure d'un document XML est dfinissable et validable par un schma, un document XML est entirement transformable dans un autre document XML.Cette syntaxe est reconnaissable par son usage des chevrons (< >).

    Objectif initial L'objectif initial de XML est expliqu au dbut de la spcification du 10fvrier1998, la phrase est toujours d'actualit : 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) [5], Son but est de permettre du SGML gnrique d'tre transmis, reu et trait sur le web de la mme manire que l'est HTML aujourd'hui. (fr) [6]. 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) [7], XML a t conu

  • Extensible Markup Language 2

    pour une facilit de mise en uvre (fr) [8].Un groupe de travail a runi au sein du World Wide Web Consortium (W3C) de grandsnoms dans le monde SGML (dont Jon Bosak, James Clark, etc.) ; il est l'origine de laspcification signe par : Michael Sperberg-McQueen, alors diteur en chef de la DTD TEI ; Tim Bray, qui a notamment conduit l'informatisation du Oxford English Dictionary ; Jean Paoli (Microsoft).Tim Bray, dans son Annotated XML Specification (en) [9] la spcification XML annote ,explique plus longuement le contexte qui a rendu possible ce standard, en mentionnantnotamment les contributions dcisives de James Clark. la lumire des annes passes,cette spcification a rempli l'objectif qu'elle se fixait, XML a t largement suivi et favorisel'interoprabilit. Plusieurs choix ont contribu ce succs. 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'ontrouve encore parfois en HTML (exemple : pour ). En 1996, apparat la version 2.0d'Unicode, XML adoptera cet encodage par dfaut.

    Dlimitation explicite du contenu - SGML tait orient pour la saisie humaine detextes structurs, sur des machines moins puissantes qu'aujourd'hui. Il autorisaitbeaucoup de raccourcis. HTML conserve par exemple les balises fermeture optionnelle(exemple : ). Ces possibilits compliquaient l'implmentation de la norme. En XML,toute balise ouverte doit tre ferme.

    Espace de noms - SGML insistait surtout sur la validation, sur la conformit unmodle contraignant. XML prvoyait un usage plus souple de l'information structure, ilspcifie un moyen de faire cohabiter plusieurs vocabulaires de balises dans un mmedocument.

    Au del de HTML, le W3C avait d'autres projets pour lesquels une syntaxe plus facilementextensible tait ncessaire. Ces directions ont annonc une trs grande plasticit de XMLpour de nombreux usages. SGML tait une technologie de niche, sa simplification l'auniversalis 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 desdiffrentes versions d'Unicode.Le W3C recommande aux processeurs XML de reconnatre les deux versions, bien que lapremire version soit beaucoup plus rpandue que la seconde.

  • Extensible Markup Language 3

    Comparaison d'autres formats Pour savoir quoi ressemble du XML, le mieux est certainement d'en voir. Commenonspar un exemple simplifi. Il propose une transposition du dbut de cet article dans unlangage XML appliqu la documentation technique, DocBook.

    Extensible Markup Language XML (Extensible Markup Language, langage de balisage extensible )...

    Dans ce code, chacun peut identifier des portions de texte (exemple : Extensible, XML) etdes mots cls encadrs de chevrons () : , , Ce document estouvert par le mot cl , et clos par . Notez la barre oblique, elle signifiela fermeture de la balise article. En XML, une balise doit toujours tre ferme. l'intrieurde cet article, il y a un titre (), un paragraphe (), et un acronyme().Ce qui est spcifique XML, c'est le choix des chevrons pour identifier les balises, etl'obligation de les fermer. Les mots cls ne sont pas dfinis par la norme XML, mais par levocabulaire choisi. En XHTML, l'lment racine aurait t , en XSLT, cela peuttre ou . Ceci illustre la nature extensible d'XML.Ce n'est pas un jeu de noms rservs (exemple : echo, for, public, function, class), maisplutt des caractres rservs permettant de dfinir un langage .Cet exemple illustre une autre spcificit de ce format. part SGML, peu d'autres syntaxespermettent 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 levoudra peut-tre en bleu). Cela fait d'XML un excellent format pour conserver des textes oudes donnes. Pour s'en convaincre, regardons ce que la mme information donne dansd'autres formats.

    Formats binaires (un exemple Microsoft Word) Les logiciels, surtout pour le grand public, aboutissent gnralement des fichiers. Leformat se soucie d'abord d'tre fiable et performant, mais est-il changeable ? Le formatd'enregistrement natif du traitement de texte Word est l'exemple du format binaire le plusdploy[rf.ncessaire]. Il n'est pas lisible par l'humain. Le texte est difficile extraire, le lienavec sa structuration (gras, italique) est difficile reconstruire. Dans la pratique, undocument Word pose beaucoup de problmes 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 _HaJ mHsHtHN @ N T i t r e 1

  • Extensible Markup Language 4

    [ beaucoup d'informations binaires supprimes ] F Document Microsoft Word MSWordDoc Word.Document.8 9q

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

    RTF (Rich Text Format) Afin de favoriser l'change avec d'autres traitements de texte, Microsoft proposa RTF RichText Format format texte riche (1987). Ce n'est pas un format binaire, les commandessont 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 }

    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 sonten 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 amontr qu'il pouvait fonctionner dans des logiciels, mais sa croissante complexit nousinstruit sur ses limites. Il est difficilement extensible, et en tous cas, inutilisable pourstructurer la smantique d'un texte.

    TEXDonald Knuth, auteur de The Art of Computer Programming l'Art de la programmation s'est interrompu en 1977, excd par la mauvaise qualit d'impression de ses ouvrages. Ildveloppa TEX, une syntaxe trs labore destine l'criture humaine, spcialementpuissante pour les quations mathmatiques. On remarquera que RTF lui a repris sessparateurs (\, {, }), 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 enforme des quations complexes. Toutefois, cela reste un langage de programmationd'apparence, et mme avec les macros, il n'est pas conu ds le dpart pour structurer uncontenu indpendamment de sa destination.

  • Extensible Markup Language 5

    wikiUne 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 formatpeut tre appropri pour un seul type de document, mais ce n'est pas une syntaxegnrique et facilement extensible.

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

    Composants d'un document XML : les nudsLa plupart des composants d'un document XML[16] peuvent tre reprsents par un arbre.Ce sont donc des nuds. Ce modle fait d'ailleurs l'objet d'une dfinition trs prcise (DOMDocument Object Model modle objet de document (XML) ), afin de permettre deslangages de programmation de manipuler du XML. Nous nous limiterons numrer lestypes de nuds fondamentaux, que l'on peut identifier dans l'exemple artificiel suivant.

    Texte lment rpt Hirarchie rcursive Texte avecun lmentinclus

  • Extensible Markup Language 6

    La racine du document /En informatique, un arbre a gnralement une et une seule racine (ce qui n'a pasd'anctres). La racine d'un document XML se situe donc derrire tous les nuds (sauf leprologue, qui n'est pas un nud). Dans un langage d'accs un document XML, XPath, laracine du document est note avec la barre oblique /, comme l'arbre d'un systme defichiers Unix.Pour tre bien form, un document XML doit avoir un et un seul lment la racine, parfoisdsign par lment document . La racine accepte aussi les commentaires, et desinstructions de traitement, mais surtout pas de texte.

    Les lments L'lment[17] a un nom, prcisment qualifi, et peut porter tous les types de nuds :attributs, texte, lments Le fait qu'un lment puisse avoir des enfants texte et desenfants lments a beaucoup de consquences pour en faire un format de donnes trssouple (compar par exemple une table relationnelle). La qualification des noms contribueaussi la prcision smantique des contenus baliss.Un exemple de notice bibliographique permettra de mieux montrer le potentiel de ceformat, il utilise le vocabulaire Dublin Core.

    [[Astrix le Gaulois]] [[Astrix chez les Belges]] [[Ren Goscinny]] [[Albert Uderzo]] Text Astrix chez les Belges est un album de bande dessine de la srie Astrix le Gaulois cre par Ren Goscinny et Albert Uderzo. Cet album publi en 1979 est le dernier de la srie crit par Ren Goscinny.

    rptableUne mme proprit peut tre rpte. L'exemple montre comment indiquer qu'unlivre a plusieurs auteurs (dc:creator [18]). Dans un format tabulaire, avec un nombre decolonnes dfini, ce n'est pas impossible, mais moins spcifi.

    ordonn

  • Extensible Markup Language 7

    L'ordre des lments est conserv. Quel que soit le langage employ, un outil XML doitpermettre 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]]").

    hirarchiqueLes lments XML sont imbricables. Ceci rend ce format particulirement adapt reprsenter des arbres. Ici, on s'est limit 2 niveaux (/ex:collection/ex:livre),une collection avec un titre (Astrix le Gaulois), et un exemple d'ouvrage de cettecollection (Astrix chez les Belges). XML permet une rcursivit complte. Parexemple, un livre, ou une thse, peut tre format trs conomiquement avec unlment . La partie 2.3.5 correspondra une structure d'imbricationXML /section[2]/section[3]/section[5].

    mlangeableEnfin, ce qui fait qu'XML est plus qu'un format de donnes, c'est la possibilit demlanger du texte et des lments. L'exemple montre comment le texte de ladescription (dc:description [20]) est enrichi avec des balises XHTML (du gras et un lien ).

    Noms qualifis - Cette souplesse, et l'eXtensibilit de XML est contrle par laqualification des noms. Vous aurez remarqu dans l'exemple de code que la plupart deslments sont des liens. Comme il s'agit de standards, ils disposent d'une documentationofficielle en ligne. Pour une notion commune comme un titre, cela ne semble pasncessaire. Mais pour des noms beaucoup plus ambigus, comme type, il est trs importantde dterminer le vocabulaire dans lequel interprter le mot. Ainsi, Dublin Core est unvocabulaire de mtadonnes bibliographiques, type [23] qualifiera des types de document :Text, Image, Sound Dans un vocabulaire ddi la documentation informatique commeDocbook, type [24] a le sens de type de donnes.xmlns="URI" - En XML, les noms d'lments devraient toujours tre identifis par uneURI. C'est l'objet des attributs xmlns:* sur l'lment racine de l'exemple(xmlns:dc="http:/ / purl. org/ dc/ elements/ 1. 1/ ") et des prfixes sur certainsnoms (dc:type est identifi par l'URI de l'attribut xmlns:dc). Il n'est pas ncessaire ici dedtailler plus cette syntaxe. L'essentiel est de retenir qu'en XML, le nom d'un lment ne sechoisit pas au hasard, qu'il rsulte d'un travail de modlisation, qu'il est prcismentidentifi.

    Le texte Un nud texte[25] n'a pas d'enfants, il est toujours contenu dans un lment. Par dfaut, ilsera trait comme de l'Unicode en UTF-8 ou UTF-16. XML permet de spcifier d'autresencodages dans le prologue (ex. : ). Cesimple choix a dj apport une norme simplification aux problmes d'encodages que l'onrencontre encore en informatique.Le traitement des espaces et sauts de lignes en XML[26] peut apporter quelques surprises.Sous sa forme texte, un fichier XML sera probablement indent par son auteur. Larecommandation n'oblige pas un processeur XML conserver ces espaces non significatifs,sauf instructions particulires (exemple : bloc prformat ). Il en rsulte que letexte XML propos un processeur peut ne pas revenir l'identique aprs traitement, cequi cause des dsagrments dans certaines applications.

  • Extensible Markup Language 8

    texte ml - Dans le cas des textes mls (exemple : du texte en gras dansun paragraphe), l'lment parent a plusieurs enfants texte et lments qui sesuccdent, ce n'est pas le texte qui contient un lment (exemple : p/node()[1]="du texte en", p/node()[2]="gras", p/node()[3]=" dans un paragraphe"). Cette petite remarquen'a d'importance que dans certaines interfaces de manipulation XML (DOM), elle permetaussi de fixer la dfinition.

    Les attributs, Un attribut est un nom et une valeur, la valeur peut tre vide , maispas nulle (cette criture tait permise en SGML, on la rencontreencore parfois propos d'HTML, mais elle n'est pas accepte en XML). Un nom d'attribut ales 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 unlment. Un attribut est unique. La rptition d'un attribut de mme nom sur le mmelment provoquera une erreur du processeur XML. L'ordre des attributs n'est passignificatif, et peut ne pas tre conserv dans certains traitements. et sont quivalents pour un processeur XML, mme s'ils sont critsdiffremment.

    Les commentaires En XML, les commentaires[28] sont dlimits par . Le contenu d'un commentairene sera pas interprt..La chane de caractres --, pour des raisons de compatibilit avec SGML, ne peutapparatre dans le contenu du commentaire.Style - Il est thoriquement possible de traiter le contenu des commentaires XML avec unprocesseur. 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, uneapplication XML ne doit pas s'appuyer sur le contenu des commentaires.

    Le prologueEn XML, le prologue[29] est constitu de la dclaration XML , et dela dclaration de type de document (DOCTYPE). La dclaration XML est obligatoire partirde la version 1.1. La dclaration DOCTYPE avait une grande importance en SGML. Elleattache le document trait par un processeur son schma (DTD, Document TypeDefinition, Dfinition de Type de Document ), afin de le valider, et d'interprter certainsraccourcis (les entits). Dsormais, il existe plusieurs langages de validation, et parfoisplusieurs manires de les attacher. La dclaration DOCTYPE n'a plus la mme importance.

  • Extensible Markup Language 9

    Autres nudsAfin d'tre complet on mentionnera aussi : Les instructions de traitement[30] , , des nuds destins aux logiciels traitant le XML ;

    Les sections d'chappement[31] , ne sera pas considr comme unlment ]]>.

    Utilisations et langages drivs SGML tait une syntaxe gnrique, permettant de dfinir des langages spcialiss, commeHTML, mais il tait surtout ddi au balisage de documents. En simplifiant SGML, lesconcepteurs d'XML prvoyaient d'largir l'usage des chevrons (< >) bien d'autresemplois, comme par exemple, la programmation. Les premiers langages bass sur XML parle W3C dessinent plusieurs directions d'utilisation. 1999, RDF Resource Description Framework(en) [32] cadre de description de ressource

    (fr) [33]. 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 destyle, transformations . Afin d'employer XML, il faut pouvoir le transformer. James Clarkavait crit un langage quivalent pour SGML (DSSSL, 1996), avec XSLT, il propose unesyntaxe XML, permettant par exemple de transformer un contenu XML vers (x)HTML, ouXSL-FO.

    2000, XSL-FO eXtended Stylesheet Language - Formatting Object langage XML defeuilles de style - Formatage d'objets . XSL-FO est un langage de description dedocument permettant de composer un livre, ou un document PDF. C'tait un complmentindispensable XML pour les industries de l'dition.

    Enfin, il fallait une nouvelle syntaxe schma tenant compte des espaces de noms pourremplacer 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 schmad'un document XML. Ceci annonce la varit des utilisations de cette syntaxe. Quelquesannes 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 (ouacceptant une expression XML). La liste des langages plus bas repre quelquesspcifications marquantes. Elles ont fait date dans le monde XML. Les succs, ou lescritiques, permettent aussi de montrer quoi XML est bon, et l o il est parfois discut.

  • Extensible Markup Language 10

    Balisage de documentLe balisage de document est le mtier initial d'XML. Les DTD SGML publiques comme TEIet Docbook l'ont adopt. XML aurait pu permettre l'apparition de nombreux autresschmas. On assiste plutt l'apparition de vocabulaires spcialiss, et combinables l'exemple de la modularisation XHTML[34] : 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 [35]. EAD Encoded Archival Description, description archivistique, 1993, 2002, Bibliothque

    du Congrs. NITF News Interchange Text Format, change d'articles de presse, 2000, 2002, IPTC. NewsML 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 demtadonnes. L'exemple d'un transfert d'informations entre base de donnes relationnellespermettra 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 automatiseentre les partenaires. Que faire lorsque les tables source et destination n'ont pas desstructures identiques ? Pour cette raison, on peut prfrer des changes en SQL ( la foislangage de dfinition de donnes et langage de manipulation de donnes). Cependant,malgr de nombreux efforts de normalisation, SQL comporte beaucoup de risquesd'incompatibilit entre les implmentations [36]. XML est une solution plus robuste. Onpeut en constater l'efficacit sur Internet avec la Syndication. Il n'y a pas d'exemple connud'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 pourchaque cellule (une fois pour un attribut, deux fois pour un lment). Le poids du fichiergnr est suprieur celui d'un fichier CSV. Dans des contextes o la bande passante estcoteuse (exemple : tlphonie mobile), cela n'a pas sembl poser de problme (WML), carces rptitions se compressent trs bien (zip).Traitement lourd ? - Traiter du XML demande des bibliothques ddies (processeurXML). Cela n'ajoute pas vraiment du temps de dveloppement supplmentaire, du moinspour des quipes formes. Pour des petites tches, un parseur ligne ligne est parfois plussimple. Mais si la donne se destine se complexifier, s'changer plus largement, il vautmieux 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

  • Extensible Markup Language 11

    (types de donnes XML Schema [37], XPath 2.0 [38], XSLT 2.0 [39]) avec des ractions dumonde 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 [40]) MODS [41] - 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

    Langages de schmaUn processus XML complet comporte une tape de validation des documents. C'est le rled'un schma de dfinir ces rgles de validit. Faut-il que ce schma soit en XML ? Laquestion ne se posait pas en SGML, qui connaissait surtout les DTDs, une syntaxe texte. Leslimites rencontres alors concernaient surtout la documentation des lments et attributsdclars(en) [42]. La documentation est trs importante pour la russite d'un standard XML.Celles de Docbook [43] ou TEI [44] constituent des livres complets, avec mme des versionsimprimes.Ces communauts ont attendu avec impatience ce que donnerait XML Schema. Lesnombreux outils de documentation automatiques qui sont apparus, avec un simple jeud'XSLTs, 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 tropde concessions ? Toujours est-il que malgr le nombre d'diteurs derrire le W3C, lacommunaut est trs intresse par Relax NG, de James Clark. Ce modle accepte unesyntaxe XML, et depuis 2003, propose aussi une forme compacte, textuelle, qui n'est pasXML.Autrement dit, il n'y a plus de rponse unique. Un schma XML peut se dfinir dans unvocabulaire XML, ou autrement. L'volution actuelle est de pouvoir combiner plusieurslangages de schmas, notamment le typage fort d'XML Schema [45], avec des motifs XPathpour Schematron, dans du Relax NG[46] . 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.

  • Extensible Markup Language 12

    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 aprouv qu'il pouvait conserver la prsentation des documents pour les applications les plusexigeantes. La varit 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 mathmatiques, W3C, 1999, 2001, 2003. SMIL - Synchronized Multimedia Integration Language, Intgration multimdia, W3C,

    1998, 2005. X3D - 3D multimdia, consortium Web3D.

    Langages de programmation Dans de nombreuses applications, il est parfois pratique de dvelopper un langagespcialis, usage local. Avec un schma, un dialecte XML dispose d'une grammaire (unpeu comme BNF). En guise de compilateur, il suffit par exemple d'une transformation XSLTqui gnre du code Java, comme pour une bibliothque de balises (taglibs). Cet exemplemontre 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'unprogramme objets, ou l'imbrication des instructions d'un langage impratif. En pratique, lesboucles sont le cas limite partir duquel XML devient trop verbeux. Par contre, cettecriture est remarquablement adapte aux syntaxes dclaratives (configuration, dfinitiond'interface), et mme, popularise les algorithmes fonctionnels (XSLT, logique d'uneapplication web).Il en rsulte que l'on trouve de plus en plus d'XML dans les logiciels. Dans certainsframeworks de dveloppement web, il est possible de monter une application complte etcomplexe, en n'ditant que du XML. XSLT - Extended Stylesheet Language Transformations, transformation de document

    XML, W3C, 1999. XML Query - requte et transformation XML, W3C, 2005. ANT - scripts de compilation, ASF. Servlet - serveur d'application Java, configuration et logique fonctionnelle, Sun

    Microsystems. Log4j [47] - log for Java, configuration d'une bibliothque d'historique, 1996,

    1999-2006, ASF. UIML - User Interface Markup Language, dfinition d'interface, 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.

  • Extensible Markup Language 13

    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 baliserdes contenus et d'crire des instructions de programmation. L'universalisation de laconnexion HTTP comme des processeurs XML explique pourquoi XML devient une solutioncourante 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 (), ou reli un document XML par une instruction detraitement (). XPath fournit unautre exemple de spcification entirement ddie XML, mais qui est justement sanslments 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 forXML? [48] 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 lignesdlimites. XML est en effet devenu un format aussi universel qu'Unicode pour structurerdes contenus, comme un esperanto de l'informatique.Qu'un arbre XML permette de reprsenter beaucoup de choses ne signifie pas que ce soittoujours la forme la plus adapte, chaque utilisation a ses cas limites. Ainsi l'arbre bute surun motif simple : l'intersection. Considrez ce texte tuil : en gras et en italique. Le etappartient deux zones, chose simulable mais pas native dans un arbre. On peut en faireune reprsentation XHTML comme ceci en gras et enitalique, dont on voit d'ailleurs qu'elle n'est pas unique, car la notion d'intersectionest 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 unhumain. Ce dtail amnera peut-tre un nouveau format.Selon James Clark en 2001, la nouveaut ne viendrait plus du format, mais de l'intgrationapplicative pour le traiter, c'est encore vrai en 2007.

  • Extensible Markup Language 14

    Outils et processus XMLXML a dsormais prouv qu'il tait une syntaxe trs gnrique de balisage, propre denombreux usages. Cette russite s'explique par des implmentations concurrentes denombreuses interfaces de programmation (API) prcisment spcifies. Comment entre-t-ildans un processus applicatif ?Pour dtailler ces tapes, considrons le processus le plus simple, accessible depuisquelques annes dans Internet Explorer ou Firefox. Ces navigateurs permettent deconsulter des fichiers dans un XML smantique (qui ne contient que des contenus, sansprsentation), 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 deNorman Walsh [49][50] . La source de la page servie ressemble ceci :

    XProc: An XML Pipeline Language

    Ce n'est pas du XHTML (ou du HTML) mais du DocBook. Les navigateurs ne sont pascapables de lire cette grammaire pour lui donner de la prsentation. La page apparente estle rsultat d'une transformation, signale au navigateur par l'criture . Le fichier browser.xsl explique commenttransformer du DocBook en HTML. Le processus est immdiat, il est intressant de ledtailler, 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 XMLcomplet. Elles vont maintenant tre expliques pour montrer comment elles peuventapparatre dans d'autres contextes applicatifs plus complexes.

  • Extensible Markup Language 15

    Exporter et Produire Une organisation qui a dj son systme d'informations qui n'est pas base sur XML peut sedemander comment produire du XML. Il existe de nombreuses manires d'exporter et deproduire 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 (OpenOffice.org, Microsoft Word). Le plus simpleest parfois d'enregistrer en HTML, rcuprable moyennant un petit traitement. Il suffitde regarder les formats disponibles avec la fonctionnalit Enregistrer sous de sonlogiciel 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.

    Parseurs et interfaces de programmation (API) Avant d'entrer dans un processus XML, un contenu doit tre xmlis . Cette opration esteffectue 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 enJavaScript sur le navigateur Internet Explorer.

    libxml2 [51] - Le processeur XML libre du systme d'exploitation linux, accessible en C ,Python [52], PHP [53], et en Ruby [54]

    Xerces [55] - XML Java Parser, le parseur XML par dfaut d'une machine virtuelle Java,accessible en Java

    Expat [56] - Le parseur XML de James Clark, notamment embarqu par les navigateursmozilla (firefox).

    VTD-XML [57]

    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, traitementsplus simples (notamment pour les documents longs). Une fois xmlis , un document est accessible diffrents langages, selon des interfacesde programmation standardises. On distingue gnralement l'approche DOM, modleobjet 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 lesnavigateur web avec JavaScript. Cette norme est crite par le W3C.

    SAX, Simple API for XML, est une alternative intressante DOM pour le traitement dedocuments longs. Quand un document entre dans un processeur XML, du code SAX peutcapturer des vnements, comme l'ouverture et la fermeture d'une balise, afin parexemple, d'crire dans une base de donnes. l'inverse, il est possible de gnrer desvnements SAX, par exemple partir de la lecture d'une base de donnes, afin deproduire un document consomm par une autre tape d'un processus XML.

    VTD-XML

  • Extensible Markup Language 16

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

    Transformation La transformation est l'tape d'un processus XML qui prend un document dans un certainschma pour le transposer dans un autre espace de noms. L'exemple en introductionpermet de bien comprendre l'opration. Soit un document textuel qui ne comporte que ducontenu. Il sera ncessaire de lui ajouter au moins de la navigation avant de le diffuser surInternet ; on en voudra aussi une version imprime (pdf). La facilit de transformer undocument XML, notamment avec XSLT, est une raison importante pour choisir ce format.

    InclusionsUn document XML peut tre constitu de plusieurs fichiers. Il y a deux normesactuellement concurrentes. les entits externes[58] , issues de SGML, rsolues a priori par un parseur validant, avant

    tout traitement du document. xinclude[59] , un lment XML ddi, pouvant tre trait comme une tape spare.Les spcifications et les implmentations privilgient maintenant xinclude, bien que sonadoption ait pu tre discute[60] .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 quiassemble toutes les rfrences. En entits, cela s'explique ainsi.

    ]> catalogue &article001; &article002;

    On remarquera que les entits sont dclares en entte de document, puis appeles parune 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. Cemcanisme a t tendu pour rsoudre les problmes d'encodage en ASCII avant l'Unicode.Ce sont les entits caractre comme =E9;=. Pour le cas d'une inclusion d'un fichier,cela demande deux dclarations, celle du lien, celle de son appel. Ce moyen restemassivement employ par les socits qui ont connu SGML, d'autant que son support estbeaucoup 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.

  • Extensible Markup Language 17

    Xinclude [61] permet cela, ainsi que de gnrer ces relations automatiquement (XSLT).

    catalogue

    On retrouve cette volution vers la modularisation d'XML o l'inclusion devient une tapeoptionnelle d'un processus.

    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 auchapitre 5, ou bien, la date de fabrication est dans le futur. La prcision et la convivialit decette vrification dpendent de la syntaxe utilise.En SGML, la validation s'effectuait toujours avant l'entre d'un document XML dans unprocessus. 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 dclarationDOCTYPE, Type de document). La pratique a montr que la validation n'est pas toujoursncessaire, et mme, contre performante. Dans d'autres cas, plusieurs tapes de validationpeuvent tre utiles, par exemple, une pour vrifier la structure de l'arbre XML, une autrepour 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 devalidation. Cependant la fonctionnalit peut tre dbranche, ou appele sparment. Ilexiste aussi des bibliothques uniquement ddies la validation. Le dploiement actuelrend la validation XML nativement accessible la plupart des systmes, et dans la plupartdes langages de programmation. MSXML - Microsoft Core XML Services, validation DTD et XML Schema. libxml2 [62] - Validation DTD et Relax NG (le support XML Schema est partiel, surtout

    pour le typage de donnes au sein de Relax NG). Xerces [63] - XML Java Parser, validation DTD et XML Schema. Jing [64] - 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'utilisateurdes messages plus conviviaux, cet outil suffit aussi pour utiliser une implmentationSchematron.

  • Extensible Markup Language 18

    Sorties Dans le cas en introduction, le navigateur est le consommateur final de XML, sous la formede xhtml. Chaque langage XML de reprsentation (XSL-FO, SVG) peut tre consomm parune application utile l'utilisateur. Certains formats peuvent tre traits par plusieursbibliothques logicielles. (en) Apache Batik [65], API Java traitant des documents SVG (exemple : export JPG, PNG). (en) FOP, le srialiseur XSL-FO d'Apache [66]

    (en) XEP [67], processeur XSL-FO et SVG commercial, RenderX.

    Tuyaux (XML Pipeline) Les tapes dcrites plus haut sont en cours de normalisation par le W3C (XML ProcessingModel Working Group [68]). La terminologie [69] est officialise. Ces ides ont dj desimplmentations concurrentes dans plusieurs frameworks (Apache Cocoon, OrbeonPresentation 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 chaned'tapes (Step). Ces tapes traitent un flux XML (XML Information Set, Infoset [70]). Lanotion de flux d'information n'est pas spcifique XML, on la retrouve grande chelledans l'informatique rseau, ou trs simplement en ligne de commande Unix, avec la barreverticale, pipe en anglais). L'originalit rside dans la structuration propre XML. Lesoctets traits par ces tuyaux sont des documents structurs. Les tapes sont standardiseset combinables. Elles sont dfinies par des composants (components) paramtrables(parameter), le tout en XML.

    Conclusion Les principes de la syntaxe XML s'acquirent en quelques heures, avec un simple diteurde texte. Tout utilisateur de traitement de texte gagne y tre sensibilis, afin decomprendre les principes de la rdaction structure. Connatre ce formalisme peut motiver utiliser les styles (exemple : les titres hirarchiques), afin de produire des documentsrcuprables, par exemple pour HTML et Internet. Un dveloppeur web ne peut plusignorer XML. Il en manipule pour rendre son HTML dynamique, sous la forme d'un DOM.Avec le web 2.0 et AJAX, ces standards pntrent sa pratique quotidienne. Ledveloppement serveur est lui aussi confront de plus en plus souvent des composantsconfigurables en XML, particulirement en Java. Enfin, ce formalisme s'accompagne depratiques, de motifs de conception (design patterns), compltement adapts auxarchitectures MVC (Modle Vue Contrleur). XML et les standards attachs pntrent tousles secteurs de l'informatique. Il y a quelques annes, on pouvait se demander, pourquoiXML ? Maintenant, la charge de la preuve est de l'autre ct, il faut de srieux argumentspour y chapper.

  • Extensible Markup Language 19

    Notes et rfrences (en) Extensible Markup Language (XML) 1.0 [71], W3C Recommendation 16 August 2006 :[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 trs bien explique par Tim Bray 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 commeeXtensible ou eXperience (XP). Un bon nombre de langages ont galement affich leur parent avec XML ens'adjoignant un X, comme XHTML.

    [5] http:/ / www. w3. org/ TR/ 1998/ REC-xml-19980210[6] http:/ / pages. videotron. com/ fyergeau/ w3c/ xml10/ REC-xml-19980210. fr. html[7] http:/ / www. w3. org/ TR/ 1998/ REC-xml-19980210[8] http:/ / pages. videotron. com/ fyergeau/ w3c/ xml10/ REC-xml-19980210. fr. html[9] http:/ / www. xml. com/ axml/ testaxml. htm[10] http:/ / docbook. org/ tdg5/ en/ html/ title. html[11] http:/ / docbook. org/ tdg5/ en/ html/ para. html[12] http:/ / docbook. org/ tdg5/ en/ html/ acronym. html[13] http:/ / www. w3. org/ TR/ REC-html40/ struct/ global. html#edef-HTML[14] http:/ / www. w3. org/ TR/ xslt#element-stylesheet[15] http:/ / www. w3. org/ TR/ xslt#element-transform[16] (en) document (http:/ / www. w3. org/ TR/ REC-xml/ #sec-white-space)[17] les lments (http:/ / www. w3. org/ TR/ REC-xml/ #sec-starttags)[18] http:/ / dublincore. org/ documents/ dcmi-terms/ #creator[19] http:/ / docbook. org/ tdg5/ en/ html/ section. html[20] http:/ / dublincore. org/ documents/ dcmi-terms/ #description[21] http:/ / www. w3. org/ TR/ html4/ present/ graphics. html#edef-B[22] http:/ / www. w3. org/ TR/ html4/ struct/ links. html#edef-A[23] http:/ / dublincore. org/ documents/ dcmi-terms/ #type[24] http:/ / docbook. org/ tdg5/ en/ html/ type. html[25] (en) le texte (http:/ / www. w3. org/ TR/ REC-xml/ #syntax)[26] (en) espaces vides (http:/ / www. w3. org/ TR/ REC-xml/ #sec-white-space)[27] http:/ / www. w3. org/ TR/ REC-html40/ struct/ text. html#edef-PRE[28] commentaires (http:/ / www. w3. org/ TR/ REC-xml/ #sec-comments)[29] prologue (http:/ / www. w3. org/ TR/ REC-xml/ #sec-prolog-dtd)[30] (en) Instructions de traitement (http:/ / www. w3. org/ TR/ REC-xml/ #sec-pi)[31] (en) sections d'chappement (http:/ / www. w3. org/ TR/ REC-xml/ #sec-cdata-sect)[32] http:/ / www. w3. org/ TR/ 1999/ REC-rdf-syntax-19990222/[33] http:/ / www. la-grange. net/ w3c/ REC-rdf-syntax/[34] (en) XHTML Modularization 1.1 (http:/ / www. w3. org/ TR/ xhtml-modularization/ ), W3C Working Draft 5 July

    2006[35] http:/ / www. tei-c. org/[36] http:/ / sqlzoo. net/[37] http:/ / www. w3. org/ TR/ xmlschema-2/[38] http:/ / www. w3. org/ TR/ xpath20/[39] http:/ / www. w3. org/ TR/ xslt20/[40] http:/ / dublincore. org[41] http:/ / www. loc. gov/ standards/ mods/[42] http:/ / dtdparse. sourceforge. net/[43] http:/ / www. docbook. org/ tdg5/ en/ html/ docbook. html[44] http:/ / www. tei-c. org/ release/ doc/ tei-p5-doc/ html/[45] http:/ / www. w3. org/ TR/ xmlschema-2/[46] Eric van der Vlist, RELAX NG, W3C XML Schema Type Library , O'Reilly & Associates, 2003 (ISBN

    0596004214)[47] http:/ / logging. apache. org/ log4j/[48] http:/ / www. ddj. com/ 184404686[49] http:/ / norman. walsh. name/ 2006/ 09/ 28/ xprocfpwd. xml[50] Ou celui de Jeni Tennison (http:/ / www. jenitennison. com/ index. xml) et de plusieurs autres.

  • Extensible Markup Language 20

    [51] http:/ / xmlsoft. org/[52] http:/ / xmlsoft. org/ python. html[53] http:/ / fr. php. net/ libxml[54] http:/ / libxml. rubyforge. org/[55] http:/ / xerces. apache. org/ xerces2-j/[56] http:/ / expat. sourceforge. net/[57] http:/ / vtd-xml. sourceforge. net[58] entits externes (http:/ / www. w3. org/ TR/ REC-xml/ #sec-external-ent)[59] xinclude (http:/ / www. w3. org/ TR/ xinclude/ )[60] (en) Norman Walsh (http:/ / norman. walsh. name/ ), XInclude, xml:base, and validation (http:/ / norman.

    walsh. name/ 2005/ 04/ 01/ xinclude).[61] http:/ / www. w3. org/ TR/ xinclude/[62] http:/ / xmlsoft. org/[63] http:/ / xerces. apache. org/ xerces2-j/[64] http:/ / www. thaiopensource. com/ relaxng/ jing. html[65] http:/ / xml. apache. org/ batik/ index. html[66] http:/ / xmlgraphics. apache. org/ fop/ index. html[67] http:/ / www. renderx. com/[68] http:/ / www. w3. org/ XML/ Processing/[69] http:/ / www. w3. org/ TR/ xproc-requirements/ #terminology[70] http:/ / www. w3. org/ TR/ xml-infoset/[71] http:/ / www. w3. org/ TR/ REC-xml/ #sec-white-space

    Autres rfrnces :

    Voir aussi

    Articles connexes Autres technologies et thories intressant XML : Langages de balisage SGML Norme ISO/IEC 8859 Norme ISO/IEC 10646 CSS XLink XML Base

    Liens externes

    Rfrences W3C Recommendation: Extensible Markup Language (XML) 1.0 (Fifth Edition) (http:/ /

    www. w3. org/ TR/ 2008/ REC-xml-20081126/ ) (en) W3C Recommendation: Namespaces in XML 1.0 (Second Edition) (http:/ / www. w3. org/

    TR/ 2006/ REC-xml-names-20060816/ ) (en) W3C Recommendation: xml:id Version 1.0 (http:/ / www. w3. org/ TR/ 2005/

    REC-xml-id-20050909/ ) (en) W3C Recommendation: Extensible Markup Language (XML) 1.1 (Second Edition) (http:/ /

    www. w3. org/ TR/ 2006/ REC-xml11-20060816/ ) (en)

  • Extensible Markup Language 21

    Divers Catgorie XML (http:/ / dmoz. org/ World/ Franais/ Informatique/

    Formats_de_donnes/ Langages_de_balisage/ XML) de lannuaire dmoz Spcification XML 1.1 (fr) (http:/ / www. yoyodesign. org/ doc/ w3c/ xml11/ ) (en) (http:/ /

    www. w3. org/ TR/ xml11/ ) Spcification XML 1.0 (fr) (http:/ / pages. videotron. com/ fyergeau/ w3c/ xml10/

    REC-xml-19980210. fr. html) (en) (http:/ / www. w3. org/ TR/ REC-xml/ )

  • Extensible Markup Language 22

    Sources des articles et contributeursExtensible Markup Language Source: http://fr.wikipedia.org/w/index.php?oldid=40496102 Contributors: 007, 0A0, 16@r, Alkarex, Alno, Amoreau,Archibald, Auxerroisdu68, BMR, Badmood, BaroqueW, Bayo, BenoitL, Bigor, Billitch, Bob08, Boly38, Bombyx, Brion VIBBER, Brunetton, Bub's, Buzz,Cedric.ch, ChF, ChrisJ, Chtit draco, Citare, ClementSeveillac, Crochet.david, Daniel.bourrion, DanielLemire, Darkoneko, Derwin, Descartes, Didup,Dirac, DocteurCosmos, Ducloy, EDUCA33E, Eamoureux, Elg, Ethaniel, F-fff, FlashX, Flo Ka, Francois 1340, Francois Trazzi, Frdric Glorieux, FvdP,GLec, GML, GillesC, GitiZone, Glorieux, Gribeco, Guisquare, Herman, Hubert Roksor, Inisheer, JB, Jef-Infojef, Jerome66, JihemD, Jmfayard, Jmh2o,Jpm2112, Kassus, Kelson, Kerflyn, Korg, Koyuki, LLB, Lastpixl, Laurent75005, Leafcat, Leag, Lgd, Litlok, Loup meraude, Ludovic89, Marc Mongenet,Medhist, Medium69, Meszigues, MetalGearLiquid, Meuble2001, Michel BUZE, Misdre, Mwipliez, Nataraja, Nias, Nicolas Lardot, Nicolas Ray, Nono64,Nyco, Ollamh, Orthogaffe, Pautard, Pelote de laine, Pfv2, Phe, Philias, Philibre, Pierrot106, Rigou, Robert Weemeyer, Romainhk, Roucas, Rpa, Ryo, STyx,Sam Hocevar, Sanao, Selecto, Shawn, Stuart Little, Sweet Million, Sylvain d'Altar, Sylvestre, THA-Zp, Tarquin, Tensai, The RedBurn, Titouc330, Tornad,Traroth, Uld, Vargenau, Vberger, Vincent Ramos, W7a, Witoki, Wizad, Xafran, Xmlizer, script de conversion, 196 anonymous edits

  • Licence 23

    LicenceVersion 1.2, November 2002

    Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

    0. PREAMBLEThe purpose of this License is to make a manual, textbook, or other functional and useful document "free" in the sense of freedom: to assure everyonethe effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this Licensepreserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements theGNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program shouldcome with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for anytextual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purposeis instruction or reference.

    1. APPLICABILITY AND DEFINITIONS This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed underthe terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions statedherein. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". You accept thelicense if you copy, modify or distribute the work in a way requiring permission under copyright law. A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/ortranslated into another language. A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers orauthors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject.(Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matterof historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that theDocument is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant.The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Documentis released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public,that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (fordrawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formatssuitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged tothwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount oftext. A copy that is not "Transparent" is called "Opaque". Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML usinga publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent imageformats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGMLor XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by someword processors for output purposes only. The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this Licenserequires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominentappearance of the work's title, preceding the beginning of the body of the text. A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text thattranslates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as "Acknowledgements", "Dedications","Endorsements", or "History".) To "Preserve the Title" of such a section when you modify the Document means that it remains a section "Entitled XYZ"according to this definition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimersare considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these WarrantyDisclaimers may have is void and has no effect on the meaning of this License.

    2. VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices,and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever tothose of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute.However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions insection 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies.

    3. COPYING IN QUANTITY If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document'slicense notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on thefront cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The frontcover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copyingwith changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying inother respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover,and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copyalong with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public hasaccess to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latteroption, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy willremain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents orretailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them achance to provide you with an updated version of the Document.

    4. MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the ModifiedVersion under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of theModified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: 1. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there

    were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that versiongives permission.

    2. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, togetherwith at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from thisrequirement.

    3. State on the Title page the name of the publisher of the Modified Version, as the publisher.4. Preserve all the copyright notices of the Document.5. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.

  • Licence 24

    6. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of thisLicense, in the form shown in the Addendum below.

    7. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice.8. Include an unaltered copy of this License.9. Preserve the section Entitled "History", Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the

    Modified Version as given on the Title Page. If there is no section Entitled "History" in the Document, create one stating the title, year, authors, andpublisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.

    10. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the networklocations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a networklocation for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to givespermission.

    11. For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title of the section, and preserve in the section all the substance andtone of each of the contributor acknowledgements and/or dedications given therein.

    12. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not consideredpart of the section titles.

    13. Delete any section Entitled "Endorsements". Such a section may not be included in the Modified Version.14. Do not retitle any existing section to be Entitled "Endorsements" or to conflict in title with any Invariant Section.15. Preserve any Warranty Disclaimers.If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from theDocument, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in theModified Version's license notice. These titles must be distinct from any other section titles. You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example,statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of CoverTexts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by)any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entityyou are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added theold one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or implyendorsement of any Modified Version.

    5. COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions,provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as InvariantSections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there aremultiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, inparentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the sectiontitles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections Entitled "History" in the various original documents, forming one section Entitled "History"; likewisecombine any sections Entitled "Acknowledgements", and any sections Entitled "Dedications". You must delete all sections Entitled "Endorsements."

    6. COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of thisLicense in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatimcopying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License intothe extracted document, and follow this License in all other respects regarding verbatim copying of that document.

    7. AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distributionmedium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyondwhat the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate whichare not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entireaggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of coversif the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.

    8. TRANSLATION Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing InvariantSections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections inaddition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document,and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices anddisclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version willprevail. If a section in the Document is Entitled "Acknowledgements", "Dedications", or "History", the requirement (section 4) to Preserve its Title (section 1) willtypically require changing the actual title.

    9. TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify,sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have receivedcopies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

    10. FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will besimilar in spirit to the present version, but may differ in detail to address new problems or concerns. See http:/ / www. gnu. org/ copyleft/ .Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "orany later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that hasbeen published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose anyversion ever published (not as a draft) by the Free Software Foundation.

    How to use this License for your documents To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license noticesjust after the title page:

    Copyright (c) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

    If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the "with...Texts." line with this: with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.

    If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free softwarelicense, such as the GNU General Public License, to permit their use in free software.

    Extensible Markup LanguageObjectif initial Versions Comparaison d'autres formats Formats binaires (un exemple Microsoft Word) RTF (Rich Text Format) TeXTEXwikiXML, format textuel, structur, et extensible Composants d'un document XML : les nudsLa racine du document /Les lments Le texte Les attributs, Les commentaires Le prologueAutres nudsUtilisations et langages drivs Langage de balisageBalisage de documentFormat de donnes Document Schema Definition LanguagesLangages de schmaLangages de reprsentation Langages de programmation Protocoles d'changes Langages associs Conclusion, tape suivante ? Outils et processus XMLExporter et Produire Analyse syntaxiqueParseurs et Interface de programmationinterfaces de programmation (API) Transformation InclusionsValidation Sorties Tuyaux (XML Pipeline) Conclusion Notes et rfrences Voir aussi Articles connexes Liens externes RfrencesDivers

    Licence0. PREAMBLE1. APPLICABILITY AND DEFINITIONS 2. VERBATIM COPYING 3. COPYING IN QUANTITY 4. MODIFICATIONS 5. COMBINING DOCUMENTS 6. COLLECTIONS OF DOCUMENTS 7. AGGREGATION WITH INDEPENDENT WORKS 8. TRANSLATION 9. TERMINATION 10. FUTURE REVISIONS OF THIS LICENSE How to use this License for your documents