dans des entrepôts de données XML - CoDE - Université Libre de ...
dans des entrepôts de données XML - CoDE - Université Libre de ...
dans des entrepôts de données XML - CoDE - Université Libre de ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
CHAPITRE 5. SCHÉMA <strong>XML</strong> CANONIQUE POUR UN PROCESSUS ETL 29<br />
<strong>de</strong> la <strong><strong>de</strong>s</strong>tination en vue d’extraire non pas l’arborescence du schéma XSD comme telle mais<br />
celle du type <strong>de</strong> document qu’il définit. Arrêtons-nous un instant sur cette problématique et<br />
regardons <strong>dans</strong> la section suivante, d’où proviendrait le problème.<br />
5.2 Difficulté d’extraire une structure définie <strong>dans</strong> un schéma<br />
Un schéma XSD étant un fichier <strong>XML</strong>, on peut l’écrire <strong>de</strong> plusieurs manières. A chaque<br />
présentation du schéma, correspond une arborescence différente mais l’arbre défini lui-même<br />
gar<strong>de</strong> la même structure. Le <strong>XML</strong> schema du listing 2.3 (p. 2.3) par exemple, pourrait encore<br />
s’écrire comme <strong>dans</strong> le listing 5.2.<br />
Listing 5.2 – Autre façon d’écrire le schéma du listing 2.3<br />
<br />
<br />
< xs:schema xmlns:xs =" http: // www .w3.org /2001/ <strong>XML</strong>Schema "><br />
< xs:element name =" personslist "><br />
< xs:complexType ><br />
< xs:element name =" person " type =" personType "/><br />
<br />
<br />
< xs:complexType name =" personType "><br />
< xs:element name =" firstname " type =" xs:string "/><br />
< xs:element name =" middlename " type =" xs:string "/><br />
< xs:element name =" lastname " type =" xs:string " use =" require "/><br />
< xs:attribute name =" birthdate " type =" xs:date "/><br />
<br />
<br />
Dans le co<strong>de</strong> du listing 5.2, l’élément person est déclaré directement à l’intérieur <strong>de</strong> la<br />
définition <strong>de</strong> l’élément personslist. Le fait <strong>de</strong> déclarer person avec un attribut type=”personType”<br />
permet <strong>de</strong> donner sa définition à l’extérieur (<strong>dans</strong> un xs :complexType). Remarquez que ce<br />
même schéma peut encore s’écrire comme <strong>dans</strong> le listing 5.3.<br />
Listing 5.3 – Encore une autre manière d’écrire le schéma du listing 2.3<br />
<br />
<br />
< xs:schema xmlns:xs =" http: // www .w3.org /2001/ <strong>XML</strong>Schema "><br />
< xs:element name =" personslist "><br />
< xs:complexType ><br />
< xs:element name =" person "><br />
< xs:complexType ><br />
< xs:element name =" firstname " type =" xs:string "/><br />
< xs:element name =" middlename " type =" xs:string "/><br />
< xs:element name =" lastname " type =" xs:string " use =" require "/><br />
< xs:attribute name =" birthdate " type =" xs:date "/><br />
<br />
<br />
<br />
<br />