13.07.2013 Views

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 ...

SHOW MORE
SHOW LESS

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]

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!