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 7. RÉALISATION DE L’ETL 47<br />

}<br />

}<br />

foreach ( son in xpathquery )<br />

{<br />

sonTagName := son -> tagName ;<br />

//i.e xs: element<br />

sonName = elemName ( son );<br />

if( isElement ( sonTagName )) then<br />

{<br />

// process the child element if nee<strong>de</strong>d<br />

}<br />

else<br />

if( isAttribute ( sonTagName )) then<br />

{<br />

// process the attribute<br />

returnval []:=" elemName /[ @sonName ]";<br />

}<br />

}<br />

}<br />

}<br />

return returnval ;<br />

7.1.7 Chargement <strong><strong>de</strong>s</strong> schémas<br />

Le chargement <strong><strong>de</strong>s</strong> schémas est intimément lié à la méthodologie et au langage <strong>de</strong> programmation<br />

utilisés. Nous invitons le lecteur à consulter la documentation <strong><strong>de</strong>s</strong> outils <strong>de</strong><br />

développement dont il fait usage. Il trouvera néanmoins un exemple PHP <strong>dans</strong> le co<strong>de</strong> source<br />

en annexe.<br />

7.1.8 Extraction <strong><strong>de</strong>s</strong> éléments et attributs définis <strong>dans</strong> un XSD<br />

Une façon d’extraire les éléments et les attributs définis <strong>dans</strong> un schéma XSD consiste à :<br />

– prendre tous les éléments <strong>de</strong> XSD et<br />

– extraire, pour chacun <strong>de</strong> ces éléments, les attributs éventuels.<br />

Nous illustrons cette démarche <strong>dans</strong> le listing 7.7.<br />

Listing 7.7 – Traitement <strong>de</strong> l’élément défini et <strong>de</strong> ses fils<br />

function extractElem ()<br />

{<br />

" initialize xmldoc to the XSD document ";<br />

" initialize xptah to xpath of the document ";<br />

query :="// xs: element [ @name ]";<br />

// all <strong>de</strong>fined elements<br />

xpathquery := xpath -> query ( query );<br />

// run query<br />

elemlist := array ();<br />

// list of elements and attributes<br />

tmplst := array ();<br />

// the name of the current element and its attributes<br />

foreach ( elem in xpathquery )<br />

{

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

Saved successfully!

Ooh no, something went wrong!