6. Données semi-structurées et documents XML
Le modèle relationnel n'est pas adapté aux données hétérogènes ou de structure mal définie.
Exemple : Supposons que l'on veuille stocker des informations clients de deux banques indépendantes qui représentent leurs clients de manière différente (fig. 4).
Une représentation comme celle que propose XML permet de manipuler plus facilement des informations irrégulières, grâce à la possibilité de structurer et d'annoter des informations sans la définition d'un schéma fortement structuré et contraignant.
Le langage XML représente les informations sous forme de documents textuels annotés et structurés par des balises. La structure générée par les balises correspond à une arborescence d'éléments.
Par exemple, le document XML ci-dessous intègre les informations des deux tables Client 1 et Client 2 de la figure 4 (Les clients sont représentés sous forme d'éléments <client> qui contiennent les informations connues dans les deux sources, et les deux n-uplets correspondant au client Durant Pierre sont « fusionnés » en un seul élément comptant les deux numéros de client provenant des deux sources.) :

L'utilisation la plus simple de XML consiste à créer des documents sans avoir défini de contrainte sur leur structure. Mais on peut également, comme dans le modèle relationnel, contraindre un (ensemble de) document(s) à respecter une structure définie sous forme de schémas ou types de documents.
Une DTD (définition du type de documents) est un ensemble de règles qui spécifient pour chaque type d'élément les types de ses éléments fils, leur ordonnancement et leur fréquence. Par exemple, la règle DTD suivante signifie que les éléments <client> contiennent dans l'ordre un ou plusieurs éléments <numéro>, trois éléments <nom>, <prénom> et <adresse>, deux éléments optionnels <profession> et <âge>, suivis de zéro ou plusieurs éléments <comptes> :
< !ELEMENT client (nu […]
… pour nos abonnés, l'article se prolonge sur 9 pages…



