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 ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
CHAPITRE 5. SCHÉMA <strong>XML</strong> CANONIQUE POUR UN PROCESSUS ETL 33<br />
Listing 5.5 – Exemple <strong>de</strong> définition d’un élément <strong>de</strong> type complexe<br />
< xs:element name =" man " type =" personType "/><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 />
5.5 Règles canoniques<br />
Dans cette section, nous présentons quelques règles permettant d’écrire un schéma XSD<br />
canonique <strong>dans</strong> le cadre d’un processus ETL. Comme nous venons <strong>de</strong> le voir précé<strong>de</strong>mment,<br />
la définition d’un élément <strong>de</strong> type complexe peut avoir un impact important sur le nombre<br />
<strong>de</strong> noeuds <strong>de</strong> l’arbre du schéma. Il nous faut établir quelques règles permettant <strong>de</strong> définir ce<br />
type d’éléments sans augmenter inutilement le contenu du fichier XSD. Le schéma obtenu<br />
doit également respecter les normes du W3C.<br />
Les règles proposées <strong>dans</strong> le cadre <strong>de</strong> ce travail sont les suivantes :<br />
– Seul l’élément racine ne peut être défini comme fils direct <strong>de</strong> l’élément schema ().<br />
– Tout autre élément ne peut être défini que <strong>dans</strong> un type complexe.<br />
– Le nom d’un type complexe ne peut en aucun cas avoir pour préfixe, celui défini <strong>dans</strong><br />
l’espace <strong>de</strong> nom 1 suivi du caractère ” :”.<br />
– Un élément complexe est toujours défini comme au paragraphe 5.4.2.2 (p.32).<br />
– Les éléments <strong>de</strong> type complexe qui ont <strong><strong>de</strong>s</strong> définitions i<strong>de</strong>ntiques doivent se déclarer<br />
comme étant <strong>de</strong> même type complexe.<br />
En appliquant ces règles, on évite <strong>de</strong> gonfler le co<strong>de</strong> inutilement comme <strong>dans</strong> le listing 5.4.<br />
L’élement man et woman sont <strong>de</strong> même type. Il faut définir le type complexe une seule fois.<br />
Le listing 5.6 montre un exemple <strong>de</strong> schéma canonique éliminant les redondances du listing<br />
5.4.<br />
Listing 5.6 – Exemple d’un schéma canonique<br />
<br />
<br />
< xs:schema xmlns:xs =" http: // www .w3.org /2001/ <strong>XML</strong>Schema "><br />
< xs:element name =" personslist " type =" personslistType "/><br />
< xs:complexType name =" personslistType "><br />
< xs:element name =" menlist " type =" menlistType "/><br />
< xs:element name =" womenlist " type =" womenlistType "/><br />
<br />
< xs:complexType name =" menlistType "><br />
< xs:element name =" man " type =" personType "/><br />
<br />
< xs:complexType name =" womenlistType "><br />
< xs:element name =" woman " type =" personType "/><br />
<br />
1 voir [4, 10, 15]