Commit 792ef775 authored by Nyashes's avatar Nyashes
Browse files

ajout exemple à la place de todo

parent 6484f136
......@@ -17,7 +17,7 @@
function loadFullText() {
jQuery("#preview").empty();
jQuery("#preview").text("TODO");
jQuery("#preview").html(jQuery("#todo_content").html());
}
</script>
<style type="text/css">
......@@ -27,6 +27,1822 @@
</style>
</head>
<body>
<div id = "todo_content" style="display:none">
<section data-hdoc-type="introduction">
<header>
<h1>Introduction</h1>
</header>
<div>
<p>L'
<i>
<em>
<span>Extensible Markup Language</span>
</em>
</i> (
<em>XML</em>, langage de balisage extensible en franais) est un
<a href="http://wikipedia.org/wiki/M%C3%A9talangage">mtalangage</a> informatique de
<a href="http://wikipedia.org/wiki/Langage_de_balisage">balisage</a> gnrique qui drive du
<a href="http://wikipedia.org/wiki/SGML">SGML</a>. Cette syntaxe est dite extensible car elle permet de dfinir diffrents
<a href="http://wikipedia.org/wiki/Espace_de_noms_XML">espaces de noms</a>, c'est--dire des langages avec chacun leur vocabulaire et leur grammaire, comme
<a href="http://wikipedia.org/wiki/XHTML">XHTML</a>,
<a href="http://wikipedia.org/wiki/XSLT">XSLT</a>,
<a href="http://wikipedia.org/wiki/RSS">RSS</a>,
<a href="http://wikipedia.org/wiki/SVG">SVG</a> Elle est reconnaissable par son usage des
<a href="http://wikipedia.org/wiki/Chevron_(typographie)">chevrons</a> (&lt;, &gt;) encadrant les balises. L'objectif initial est de faciliter l'change automatis
de contenus complexes (
<a href="http://wikipedia.org/wiki/Arbre_enracin%C3%A9">arbres</a>, texte riche) entre
<a href="http://wikipedia.org/wiki/Syst%C3%A8me_d%27information">systmes d'informations</a> htrognes (
<a href="http://wikipedia.org/wiki/Interop%C3%A9rabilit%C3%A9_en_informatique">interoprabilit</a>). Avec ses outils et langages associs, une application XML respecte gnralement
certains principes:
</p>
</div>
</section>
<section>
<header>
<h1>Historique</h1>
</header>
<div>
<p>
<a href="http://wikipedia.org/wiki/Dan_Connolly">Dan Connolly</a> ajoute le
<span>
<a href="http://wikipedia.org/wiki/Standard_Generalized_Markup_Language">Standard Generalized Markup Language</a>
</span> la liste des activits du
<span>
<a href="http://wikipedia.org/wiki/World_Wide_Web_Consortium">World Wide Web Consortium</a>
</span> lorsqu'il s'y joint en 1995. Les travaux dbutent la mi-1996 lorsque l'ingnieur
Jon Bosak
<a href="http://wikipedia.orghttps://en.wikipedia.org/wiki/Jon_Bosak">(en)</a> de
<a href="http://wikipedia.org/wiki/Sun_Microsystems">Sun Microsystems</a> 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
<a href="http://wikipedia.org/wiki/Web">Web</a>.
</p>
<p>XML est compil par un groupe de travail de onze membres, 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. Les cordacteurs
du cahier des charges taient l'origine
<a href="http://wikipedia.orghttps://en.wikipedia.org/wiki/en:Tim_Bray">Tim Bray</a>, qui a notamment conduit l'informatisation du
<span>
<i>
<a href="http://wikipedia.org/wiki/Oxford_English_Dictionary">Oxford English Dictionary</a>
</i>
</span>, et
<a href="http://wikipedia.orghttps://en.wikipedia.org/wiki/en:Michael_Sperberg-McQueen">Michael Sperberg-McQueen</a>, de l'
<a href="http://wikipedia.org/wiki/Universit%C3%A9_de_l%27Illinois">Universit de l'Illinois</a>, qui tait diteur en chef de la
<a href="http://wikipedia.org/wiki/Document_Type_Definition">DTD</a>
<a href="http://wikipedia.org/wiki/Text_Encoding_Initiative">TEI</a>; accompagns ensuite de Jean Paoli, de
<a href="http://wikipedia.org/wiki/Microsoft">Microsoft</a>, comme troisime coditeur.
<a href="http://wikipedia.org/wiki/James_Clark_(informatique)">James Clark</a> servit comme responsable technique du groupe de travail, notamment en contribuant
l'lment vide &lt;empty/&gt; et au nom XML. Tim Bray, dans son
<span>
<i>Annotated XML Specification</i>
</span>
<a href="http://wikipedia.orghttp://www.xml.com/axml/testaxml.htm">(en)</a> la spcification XML annote, explique plus longuement le contexte qui a rendu
possible ce standard. Un compte rendu des dcisions de conception et de leurs justifications
ont t compiles par Michael Sperberg-McQueen, le 4 dcembre 1997.
</p>
<p>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. D'autres travaux de conception sont poursuivis jusqu'en 1997, puis le XML 1.0 est
devenu une recommandation
<a href="http://wikipedia.org/wiki/W3C">W3C</a> le
<a href="http://wikipedia.org/wiki/10_f%C3%A9vrier">10</a>
<a href="http://wikipedia.org/wiki/F%C3%A9vrier_1998">fvrier</a>
<a href="http://wikipedia.org/wiki/1998_en_informatique">1998</a>.
</p>
</div>
<section data-hdoc-type="unit-of-content">
<header>
<h1>XML et SGML</h1>
</header>
<div>
<p>L'objectif initial de XML est expliqu au dbut de la spcification du
<a href="http://wikipedia.org/wiki/10_f%C3%A9vrier">10</a>
<a href="http://wikipedia.org/wiki/F%C3%A9vrier_1998">fvrier</a>
<a href="http://wikipedia.org/wiki/1998_en_informatique">1998</a> avec une phrase 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.
<a href="http://wikipedia.orghttp://pages.videotron.com/fyergeau/w3c/xml10/REC-xml-19980210.fr.html">(fr)</a>.
<a href="http://wikipedia.org/wiki/Standard_Generalized_Markup_Language">SGML</a> est un
<a href="http://wikipedia.org/wiki/Langage_de_balisage">langage de balisage</a>, employ dans les industries de la documentation et de l'dition. En adoptant cette
syntaxe pour
<a href="http://wikipedia.org/wiki/Hypertext_Markup_Language">HTML</a>,
<a href="http://wikipedia.org/wiki/Tim_Berners-Lee">Tim Berners-Lee</a> confrontait une technologie complexe de plus en plus d'utilisateurs. L'objectif
d'XML tait de dfinir un langage aussi gnrique, mais plus simple:
<span>
<i>XML has been designed for ease of implementation</i>
</span>
<a href="http://wikipedia.orghttp://www.w3.org/TR/1998/REC-xml-19980210">(en)</a>, XML a t conu pour une facilit de mise en uvre
<a href="http://wikipedia.orghttp://pages.videotron.com/fyergeau/w3c/xml10/REC-xml-19980210.fr.html">(fr)</a>.
</p>
<p> la lumire des annes passes, cette spcification a rempli l'objectif qu'elle se
fixait, XML a t largement suivi et favorise l'
<a href="http://wikipedia.org/wiki/Interop%C3%A9rabilit%C3%A9_en_informatique">interoprabilit</a>. La disponibilit d'une syntaxe standard et d'outils de manipulation rduit significativement
le cot du
<a href="http://wikipedia.org/wiki/Cycle_de_d%C3%A9veloppement">cycle de dveloppement</a>, permettant des logiciels 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'
<a href="http://wikipedia.org/wiki/EDIFACT">EDIFACT</a>), ce qui exigeait de concevoir et de programmer chaque fois des analyseurs syntaxiques
spcialiss. Ces tches et bien d'autres s'effectuent dsormais avec des outils XML
standardises.
</p>
<p>Plusieurs dcisions critiques ont contribu au succs du XML.</p>
</div>
<section>
<header>
<h1>Adoption de l'Unicode</h1>
</header>
<div>
<p>Par dfaut, SGML tait en
<a href="http://wikipedia.org/wiki/ASCII">ASCII</a> (
<a href="http://wikipedia.org/wiki/Alphabet_latin">alphabet latin</a> sans
<a href="http://wikipedia.org/wiki/Lettre_accentu%C3%A9e">lettre accentue</a>). Il apportait un systme d'encodage pour les autres signes, les
<a href="http://wikipedia.org/wiki/Entit%C3%A9_de_caract%C3%A8re">entits de caractres</a> que l'on trouve encore parfois en HTML (exemple: &amp;eacute; pour
<em></em>). En
<a href="http://wikipedia.org/wiki/1996_en_informatique">1996</a>, apparat la version 2.0 d'
<a href="http://wikipedia.org/wiki/Unicode">Unicode</a>. XML adopte cet encodage par dfaut.
</p>
</div>
</section>
<section>
<header>
<h1>Grammaire plus simple</h1>
</header>
<div>
<p>SGML est orient pour la saisie humaine de texte structur, et autorise beaucoup de
raccourcis. Ainsi HTML permet d'omettre certaines balises de fermeture, de raccourcir
des attributs, de mlanger minuscules et majuscules. Ces possibilits compliquent
le traitement automatique et sont interdites pour les applications de XML.
</p>
</div>
</section>
<section>
<header>
<h1>Espace de noms</h1>
</header>
<div>
<p>SGML insiste surtout sur la validation, sur la conformit un modle contraignant.
XML prvoit un usage plus souple de l'information structure. Il spcifie un moyen
de faire cohabiter plusieurs vocabulaires de balises dans un mme document grce
la dfinition d'
<a href="http://wikipedia.org/wiki/Espace_de_noms">espace de noms</a>.
</p>
</div>
</section>
<section>
<header>
<h1>Bilan</h1>
</header>
<div>
<p>Paradoxalement, il reste un domaine o SGML persiste, les HTML. Le W3C ne dveloppe
plus XHTML (version de HTML plus stricte, avec par exemple des balises obligatoirement
fermes), et se consacre plutt
<a href="http://wikipedia.org/wiki/HTML5">HTML5</a>, successeur d'HTML4, qui ajoute quelques balises sans imposer la conformit XML.
L'chec d'XHTML et le retour HTML s'expliquent par la force des habitudes et la
trs importante base HTML dj installe.
</p>
<p>Au-del de HTML, le W3C avait d'autres projets exigeant une syntaxe plus facilement
extensible. Ces directions ont permis une grande plasticit de XML lui offrant de
nombreux usages.
<a href="http://wikipedia.org/wiki/Standard_Generalized_Markup_Language">SGML</a> tait une technique de niche,
<a href="http://wikipedia.org/wiki/Internet">Internet</a> l'a simplifi et largement rpandu.
</p>
</div>
</section>
</section>
<section data-hdoc-type="unit-of-content">
<header>
<h1>Versions</h1>
</header>
<div>
<p>La version 1.0 d'XML a t publie le
<a href="http://wikipedia.org/wiki/10_f%C3%A9vrier">10</a>
<a href="http://wikipedia.org/wiki/F%C3%A9vrier_1998">fvrier</a>
<a href="http://wikipedia.org/wiki/1998_en_informatique">1998</a>.
</p>
<p>La version 1.1 d'XML a t publie le
<a href="http://wikipedia.org/wiki/4_f%C3%A9vrier">4</a>
<a href="http://wikipedia.org/wiki/F%C3%A9vrier_2004">fvrier</a>
<a href="http://wikipedia.org/wiki/2004_en_informatique">2004</a>. Elle apporte des amliorations dans le support des diffrentes versions d'Unicode,
permet l'usage de caractres de contrle dans le texte ( l'exception du caractre
0), et organise les fins de ligne de faon compatible avec les technologies IBM.
</p>
<p>Le W3C recommande aux interprteurs XML de reconnatre les deux versions, bien que
la premire version soit beaucoup plus rpandue que la seconde.
</p>
</div>
</section>
</section>
<section>
<header>
<h1>Comparaison avec d'autres formats</h1>
</header>
<div>
<p>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.
</p>
<p>Si le dbut de cet article tait encod en XML, il pourrait ressembler ceci.</p>
<p>Dans ce code, chacun peut identifier des portions de texte (exemple: Extensible,
XML) et des mots cls encadrs de chevrons (&lt;, &gt;): &lt;article&gt;, &lt;title&gt;, &lt;para&gt; Ces mots sont dfinis dans l'espace de noms
<a href="http://wikipedia.org/wiki/Docbook">Docbook</a>. Le document est ouvert par le mot-cl &lt;article&gt;, et clos par &lt;/article&gt;. Notez la barre oblique, elle signifie la fermeture de la balise article. En XML,
une balise doit toujours tre
<i>ferme</i>. l'intrieur de cet article, il y a un titre &lt;title&gt;, un paragraphe &lt;para&gt;, et un acronyme &lt;acronym&gt;.
</p>
<p>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
<a href="http://wikipedia.org/wiki/XHTML">XHTML</a>, l'lment racine aurait t html, en
<a href="http://wikipedia.org/wiki/Extensible_Stylesheet_Language_Transformations">XSLT</a>, 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:
<span>echo, for, public, function, class</span>), mais plutt des caractres rservs permettant de dfinir un langage.
</p>
<p>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 souhaite lui donner (aujourd'hui
un titre est soulign, demain on le voudra peut-tre en bleu). Cela fait d'XML un
excellent format pour conserver des textes ou des donnes, comme la comparaison ci-aprs
d'autres formats le montre.
</p>
</div>
<section data-hdoc-type="unit-of-content">
<header>
<h1>Formats binaires</h1>
</header>
<div>
<p>Les
<a href="http://wikipedia.org/wiki/Logiciel">logiciels</a>, surtout pour le grand public, aboutissent gnralement des
<a href="http://wikipedia.org/wiki/Fichier_(informatique)">fichiers</a>. L'
<a href="http://wikipedia.org/wiki/Interop%C3%A9rabilit%C3%A9">interoprabilit</a> et la prennit de ces fichiers est une proccupation qui passe souvent aprs la
performance. Par exemple, le format historique d'enregistrement du
<a href="http://wikipedia.org/wiki/Traitement_de_texte">traitement de texte</a>
<a href="http://wikipedia.org/wiki/Microsoft_Word">Microsoft Word</a> (*.doc) n'est pas lisible par l'humain, le texte est difficile extraire, le lien
avec sa structuration (gras, italique) est difficile reconstruire.
<a href="http://wikipedia.org/wiki/R%C3%A9tro-ing%C3%A9nierie">Thoriquement</a>, seul le logiciel qui le produit est capable de le lire.
</p>
<object type="application/x-listing" data="listing/listing5.xml"></object>
</div>
</section>
<section data-hdoc-type="unit-of-content">
<header>
<h1>RTF</h1>
</header>
<div>
<p>Afin de favoriser l'change avec d'autres
<a href="http://wikipedia.org/wiki/Traitement_de_texte">traitements de texte</a>,
<a href="http://wikipedia.org/wiki/Microsoft">Microsoft</a> a propos le format
<a href="http://wikipedia.org/wiki/Rich_Text_Format">RTF</a> (
<span>
<i>Rich Text Format</i>
</span> format texte riche) en
<a href="http://wikipedia.org/wiki/1987_en_informatique">1987</a>. 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.
</p>
<object type="application/x-listing" data="listing/listing6.xml"></object>
<p>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,
<i>bold</i>: \b. Pour le titre, humains comme logiciels ne peuvent pas l'identifier par "\f2\fs36\b",
ce code indique en fait l'apparence du paragraphe (gras, gros). Ce format a montr
qu'il pouvait fonctionner dans des logiciels, mais sa complexit croissante a montr
ses limites. Il est difficilement extensible, et inutilisable pour structurer la smantique
d'un texte.
</p>
</div>
</section>
<section data-hdoc-type="unit-of-content">
<header>
<h1>TeX</h1>
</header>
<div>
<p>
<a href="http://wikipedia.org/wiki/Donald_Knuth">Donald Knuth</a>, auteur de
<span>
<i>
<a href="http://wikipedia.org/wiki/The_Art_of_Computer_Programming">The Art of Computer Programming</a>
</i>
</span> (l'Art de la programmation), s'est un jour (1977) indign de la qualit d'impression
de ses ouvrages. Il a alors dvelopp
<a href="http://wikipedia.org/wiki/TeX">TeX</a>, une syntaxe trs labore destine l'criture humaine, spcialement puissante
pour les quations mathmatiques. RTF lui a repris ses sparateurs (\, {, }), mais
pas son systme de
<a href="http://wikipedia.org/wiki/Macro-d%C3%A9finition">macros</a> pour factoriser les commandes.
</p>
<p>TeX reste le standard de l'dition scientifique de qualit, en particulier pour la
mise en forme des quations complexes. Toutefois, cela reste un langage de programmation
destin la mise en forme, davantage conu pour l'apparence des documents que pour
stocker ou transfrer des donnes.
</p>
</div>
</section>
<section data-hdoc-type="unit-of-content">
<header>
<h1>Wiki</h1>
</header>
<div>
<p>Une syntaxe
<a href="http://wikipedia.org/wiki/Wiki">wiki</a> sait aussi sparer le contenu de la prsentation.
</p>
<object type="application/x-listing" data="listing/listing8.xml"></object>
<p>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.
</p>
</div>
</section>
</section>
<section>
<header>
<h1>Composants et syntaxe</h1>
</header>
<div>
<p>XML se prsente en gnral comme une chane de caractres, sparant deux niveaux:
du texte destination des humains, et des balises destination des machines. La
structuration de ce texte par les balises produit un modle informatique. D'un point
de vue formel, un document XML est un
<a href="http://wikipedia.org/wiki/Arbre_(informatique)">arbre</a>, articulant diffrents types de nuds (texte, lments, attributs, commentaires).
Il n'est pas indispensable de pntrer le dtail thorique de cette structure arborescente
pour crire du XML bien form, toutefois, il est intressant d'en comprendre le principe
gnral, car c'est ce modle qui explique les erreurs de syntaxe. Cette section prsentera
les diffrents composants du modle XML, en insistant sur les contraintes imposes
par leur dfinition, et en prsentant diffrents type d'erreurs (malformations) qui
produisent un document mal form. Un document mal form n'est plus du XML. Il casse
toute la chane de traitement. Cette absence de rattrapage des erreurs peut parfois
surprendre et dcourager les dbutants, mais c'est cette rigueur qui assure la qualit
du format XML (notamment compar en SGML). Heureusement, comme pour tout autre langage
informatique, des logiciels d'dition assistent les utilisateurs pour viter ces erreurs.
</p>
<p>
<span></span>
</p>
</div>
<section data-hdoc-type="unit-of-content">
<header>
<h1>Nud document</h1>
</header>
<div>
<p>Un document XML a toujours une et une seule racine, le
<i>nud document</i>. Dans la syntaxe d'exploration d'un arbre XML,
<a href="http://wikipedia.org/wiki/XPath">XPath</a>, le nud document est abrg avec la barre oblique /, comme la racine de l'arborescence d'un
<a href="http://wikipedia.org/wiki/Syst%C3%A8me_de_fichiers">systme de fichiers</a> Unix. La racine peut ventuellement comporter des enfants de type commentaire ou
instruction de traitement, elle doit obligatoirement comporter un et un seul lment.
</p>
<ul>
<li>
<p>
<em>Malformation</em>
</p>
<p>Le fichier ci-dessus n'est pas un document XML bien form car il comporte plus d'un
lment racine.
</p>
</li>
</ul>
<p>
<span></span>
</p>
</div>
</section>
<section data-hdoc-type="unit-of-content">
<header>
<h1>Nud lment</h1>
</header>
<div>
<p>Un
<i>nud lment</i> est dsign par un nom qualifi au sein d'un
<a href="http://wikipedia.org/wiki/Espace_de_noms_XML">espace de noms</a> (&lt;espace:lment/&gt;). Ce nom ne peut pas contenir !"#$%&amp;'()*+,/;&lt;=&gt;?@[\]^`{|}~ ou une
<a href="http://wikipedia.org/wiki/Espace_typographique">espace</a> et ne peut pas commencer par -. ou un chiffre. Un lment peut contenir la plupart des autres nuds: texte, lments,
attributs ( l'exception du nud document). Des lments peuvent tre imbriqus,
mais pas entrecroiss. Cette dfinition formelle est l'origine des particularits
de XML compar d'autres formats:
</p>
<ul>
<li>
<p>
<em>Rptable</em>
</p>
<p>Une mme proprit peut tre rpte. L'exemple montre comment indiquer qu'un livre
a plusieurs auteurs &lt;dc:creator&gt;. Dans un format tabulaire, avec un nombre de colonnes
dfini, ce n'est pas impossible, mais moins spcifi.
</p>
</li>
<li>
<p>
<em>Ordonn</em>
</p>
<p>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
<a href="http://wikipedia.org/wiki/XPath">XPath</a>, , ).
</p>
</li>
<li>
<p>
<em>Hirarchique</em>
</p>
<p>Les lments XML sont imbriqus. Ceci rend ce format particulirement adapt reprsenter
des arbres. L'exemple est limit 2 niveaux (), une collection avec un titre (), et un exemple d'ouvrage de cette collection (). XML permet une rcursivit complte. Par exemple, un livre, ou une thse, peut
tre format trs conomiquement avec un lment . La partie 2.3.5 correspondra une structure d'imbrication XML .
</p>
</li>
<li>
<p>
<em>Mlangeable</em>
</p>
<p>XML est plus qu'un
<a href="http://wikipedia.org/wiki/Format_de_donn%C3%A9es">format de donnes</a>, c'est un format de document, permettant de du texte et des lments, pour par exemple reprsenter du texte riche. Dans l'exemple,
le texte de la description est enrichi avec des balises
<a href="http://wikipedia.org/wiki/XHTML">XHTML</a> (gras , lien ).
</p>
</li>
<li>
<p>
<em>Qualifi</em>
</p>
<p>La qualification des noms contribue la prcision smantique des contenus baliss.
La notation , ou , avec hritage hirarchique, permet de rattacher tous les noms une
<a href="http://wikipedia.org/wiki/Uniform_Resource_Identifier">URI</a>, et donc potentiellement une documentation.
</p>
</li>
<li>
<p>
<em>Malformations</em>
</p>
<p>Quelques exemples d'XML mal form:
</p>
<ul>
<li>
<p>&lt;auteur&gt;&lt;nom&gt;Bon&lt;/nom&gt;, &lt;prnom&gt;Jean&lt;/auteur&gt;&lt;/prnom&gt; (la balise &lt;/prnom&gt; est ferme aprs la balise &lt;/auteur&gt; alors que cette dernire a t ouverte avant. Le prnom doit tre logiquement l'intrieur
de la balise auteur, comme le nom.
</p>
</li>
<li>
<p>&lt;sicle&gt;XX&lt;exposant&gt;e&lt;/sicle&gt;, &lt;para&gt;Malformations&lt;/label&gt; (paragraphe avec titre)&lt;/para&gt; La balise &lt;exposant&gt; doit tre ferme l'intrieur de l'lment &lt;sicle&gt;, la balise &lt;/label&gt; doit tre ouverte avant d'tre ferme l'intrieur de l'lment &lt;para&gt;.</p>
</li>
<li>
<p>&lt;1-balise/&gt;, &lt;.balise/&gt; , &lt;balise!/&gt;, &lt;autre/balise,mal,nomme/&gt;, &lt;pas d'espace&gt; Ces noms d'lments comportent des caractres interdits, en premire position ou
ailleurs.
</p>
</li>
</ul>
</li>
</ul>
</div>
</section>
<section data-hdoc-type="unit-of-content">
<header>
<h1>Balise</h1>
</header>
<div>
<p>Une
<i>balise</i> est un nom commode pour dsigner les constructions entre deux chevrons (&lt;, &gt;) dans un fichier XML. On distinguera les balises ouvrantes &lt;lment attribut="valeur"&gt;, les balises fermantes &lt;/lment&gt; (sans attributs et commenant par une barre oblique) et les balises vides &lt;lment attribut="valeur"/&gt; (avec attributs possibles et terminant par une barre oblique). 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.
</p>
<p>
<span></span>
</p>
</div>
</section>
<section data-hdoc-type="unit-of-content">
<header>
<h1>Nud texte</h1>
</header>
<div>
<p>Un
<i>nud texte</i> n'a pas d'enfants, il est toujours contenu dans un lment. Ainsi dans le cas de
texte ml (exemple: &lt;p&gt;du texte en &lt;b&gt;gras&lt;/b&gt; dans un paragraphe&lt;/p&gt;), ce n'est pas le texte qui contient le gras, mais plutt l'lment parent &lt;p&gt; qui contient plusieurs enfants: un nud texte, un nud lment &lt;b&gt; et un nud texte (exemple: p/node()[3]=" dans un paragraphe", p/b/node() = "gras").
</p>
<ul>
<li>
<p>
<em>Encodage</em>
</p>
<p>Par dfaut, le texte est trait comme de l'
<a href="http://wikipedia.org/wiki/Unicode">Unicode</a> (
<a href="http://wikipedia.org/wiki/UTF-8">UTF-8</a>). XML permet de spcifier d'autres encodages dans le prologue pour des raisons historiques.
</p>
</li>
<li>
<p>
<em>Espaces</em>
</p>
<p>En XML, espaces et sauts de lignes sont quivalents, autrement dit, un document peut perdre son indentation en restant identique pour
les traitements, sauf instructions particulires (exemple: bloc prformat avec l'attribut
).
</p>
</li>
<li>
<p>
<em>Malformations</em>
</p>
<p>Comme tout langage informatique, XML est fond sur des caractres qui ont un sens
particulier pour la machine. La force de XML est d'avoir rduit le nombre de ces caractres
au minimum, afin que le texte prime sur le mtatexte (priorit des donnes sur les
instructions). Ds qu'un analyseur XML (ex: navigateur Web) rencontre un chevron
ouvrant (), les caractres qui suivent sont interprts comme une balise. Ceci pose videmment
des problmes dans une inquation mathmatique . La balise n'ayant pas un nom d'lment correct (prsence d'une espace, commence par un chiffre),
un analyseur XML lvera une erreur et s'arrtera sans essayer d'tre plus intelligent.
C'est un problme pour tous les langages informatiques, qui introduisent alors des
<a href="http://wikipedia.org/wiki/Caract%C3%A8re_d%27%C3%A9chappement">caractres d'chappement</a>. Il faut au moins un caractre pour signaler que les caractres qui suivent doivent
tre interprts autrement. En XML, c'est le rle de l'
<a href="http://wikipedia.org/wiki/Esperluette">esperluette</a> () qui introduit des. Une entit est un nom XML encadr d'une esperluette et d'un point virgule. Ce nom
a les mmes contraintes que pour les lments (pas d'espaces, surtout des lettres).
Dans un nud texte, le signe infrieur doit tre remplac par (, infrieur en franais). Du coup, l'esperluette acquiert elle aussi un statut
particulier, et doit aussi tre chappe. , ce texte produira une erreur XML, car n'est pas une entit bien forme. Les esperluettes d'un nud texte doivent tre remplaces
par l'entit (, esperluette en franais). Mentionnons ici 3 autres entits ncessaires XML,
(, suprieur en franais) pour , (, guillemet en franais) pour , () pour .
</p>
</li>
</ul>
</div>
</section>
<section data-hdoc-type="unit-of-content">
<header>
<h1>Attributs</h1>
</header>
<div>
<p>Un
<i>attribut</i> est un nom et une valeur. Un nom d'attribut a les mmes contraintes et 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 (balise ouvrante). La valeur
peut tre vide &lt;element attribut=""/&gt;, mais pas nulle &lt;element attribut&gt; (cette criture tait permise en
<a href="http://wikipedia.org/wiki/Standard_Generalized_Markup_Language">SGML</a>, on la rencontre encore parfois en
<a href="http://wikipedia.org/wiki/Hypertext_Markup_Language">HTML</a>, mais elle n'est pas accepte en XML).
</p>
<p>Un attribut est unique. La rptition d'un attribut de mme nom sur le mme lment
provoquera une erreur de l'interprteur XML. L'ordre des attributs n'est pas significatif,
et peut ne pas tre conserv dans certains traitements. &lt;element attribut1="valeur1" attribut2="valeur2"/&gt; et &lt;element attribut2="valeur2" attribut1="valeur1"/&gt; sont quivalents pour un interprteur XML, mme s'ils sont crits diffremment.
</p>
<ul>
<li>
<p>
<em>Malformations</em>
</p>
<p> l'intrieur d'une balise (entre les chevrons ouvrants et fermants), le chevron
fermant et les guillemets ont une signification particulire dans la dlimitation
des valeurs d'attribut, et la fin de la balise ouvrante. Ces caractres doivent donc
tre chappes. cette fin, XML prvoit les entits pour et pour .
Les attributs ne sont pas rptables.
</p>
</li>
</ul>
<p>
<span></span>
</p>
</div>
</section>
<section data-hdoc-type="unit-of-content">
<header>
<h1>Commentaires</h1>
</header>
<div>
<p>En XML, les commentaires sont dlimits par &lt;!-- et --&gt;. Le contenu d'un commentaire ne sera pas interprt.</p>
<p>&lt;!-- Cet &lt;lment&gt; n'est pas ferm mais cela est autoris dans un commentaire --&gt;.</p>
<ul>
<li>
<p>
<em>Malformations</em>
</p>
<p>La chane de caractres ne peut apparatre dans le contenu d'un commentaire (un interprteur XML considre
que ce signal annonce la fin d'un commentaire).
</p>
</li>
</ul>
<p>
<span></span>
</p>
</div>
</section>
<section data-hdoc-type="unit-of-content">
<header>
<h1>Prologue</h1>
</header>
<div>
<p>En XML, le
<i>prologue</i> est constitu de la dclaration XML &lt;?xml version="1.0" encoding="UTF-8"?&gt;, 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 interprteur son schma (