Schéma XML
Définition des règles de documents XML
Schéma XML est une spécification W3C finale que l'on peut être implémenter sans craindre de modification ultérieure.
Le but
Schéma fournit un ensemble de règles qui définissent la structure, les éléments du contenu et la sémantique de documents XML.
De quoi est constitué un schéma?
Un schéma est un document XML qui définit les règles
d'autres documents XML. C'est une liste de règles et une règle
définit:
- des sous-éléments,
- le type de donnée.
Une balise XML est définie par une structure "ElementType",
qui contient une liste de sous-éléments.
L'en-tête du schéma doit spécifier un espace de nom.
Comment utiliser un schéma XML?
Exemple d'un document XML et son schéma. Vous aurez besoin d'un programme de validation pour parser le document XML avec le schéma.
Exemple d'un document XML:<voitures xmlns="x-schema:schema.xml"> <voiture> <nom>Porshe</nom> <puissance>2500</puissance> <voiture> </voiture>Le schéma correspondant:
<Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes"> <ElementType nom='voitures' content='eltOnly'> <element type='voiture' /> </ElementType> <ElementType nom='voiture' content='eltOnly'> <element type='nom' dt:type='string' /> <element type='puissance' dt:type='decimal' /> </ElementType> </Schema>
Explications:
<Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes">
Déclare l'espace de nom et les types (datatypes).
<ElementType name='voitures' content='eltOnly'>
Déclare les types, conditions et sous-éléments de l'élément "voitures".
<element type='voiture' />
Ceci est équivalent à <element type='voiture'> </element>,
et cela définit quels éléments sont sous-éléments
de l'élément "voitures".
On peut ajouter d'autres sous-éléments comme:
<element type='van' />
<element type='camion' />
et ainsi de suite...
<ElementType name='voiture' content='eltOnly'>
Déclare un élément avec ses sous-éléments: nom, puissance...
<element type='nom' dt:type='string' /> <element type='puissance' dt:type='decimal' />
Déclare deux éléments et le type du contenu, texte
ou nombre.
Schéma et DTD
DTD à le même rôle que schéma, mais avec des inconvénients:
- Syntaxe spécique, tandis que schéma utilise xml.
- Limitations dans les types de données.
- Moins de types prédéfinis.
Liens
- Description globale par le W3C, structure, datatype.
- MSXML. Parseur pour IExplorer fourni gratuitement par Microsoft.