Travaux pratiques : les schémas du W3C

Transcription

Travaux pratiques : les schémas du W3C
Travaux pratiques : les schémas du W3C
1
Quelques liens utiles
XML Schema tome 0 : Introduction http://www.w3.org/TR/xmlschema-1/
(version française 1 )
Le tome 0 de la spécification XML Schema n’est qu’une introduction et n’est pas un document normatif.
Son objectif est de fournir un texte facilement compréhensible des fonctions offertes par XML Schema pour
comprendre comment créer des schémas avec le langage XML Schema. Les documents normatifs XML
Schema tome˜1˜: Structures 2 et XML Schema tome˜2˜: Types de données 3 contiennent une description
complète et formelle de la norme. Dans cette introduction, les fonctions du langage sont décrites au travers
d’un grand nombre d’exemples complétés par des renvois au texte normatif.
XML Schema tome 1 : Structures http://www.w3.org/TR/xmlschema-1/
XML Schema tome 1 : Structures est la spécification du langage de définition de XML Schema, qui offre
les fonctions pour spécifier les structures et les contraintes de contenu de documents XML 1.0, y compris
ceux qui font usage des espaces de noms de XML. Le langage des Composant de schéma i-même écrit en
XML 1.0 et utilise des espaces de noms, est une réécriture significative et une extension considérable des
possibilités fonctionnelles des DTD de XML 1.0. Cette spécification est directement liée à XML Schema
tome 2 : Types de données (version française du tome˜1 4 ).
XML Schema tome 2 : Types de données http://www.w3.org/TR/xmlschema-2/
Pas de version française disponible.
Le cours en ligne de w3schools http://www.w3schools.com/schema
Un autre cours en ligne à la fois court et précis, à parcourir http://en.wikibooks.org/wiki/XML Schema
2
Premier exemple
Pour valider vos fichiers XML en utilisant les schémas, vous pouvez
• utiliser la partie validation de schéma de l’outil xmllint (option --schema ).
• utiliser l’éditeur XML validant de Eclipse pour JEE (commande eclipse-ee ).
Téléchargez le schéma ci-dessous :
1.
2.
3.
4.
http://xmlfr.org/w3c/TR/xmlschema-0/
http://www.w3.org/TR/xmlschema-1/
http://www.w3.org/TR/xmlschema-2/
http://xmlfr.org/w3c/TR/xmlschema-1/
1
<?xml version="1.0" encoding="iso-8859-1" ?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
version="1.0"
>
<xs:element name="nom">
<xs:simpleType>
<xs:restriction base="xs:normalizedString">
<xs:whiteSpace value=’collapse’/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="age" >
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minExclusive value=’0’/>
<xs:maxExclusive value=’200’/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:complexType name="typePersonne">
<xs:sequence>
<xs:element ref="nom" />
<xs:element ref="age" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:element name="personne" type="typePersonne" />
</xs:schema>
ainsi que ce document XML :
<?xml version="1.0" encoding="iso-8859-1" ?>
<personne
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="simple.xsd"
>
<nom> Jean Durand
<age> 30 </age>
</nom>
</personne>
Faites plusieurs essais de validation en essayant d’introduire dans le document XML des données non valides.
3
Un schéma pour les données du Master
Je vous propose maintenant de construire un schéma correspondant à la DTD des travaux pratiques précédents.
Le but est toujours de représenter les unités du Master, les semestres et les intervenants.
2
3.1
Débuter
• Utilisez ce tutoriel 5 pour générer automatiquement votre premier schéma à partir de votre fichier XML
(vous pouvez télécharger directement le logiciel ici 6 ). Utilisez-le pour valider votre fichier XML.
• Faites la même opération mais en partant de votre DTD. Comparez les différences obtenues.
• Vous pouvez ensuite préciser le type de chaque éléments pour valider le document XML de manière de plus
en plus fine. Définissez un type simple nommé pour chaque élément.
• Faites en sorte que nous puissions ajouter aux UE et aux intervenants des informations non-prévues.
3.2
Extension et restriction
Une fois le schéma terminé et testé, vous pouvez essayer de dériver des types complexes pour créer d’autres types
complexes.
• Par exemple, vous pouvez dériver par extension un intervenant pour obtenir une personne en lui
ajoutant une adresse.
• Autre exemple : vous pouvez dériver par restriction le type complexe des unités d’enseignement pour
coder les unités d’enseignement de Luminy (le lieu d’enseignement devient fixe).
• Faites en sorte de créer un élément abstrait objet (qui a un nom et un code qui l’identifie) et indiquez
ensuite par des substitutions que les UE, les intervenants et les parcours dérivent de objet .
3.3
Préciser les clefs et les références
Améliorez la validation en vérifiant les références de votre fichier XML (semestre vers UE, UE vers responsable,
etc.). Utilisez pour cela le mécanisme des clefs uniques et des références (dernière partie du cours sur les schémas).
5. http://www.dotkam.com/2008/05/28/generate-xsd-from-xml/
6. ress-XSD
3