Institut numerique

Les liens

Nous devons pouvoir établir des liens entre éléments du document XML, liens équivalents à ceux
définis dans les représentations par modèle hiérarchique ou ERD.

But de la requête: afficher pour chaque « activite » les « familles_cout » qui la composent.

Un lien est à établir entre les « éléments » « activite » et « famille », par comparaison des attributs
communs à « activite » et « famille ».

Pour l’élément « activite », il s’agit de l’attribut « id_famille_kout » (dans le « path » « ABC/
activite/composition _activite »).

Pour l’élément « famille cout », il s’agit de l’attribut « id_famille_cout » (dans le « path » « ABC/
famille_cout ».

Les valeurs que prennent ces attributs sont: « fam »1, « fam2 », « fam3 », « fam4 », « fam5 »,
« fam6 », « fam7 » et « fam8 ».

L’évaluation s’opérera en comparant un attribut « fam1 » trouvé dans un élément « activite » aux
attributs « fam… » des éléments « famille_cout »; lorsque l’attribut « fam1 » sera trouvé en
« famille_cout », la valeur de l’attribut « nom_famille » de cet élément « famille_cout » sera
affichée.

Pour l’élément « activite » dont l’attribut « id_activite » = “act1”, les familles de coût figurant dans
l’élément « composition_activite » correspondant aux valeurs prises par l’attribut « id_famille
_kout » sont: « fam1 » et « fam2 ».

Le résultat affiché pour cet élément devrait être « fam1_publicite » et « fam2_bureau ».

D’autres résultats seront affichés: nous ne filtrons pas

Que fait la requête?

La première boucle FOR évalue à partir du « context node » ABC le premier élément de la
séquence « activite » et le lie à la variable « $akty ».

La clause « return » en restitue la valeur de l’attribut « nom_activite ».

Puis, la boucle FOR contenue dans « return » sélectionne à partir du « context node » « ABC », le
premier élément de la séquence « famille_cout » et le lie à la variable « $famy » si la condition
suivante est respectée.

La valeur de l’attribut « id_famille_cout » (de l’élément « famille_cout » traîté) est comparée à celle
prise par l’attribut « id_famille_kout » du premier élément « composition_activite » de l’élément
« activite » lié à la variable « $akty ».

Lorsque la comparaison est positive, la valeur de l’attribut « nom_famille » de l’élément
« famille_cout » est affichée.

La même itération se reproduit pour la « composition_activite » suivante de la variable « $akty », et
ce jusqu’à la dernière « composition_activite» de l’ « activite » traitée.

Ensuite, retour à la première boucle FOR, qui reproduit les mêmes itérations pour le second élément
de la séquence « activite », et ce jusqu’à ce qu’il n’y ait plus d’élément non traité dans la séquence
« activite ».

Le résultat figure ci-dessous.

Notons que nous obtenons un arbre XML ayant pour élément racine /requete_lien, qui a pour
éléments enfants les éléments /activite lesquels contiennent les éléments /nom_activite  et /famille_cout.

Page suivante : Effectuer des opérations arithmétiques

Retour au menu : Elaboration d’une application de la méthode Activity Based Costing utilisant les technologies XML