I. Exemple 1▲
Un document XML doit comporter un ou plusieurs éléments.
- Document XML bien formé comportant un élément.
<text>
Ceci est un document XML</text>
- Document XML bien formé comportant plusieurs éléments.
<text>
Ceci est un
<doctype>
document XML</doctype>
</text>
- Un document XML doit comporter au moins un élément.
??? Ceci est un document XML ???
II. Exemple 2▲
Il y a exactement un élément appelé élément racine ou élément document, dont aucune partie n'apparaît dans le contenu d'un autre élément.
- <book> est l'élément racine.
<book>
Ceci est un livre</book>
- <list> est l'élément racine.
<list>
<item>
Item 1</item>
<item>
Item 2</item>
<item>
Item 3</item>
</list>
- Seul un élément racine est autorisé.
???
<item>
Item 1</item>
<item>
Item 2</item>
<item>
Item 3</item>
???
III. Exemple 3▲
Le nom de la balise de fin d'un élément doit correspondre à celui de la balise de début. Les noms tiennent compte des majuscules et des minuscules.
- La balise de fin </book> correspond à la balise de début <book>.
<book>
Ceci est un livre</book>
- Ce document bien formé comporte quatre éléments différents <list>, <item>, <ITEM> et <Item>.
<list>
<item>
Voiture</item>
<ITEM>
Avion</ITEM>
<Item>
Train</Item>
</list>
- <item> - </itm> et <item> - </ITEM> ne correspondent pas.
<list>
<item>
Voiture</itm>
<item>
Avion</ITEM>
<item>
Train</item>
</list>
IV. Exemple 4▲
Si la balise de début figure dans le contenu d'un autre élément, la balise de fin doit également figurer dans le contenu du même élément. Plus simplement, les éléments délimités par les balises de début et de fin doivent s'imbriquer correctement les uns dans les autres.
- Ces éléments sont correctement imbriqués.
<Weight>
<number>
12</number>
<unit>
gramme</unit>
</Weight>
- Autre exemple de document bien formé.
<book>
<chapter>
<title>
Introduction</title>
</chapter>
<chapter>
<title>
Récit</title>
<subChapter>
<title>
Partie 1</title>
</subChapter>
<subChapter>
<title>
Partie 2</title>
</subChapter>
</chapter>
<chapter>
<title>
Index</title>
</chapter>
</book>
- L'élément <italic> n'est pas correctement imbriqué.
<text>
<bold><italic>
XML</bold></italic>
</text>
V. Exemple 5▲
La fin de chaque élément commençant par une balise de début doit être indiquée par une balise de fin comportant le même nom que celui utilisé dans la balise de début. Le texte figurant entre la balise de début et la balise de fin est appelé le contenu de l'élément. Un élément sans contenu prend la forme spéciale suivante : <nom/> . La barre oblique devant le caractère > remplace la balise de fin.
- Chaque élément comporte une balise de fin ou adopte la forme spéciale. Il n'y a aucune différence entre <AAA></AAA> et <AAA/> en XML.
<listOfTags>
<AAA></AAA>
<BBB></BBB>
<CCC/>
<DDD/>
</listOfTags>
- Une erreur très fréquente consiste à oublier la barre oblique.
<description>
Il y a des pommes <color>
jaunes<color>
et <color>
rouges</color>
.
</description>
VI. Exemple 6▲
Les noms d'éléments peuvent comporter des lettres, des chiffres, des tirets, des traits de soulignement, des deux-points ou des points. Le caractère deux-points (:) ne peut être utilisé que dans le cas particulier où il sert à séparer des espaces de noms. Les noms d'éléments commençant par xml, XML ou une autre combinaison de la casse de ces lettres sont réservés à la norme XML.
- Document comportant des caractères autorisés.
<permittedNames>
<name/>
<
xsl
:
copy-of/>
<A_long_element_name/>
<A.name.separated.with.full.stops/>
<a123323123-231-231/>
<_12/>
</permittedNames>
- Ce document comporte plusieurs erreurs.
<forbiddenNames>
<A;name/>
<last@name>
<@#$%^()%+?
=
/>
<A*2/>
<1ex/>
</forbiddenNames>
- Les noms ne peuvent pas commencer par xml.
<forbiddenNames>
<xmlTag/>
<XMLTag/>
<XmLTag/>
<xMlTag/>
<xmLTag/>
</forbiddenNames>
VII. Exemple 7▲
Un élément peut comporter aucun, un ou plusieurs attributs. Les caractères autorisés sont les mêmes que pour les noms d'éléments. Le nom d'un attribut est séparé de sa valeur par le caractère =. La valeur de l'attribut doit être indiquée entre guillemets simples '…' ou doubles « … » . Si un guillemet simple ou double est utilisé dans la valeur d'un attribut, le délimiteur contraire doit être utilisé.
- Document comportant des attributs bien formés.
<elements-with-attributes>
<el _ok
=
"oui"
/>
<one attr
=
"une valeur"
/>
<several
first
=
"1"
second
=
'2'
third
=
"333"
/>
<apos_quote
case1
=
"Aujourd'hui"
case2
=
'Il lança : "Salut, tout le monde!" '
/>
</elements-with-attributes>
- Document comportant des attributs incorrects.
<errors>
<wrong_char a*b
=
"23432"
/>
<mismatched_separator value
=
"12'/>
<wrong_separator_type value="
aa
"aa"
/>
<wrong_separator_type
value
=
'bb'
bb
'/>
<wrong_start XML-ID = "xml234"/>
</errors>
VIII. Exemple 8▲
Les caractères < et & ne peuvent pas être utilisés dans le texte, car ils sont utilisés dans le balisage. Si vous devez employer ces caractères, utilisez < à la place de < et & à la place de &.
- Substitution de & et de <.
<example>
<isLower>
23 <
46
</isLower>
<ampersand>
Dupond &
fils
</ampersand>
</example>
- Les caractères & et < ne peuvent pas être utilisés dans du texte.
<example>
<isLower>
23 < 46
</isLower>
<ampersand>
Dupond &
fils
</ampersand>
</example>
IX. Exemple 9▲
Les caractères >, " , et ' peuvent également être remplacés par > , " et ' respectivement.
- Substitutions possibles.
<example>
<right-bracket>
À la fois > et >
sont autorisés</right-bracket>
<double-quote>
À la fois " et "
sont autorisés</double-quote>
<apostrophe>
À la fois ' et '
sont autorisés</apostrophe>
Cela est utile dans : <el
value
=
" ' " ' "
/>
</example>
X. Exemple 10▲
Des commentaires peuvent figurer n'importe où dans un document en dehors des autres balises. Un processeur XML peut permettre à une application, sans que cela soit une obligation, d'extraire le texte des commentaires. La chaîne de caractères « -- » (deux tirets) ne doit pas figurer à l'intérieur des commentaires.
- Les commentaires peuvent comporter n'importe quel caractère à l'exception des caractères -.
<!-- doc A -->
<example>
<!-- <HEAD> -->
<!-- Caractères <&< -->
</example>
- Les commentaires ne doivent pas comporter la chaîne de caractères -.
<example>
<!-- A -- B -->
</example>
XI. Exemple 11▲
Les instructions de traitement (PI - Processing instruction en anglais) permettent aux documents XML de contenir des instructions destinées aux applications.
- Instructions de traitement.
<example>
<?perl lower-to-upper-case ?>
<?web-server add-header = "université" ?>
<text>
vscht</text>
</example>
- Une instruction de traitement doit se terminer par ?>.
<example>
<?perl run _>
</example>
XII. Exemple 12▲
Les sections CDATA permettent de ne pas traiter les blocs de texte comportant des caractères qui seraient normalement identifiés comme du balisage. Les sections CDATA commencent par la chaîne « <![CDATA[ » et se terminent par la chaîne « ]]> ». La chaîne ']]>' ne doit pas figurer à l'intérieur d'une section CDATA.
- Section CDATA.
<example>
<![CDATA[
<aaa>bb&cc<<<
]]>
</example>
- Une section CDATA ne doit pas comporter la chaîne de caractères ']]>'.
<example>
<![CDATA[
<aaa>bb
]]>
cc<<<]]>
</example>
XIII. Exemple 13▲
Les documents XML peuvent, et d'ailleurs doivent, commencer par une déclaration XML qui précise la version de la norme XML utilisée.
- Spécification de la version XML.
<?xml version="1.0"?>
<text>
Ce document respecte la spécification XML 1.0.</text>
- Spécification du codage.
<?xml version="1.0" encoding="ISO-8859-2"?>
<text>
Si aucun codage n'est indiqué, UTF-8 est pris par défaut</text>