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

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 31<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 />

<br />

<br />

<br />

Le schéma du listing 5.4 est plus lourd à manipuler. On voit que les éléments man et<br />

woman sont <strong>de</strong> même type mais la manière dont ils sont définis agrandit inutilement l’arbre<br />

du schéma.<br />

Dans un entrepôt <strong>de</strong> <strong>données</strong> <strong>XML</strong>, on peut faire face à <strong><strong>de</strong>s</strong> schémas relativement grands. Il<br />

faut donc éviter <strong><strong>de</strong>s</strong> répétions inutiles pour ne pas perdre trop <strong>de</strong> temps <strong>dans</strong> le traitement <strong>de</strong><br />

XSD. Nous savons aussi qu’une erreur sur le traitement <strong>de</strong> schéma peut avoir <strong><strong>de</strong>s</strong> conséquences<br />

sur :<br />

– l’interface utilisateur : l’interface permettant <strong>de</strong> faire le mapping entre le schéma source<br />

et <strong><strong>de</strong>s</strong>tination<br />

– l’extraction <strong><strong>de</strong>s</strong> <strong>données</strong> à la source et<br />

– le chargement <strong>de</strong> <strong>données</strong> à la <strong><strong>de</strong>s</strong>tination.<br />

Il nous faut donc proposer quelques règles claires permettant d’écrire un XSD <strong>de</strong> façon plus<br />

appropriée au processus ETL et aux <strong>entrepôts</strong> <strong>de</strong> <strong>données</strong> <strong>XML</strong>. Voyons d’abord, en général,<br />

comment écrire un XSD.<br />

5.4 Règles génerales d’écriture d’un XSD<br />

Dans cette section, nous survolons quelques règles d’écriture d’un XSD. Nous ne reprenons<br />

que les points importants dont le rappel nous semble indispensable à la bonne compréhension<br />

<strong><strong>de</strong>s</strong> règles d’écriture d’un schéma canonique. Le lecteur trouvera plus d’informations <strong>dans</strong><br />

[4, 15].<br />

Notons d’abord que l’élément spécial schema () est la racine (Root Element) <strong>de</strong><br />

l’arbre XSD. Pour définir les éléments et/ou les attributs on procè<strong>de</strong> <strong>de</strong> la manière suivante.<br />

– La définition d’un attribut se fait en spécifiant son nom <strong>dans</strong> l’attribut name <strong>de</strong> l’élément<br />

attribute ().<br />

– La définition d’un élément se fait en spécifiant son nom <strong>dans</strong> l’attribut name <strong>de</strong> l’élément<br />

element ().<br />

On distingue <strong>de</strong>ux types d’éléments : le type simple et le type complexe.<br />

5.4.1 Un élément <strong>de</strong> type simple<br />

Un élément <strong>de</strong> type simple ne peut contenir ni autre élément, ni attribut. Il ne peut<br />

contenir que du texte.<br />

L’élément firstname défini <strong>dans</strong> le listing 2.3 (p. 15) par exemple, est <strong>de</strong> type simple :<br />

<br />

De manière générale, on définit un élément <strong>de</strong> type simple comme suit.

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

Saved successfully!

Ooh no, something went wrong!