Des balises définies par les utilisateurs
XML encadre les données entre des balises. Par exemple :
<date>2000-05-11</date>
Chaque donnée est placée entre une balise de début (<date>) et une balise de fin (</date>). Le nom placé dans ces deux balises permet de définir la sémantique de la donnée.
L'ensemble " données et balises " forment un élément. Un élément peut contenir des données, des éléments ou une combinaison des deux (mixed element).
Certains éléments peuvent être vides (ne pas contenir de donnée, ni d'élément), dans ce cas, une balise d'élément vide peut être utilisée :
<saut-de-page/>
XML est un métalangage permettant de définir d'autres langages.
Chaque langage définissant ses balises autorisées et les règles qu'elles doivent suivre.
Un grand nombre de langages ont été, sont et vont être définis à partir d'XML dans les domaines les plus variés.
Les données peuvent être imbriquées, formant une hiérarchie stricte jusqu'à une racine commune qui définit le fichier ou message XML, appelé document :
<client>
<nom>Issy Magasins</nom>
<adresse>
<rue>120 place de Budapest</rue>
<ville>Paris</ville>
<code-postal>75009</code-postal>
<pays>France</pays>
</adresse>
</client>
Les balises de début et les balises d'éléments vides peuvent contenir un ou plusieurs attributs :
<temperature echelle='Celsius'>23</temperature>
<date-livraison-au-plus-tard format='ISO 8601'> 2000-05-20T14:00+2:00</date-livraison-au-plus-tard>
Des balises d'éléments vides peuvent être utilisées pour stocker des données lors d'une instanciation (au sens langage Objet) du message.
<temperature echelle='Celsius' valeur='23'/>
Dans cet exemple la balise echelle et la balise valeur peuvent être vides. Lors de l'utilisation,ces balises sont utilisées pour indiquer l'échelle de température et la valeur de la température par rapport à cette échelle.