Création de documents XML
Un document XML est écrit dans un langage à balises spécifiques respectant la spécifiation XML. Il faut donc respecter les règles d'écriture pour les documents XML.
Figure: Les règles d'écritures sont à respecter.

Exemple d'un document XML
Les documents XML sont formés de balise et de données. La différence avec les documents HTML est que les balises XML sont créées par son auteur. L'autre différence est que le document XML stocke et décrit les données alors que celui en HTML décrit comment les afficher.
<?xml version = "1.0" encoding="UTF-8" standalone="yes" ?>
Pour le code suivant, on a la deuxième ligne qui représente l'élement racine "master" ; l'élément racine est unique dans un document XML. L'élément artiste ne contient pas de données mais un enfant : "patronyme". Il en est de même pour "patronyme". Par contre, "prenom" et "nom" contiennent des données. L'élément "age" contient un attribut nommé unité qui a pour valeur "ans".
?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<master>
<artiste>
<patronyme>
<prenom>Paul</prenom>
<nom>Baudry</nom>
<age unité="ans">55</age>
</patronyme>
</artiste>
<artiste>
<patronyme>
<prenom>Eugène</prenom>
<nom>Boudin</nom>
<age unité="ans">68</age>
</patronyme>
</artiste>
</master>
Règles d'écriture
La structure du XML est prévisible et très régulière. Un document qui respecte les règles suivantes est bien formé.
- Il faut un élément racine unique. Cet élément racine contiendra tous les autres éléments du document. Les seules parties en dehors de l'élément racine sont le prologue, les instructions et les commentaires.
- Toutes les balises doivent être fermées ligne 1 à 3. Les éléments ne
contenant pas de données, élément vide, sont auto-fermants (ligne
4)
<prenom>Paul</prenom> <nom>Baudry</nom> <age unité="ans">55</age> <image href="file://baudry.jpg"/>
- Les éléments doivent être correctement imbriqués. Correct pour le code
suivant.
<patronyme> <prenom>Georges</prenom> <nom>Braque</nom> </patronyme>
Incorrect pour le code suivant :<patronyme> <prenom>Georges</prenom> <nom>Braque</patronyme> </nom>
- La casse a une
importance.
<prenom>Georges</prenom> <Nom>Braque</Nom>
- Les valeurs d'attributs sont entre guillemets
""
<age unité="ans">55</age>
- Ne pas débuter un nom de balise par : xml, par un chiffre ou une
ponctuation sauf _ (underscore). Lignes 1 et 2 incorrectes, ligne 3
correcte.
<8_livre>Lobo le loup</8_livre> <"auteur">Ernest Thompspn Seton</"auteur> <_annee>2016</_annee>
- Pas d'espace, ni d'accent dans les balises.
- Éviter les balises HTML (de préférence).
-
Important: Les espaces (entrée, tabulation et autres) sont conservées dans le XML, ce qui peut s'avérer gênant pour un usage dans d'autres applications. Éviter le cas suivant :
<prenom> Georges</prenom> <Nom> Braque </Nom>
Éléments, attributs et valeurs
Un élément XML est l'élément de base du document XML. Il peut contenir du texte, des attributs ou d'autres éléments.
Le nom de l'élément doit décrire le but de l'élément et son contenu. Les éléments peuvent avoir des attibuts associés à des valeurs entre apostrophes. Les informations contenues dans les valeurs sont considérées comme des métadonnées. Un élément peut avoir un nombre quelconque d'attributs sous conditions que chacun d'entre eux a un nom unique.
L'élément racine
Tout document doit posséder un et un seul élément racine. Cet élément est celui qui contient tous les autres éléments.
Les éléments enfants
L'élément racine peut avoir autant d'éléments enfants qu'il est nécessaire. La balise fermante n'est jamais facultative comme c'est parfois le cas en HTML. Il est conseillé d'utiliser des noms évocateurs.
Imbrication d'éléments
On peut souhaiter découper un document XML en parties plus petites. Cela peut-être des sections pour un livre de cuisine qui vont distinguer les entrées, les plats et les desserts ou pour identifier une personne un patronyme qui est composé d'un élément enfant nom et d'un autre élément enfant prénom. Il faut que l'imbrication soit correcte.
Les attributs
Un attribut permet de stocker des informations supplémentaires sur un élément sans ajouter de texte au contenu de l'élément lui-même. Il est composé d'une paire nom/valeur et est ajouté à la balise entrante.
<nom lang="français">L'Arc de Triomphe</nom>
<nom lang="english">The Empire State Building</nom>
Les éléments vides
Les éléments vides n'ont pas d'information mais ils contiennent des attributs pour stocker des informations sur l'élément lui-même. Un élément vide peut se représenter avec une seule balise autofermante.
<image_statue href="file://images/colosse.jpg" />
<reference id="5408" l="245" h="220" />
Les commentaires
Les commentaires ne sont pas pris en compte par le processeur lors du traitement.
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!–-Version 2017-05-02-->
Entités prédéfinis
Les entités sont comme un texte automatique, c'est un moyen d'ajouter du texte à un document XML sans devoir tout le resaisir.
- Pour créer le caractère esperluette
(&),
&
- créer le signe inférieur (<),
<
- pour créer le signe supérieur
(>),
>
- créer un guillemet ("),
"
- créer une apostrophe( '),
'
Affichage des éléments sous forme de texte
Si on souhaite placer des éléments et des attributs XML sans qu'il soient interprétés mais uniquement affichés, on les insère dans une section CDATA
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<master><!-- Ceci est un commentaire -->
<artiste>
<image href="file://baudry.jpg"/>
<patronyme>
<prenom>Paul</prenom>
<nom>Baudry</nom>
</patronyme>
<![CDATA[
<date_naissance>7 novembre 1828 </date_naissance>
<lieu_naissance>La Roche sur Yon, France</lieu_naissance><date_mort>17 janvier 1886</date_mort>
<lieu_mort>Paris, France</lieu_mort>
<mouvements>Académique</mouvements>
]]>
</artiste>
</master>
Figure: Affichage du XML dans Firefox. Les éléments contenus dans la section CDATA sont affichés comme du texte.
