Académique Documents
Professionnel Documents
Culture Documents
1.1. Généralités
Nous avons vu dans le chapitre précédent qu'il était essentiel de pouvoir spécifier des modèles
de documents XML, et que les DTD permettaient cette modélisation. Il existe d'autres langages
de modélisation pour décrire des documents XML et XMLSchema est l'un d'entre eux. Il fait
l'objet de ce chapitre.
XMLSchema n'est pas le seul langage de schémas, mais, dans ce chapitre, chaque fois que
nous parlerons de schéma, il s'agira d'un schéma XMLSchema.
Il est impossible de spécifier un type pour les contenus textuels d'éléments. Tout
contenu textuel est #PCDATA que ce soit un entier, une date ou un texte de plusieurs
phrases.
Le typage des valeurs d'attributs est faible (ID, IDREF, énumérations).
Le contrôle sur le nombre d'occurrences des éléments d'un contenu se résume à 0, 1 ou
beaucoup.
Les préfixes liés à des espaces de noms sont acceptés, mais le document perd sa
validité par rapport à la DTD (sauf siles préfixes sont introduits dans la DTD).
Le langage XMLSchema dispose d'un système de typage complet, on verra que même
une structure de contenu est définie comme un type.
On peut contrôler précisément le nombre d'occurrences d'éléments ou de groupes
d'éléments.
Les espaces de noms ne posent pas de problème de validité.
Puisqu'un schéma est un document XML bien formé, il est composé d'éléments et d'attributs.
Ceux-ci appartiennent à l'espace de noms associé à
l'url http://www.w3.org/2001/XMLSchema désigné par le préfixe xs ou xsd.
Les schémas sont habituellement sauvegardés dans des fichiers d'extension .xsd.
Pour que le préfixe xs soit connu dans tout le schéma, il doit être déclaré dans l'élément racine
à l'aide de l'attribut xmlns:xs.
</xs:schema>
L'attribut xmlns:xs associe le préfixe xs à l'espace de nom XMLSchema, ce qui permet
d'utiliser ce préfixe pour tous les éléments et attributs du schéma.
xsi:noNamespaceSchemaLocation="URL du schéma"
</nom_elt_racine>
Voici par exemple la racine classe d'un document instance du schéma classes.xsd.
</classe>
Exercices d’application
Exercice 1 :
Soit la DTD suivante qui indique que l’ordre d’apparition des éléments identification, titre et salaire n’est
pas important, donner une solution à l’aide d’un schéma XML qui évite l’énumération des combinaisons
autorisées.
NB :
Le type all
Le type all est utilisé lorsque l'on veut spécifier que les éléments contenus dans un type
complexe peuvent apparaître dans n'importe quel ordre. Ils doivent cependant tous apparaître une
et une seule fois.
Exercice 2 :