You are on page 1of 6

Schéma XML de documents de filmographie - Corr... http://igm.univ-mlv.fr/ens/IR/IR3/2008-2009/XML-X...

:: Enseignements :: Ingénieurs 2000 :: IR3 :: 2008-2009 :: XML-XSLT ::

Schéma XML de documents de


filmographie - Correction

Le but de ce TD est d'écrire des schémas XML d'un document XML existant.

Préliminaires
L'objectif du TP est de faire un schéma XML qui valide les fichiers de filmographie (par exemple
bergman-flm.xml). Pour valider le document avec votre grammaire bergman.xsd, taper la
commande:

xmllint bergman-flm.xml --noout --schema bergman.xsd

Exercice 1 - Structure générale

Indiquer que le document comporte un élément filmographie.


Forcer la séquence des quatre éléments suivants dans filmographie : resumes, aliases,
perso, roles.
Les éléments resumes, aliases et roles seront définis comme des séquences illimitées
respectivement d'éléments resume, alias et role. Pour valider cet exercice avant de
continuer, laisser les déclarations de perso, resume, alias et role sans type.

<?xml version="1.0"?>
<s:schema xmlns:s="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.geocities.com/Hollywood/Hills/2440/"
xmlns:f="http://www.geocities.com/Hollywood/Hills/2440/">

<s:element name="filmographie">
<s:complexType>
<s:sequence>
<s:element ref="f:resumes"/>
<s:element ref="f:aliases"/>
<s:element ref="f:perso"/>
<s:element ref="f:roles"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="resumes">
<s:complexType>
<s:sequence>
<s:element maxOccurs="unbounded" ref="f:resume"/>

1 sur 6 26.11.2008 11:34


Schéma XML de documents de filmographie - Corr... http://igm.univ-mlv.fr/ens/IR/IR3/2008-2009/XML-X...

</s:sequence>
</s:complexType>
</s:element>

<s:element name="resume"/>
<s:element name="aliases">
<s:complexType>
<s:sequence>
<s:element maxOccurs="unbounded" ref="f:alias"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="alias"/>
<s:element name="perso"/>
<s:element name="roles">
<s:complexType>
<s:sequence>
<s:element maxOccurs="unbounded" ref="f:role"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="role"/>
</s:schema>

Exercice 2 - Définition des éléments 'alias' et 'role'

Définir un alias comme contenant du texte et les attributs filmref, pays et date. Les attributs
filmref et date sont obligatoires.
Forcer date à être un nombre de 4 chiffres, qui commence par 1 ou 2. Déclarer cet attribut
de la manière suivante :

<s:attribute name="date">
<s:simpleType>
...
</simpleType>
<s:attribute name="date">

L'attribut filmref doit comporter au moins deux caractères, le premier caractère étant 'f' et les
suivants représentant un entier.

Exercice 3 - Définition de l'élément 'resume'

L'élément resume peut contenir un mélange de texte et d'éléments (exemple : le film d'Anthony
Asquith).
Faire en sorte de spécifier resume sans avoir à définir les éléments qu'il peut contenir. Indication
: utiliser la balise any avec l'attribut processContents.

2 sur 6 26.11.2008 11:34


Schéma XML de documents de filmographie - Corr... http://igm.univ-mlv.fr/ens/IR/IR3/2008-2009/XML-X...

Exercice 4 - Définition de l'élément 'perso'

Définir l'élément perso comme une séquence d'éléments qui apparaissent dans n'importe
quel ordre, mais qui doivent tous apparaître une fois.
Définir l'élément biographie comme suit : cet élément contient des éléments p qui
eux-mêmes mélangent du texte et des balises. Indication : ces éléments p peuvent contenir
des éléments citation.
Définir mariages comme un ensemble d'éléments mariage. L'élément mariage aura un
attribut obligatoire : debut qui est une année. Il aura aussi deux attributs optionnels : fin
qui est une année et conclusion qui ne peut prendre que deux valeurs, 'divorce' et 'mort'.

<?xml version="1.0"?>
<s:schema xmlns:s="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.geocities.com/Hollywood/Hills/2440/"
xmlns:f="http://www.geocities.com/Hollywood/Hills/2440/">

<s:element name="filmographie">
<s:complexType>
<s:sequence>
<s:element ref="f:resumes"/>
<s:element ref="f:aliases"/>
<s:element ref="f:perso"/>
<s:element ref="f:roles"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="resumes">
<s:complexType>
<s:sequence>
<s:element maxOccurs="unbounded" ref="f:resume"/>
</s:sequence>
</s:complexType>
</s:element>

<s:element name="resume">
<s:complexType mixed="true">
<s:sequence>
<s:any minOccurs="0" processContents="skip"/>
</s:sequence>
<s:attribute name="realisateur" type="s:string"/>
<s:attribute name="filmref" type="s:NCName"/>
<s:attribute name="img" type="s:NMTOKEN"/>
<s:attribute name="pdf" type="s:NMTOKEN"/>
</s:complexType>
</s:element>
<s:element name="aliases">
<s:complexType>
<s:sequence>

3 sur 6 26.11.2008 11:34


Schéma XML de documents de filmographie - Corr... http://igm.univ-mlv.fr/ens/IR/IR3/2008-2009/XML-X...

<s:element maxOccurs="unbounded" ref="f:alias"/>


</s:sequence>
</s:complexType>
</s:element>
<s:element name="alias">
<s:complexType>
<s:simpleContent>
<s:extension base="s:string">
<s:attribute name="pays" type="s:string"/>
<s:attribute name="filmref" use="required">
<s:simpleType>
<s:restriction base="s:string">
<s:pattern value="f[1-9][0-9]*"/>
</s:restriction>
</s:simpleType>
</s:attribute>
<s:attribute name="date" use="required">
<s:simpleType>
<s:restriction base="s:integer">
<s:pattern value="[12][0-9][0-9][0-9]"/>
</s:restriction>
</s:simpleType>
</s:attribute>
</s:extension>
</s:simpleContent>
</s:complexType>
</s:element>
<s:element name="perso">
<s:complexType>
<s:all>
<s:element ref="f:naissance"/>
<s:element ref="f:mort"/>
<s:element ref="f:mariages"/>
<s:element ref="f:biographie"/>
<s:element ref="f:nom"/>
<s:element ref="f:infos"/>
<s:element ref="f:citations"/>
</s:all>
</s:complexType>
</s:element>
<s:element name="nom" type="s:string"/>
<s:element name="naissance"/>
<s:element name="mort"/>
<s:element name="biographie">
<s:complexType>
<s:sequence>
<s:element maxOccurs="unbounded" ref="f:p"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="p">
<s:complexType mixed="true">
<s:choice maxOccurs="unbounded">

4 sur 6 26.11.2008 11:34


Schéma XML de documents de filmographie - Corr... http://igm.univ-mlv.fr/ens/IR/IR3/2008-2009/XML-X...

<s:element ref="f:i"/>
<s:element ref="f:citation"/>
</s:choice>
</s:complexType>
</s:element>
<s:element name="i"/>
<s:element name="citation"/>

<s:element name="mariages">
<s:complexType>
<s:sequence>
<s:element maxOccurs="unbounded" ref="f:mariage"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="mariage">
<s:complexType>
<s:simpleContent>
<s:extension base="s:string">
<s:attribute name="debut" use="required">
<s:simpleType>
<s:restriction base="s:integer">
<s:pattern value="[12][0-9][0-9][0-9]"/>
</s:restriction>
</s:simpleType>
</s:attribute>
<s:attribute name="fin">
<s:simpleType>
<s:restriction base="s:integer">
<s:pattern value="[12][0-9][0-9][0-9]"/>
</s:restriction>
</s:simpleType>
</s:attribute>
<s:attribute name="conclusion">
<s:simpleType>
<s:restriction base="s:token">
<s:enumeration value="divorce"/>
<s:enumeration value="mort"/>
</s:restriction>
</s:simpleType>
</s:attribute>
</s:extension>
</s:simpleContent>
</s:complexType>
</s:element>
<s:element name="infos"/>
<s:element name="citations"/>

<s:element name="roles">
<s:complexType>
<s:sequence>
<s:element maxOccurs="unbounded" ref="f:role"/>

5 sur 6 26.11.2008 11:34


Schéma XML de documents de filmographie - Corr... http://igm.univ-mlv.fr/ens/IR/IR3/2008-2009/XML-X...

</s:sequence>
</s:complexType>
</s:element>
<s:element name="role">
<s:complexType>
<s:simpleContent>
<s:extension base="s:string">
<s:attribute name="personnage" type="s:string"/>
<s:attribute name="misc" type="s:string"/>
<s:attribute name="filmref" use="required">
<s:simpleType>
<s:restriction base="s:NCName">
<s:pattern value="f[1-9][0-9]*"/>
</s:restriction>
</s:simpleType>
</s:attribute>
<s:attribute name="date" use="required">
<s:simpleType>
<s:restriction base="s:gYear">
<s:pattern value="[12][0-9][0-9][0-9]"/>
</s:restriction>
</s:simpleType>
</s:attribute>
</s:extension>
</s:simpleContent>
</s:complexType>
</s:element>
</s:schema>

© Université de Marne-la-Vallée

6 sur 6 26.11.2008 11:34

You might also like