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