Un document XML structurant un courrier électronique pourrait se présenter ainsi :
<?xml version="1.0" encoding="ISO-8859-1"?>
<courrier>
<destinataire> albert@free.fr</destinataire>
<expediteur> anne@ifrance.com</expediteur>
<date>
<jour> 15 </jour>
<mois> septembre </mois>
<annee> 2005 </annee>
</date>
<contenu>
<objet> rappel</objet>
<texte> réunion le 20</texte>
</contenu>
</courrier>
Les éléments peuvent être dotés d'attributs. Ainsi on peut rajouter un attribut langue à l'élément contenu pour en préciser la langue :
<?xml version="1.0" encoding="ISO-8859-1"?>
<courrier>
<destinataire> albert@free.fr</destinataire>
<expediteur> anne@ifrance.com</expediteur>
<date>
<jour> 15 </jour>
<mois> septembre </mois>
<annee> 2005 </annee>
</date>
<contenu langue="fr">
<objet> rappel</objet>
<texte> réunion le 20</texte>
</contenu>
</courrier>
Certains éléments peuvent être vide lorsque l'information qu'ils véhiculent se réduit à un ou plusieurs attributs.
Ainsi on pourrait rajouter l'élément vide : <attachement fichier="resume.txt"/>
<?xml version="1.0" encoding="ISO-8859-1"?>
<courrier>
<destinataire> albert@free.fr</destinataire>
<expediteur> anne@ifrance.com</expediteur>
<date>
<jour> 15 </jour>
<mois> septembre </mois>
<annee> 2005 </annee>
</date>
<contenu langue="fr">
<objet> rappel</objet>
<texte> réunion le 20</texte>
<attachement fichier = "resume.txt" />
</contenu>
</courrier>
Tout document xml débute par le prologue xml qui détermine la version d'xml et le jeu de caractères utilisés
<?xml version="1.0" encoding="ISO-8859-1"?>
A toute balise ouvrante correspond une balise fermante :
<balise> contenu </balise>
Les balises vides sont fermées par un "/" en fin de balise :
<balise attribut="valeur" />
Toute balise b1 ouverte avant une balise b2 doit être refermée après celle-ci. En d'autres termes tout élément enfant est ouvert après son élément parent et refermé avant celui-ci :
<parent>........<enfant> ...... </enfant> .........</parent>
Une autre formulation de cette règle consiste à dire qu'un document xml est un arbre.
Un document xml possède une racine unique. En termes sylvestres il s'agit d'un arbre unique et non d'une forêt.
Les noms de balises et d'attributs sont sensibles à la casse (majuscule, minuscule)
Les valeurs d'attributs sont obligatoires et figurent entre guillemets : <contenu langue="fr">
Tout document xml respectant les règles énnoncés ci-dessus est dit bien formé