Définition des identificateurs d'entité cible

A la ligne 1 de l'exemple 13, comme pour un certain nombre des exemples précédents, l'élément <target-entity> inclut un attribut id "AnnuityTarget". Bien que cet attribut soit facultatif, il est recommandé d'inclure un attribut id dans tous les éléments <target-entity>. Il permet au moteur de mappage de données de faire la différence entre les différents mappages de la même entité au même type d'entité cible. Prenons l'exemple suivant : l'entité Person du magasin de données commun possède deux indicateurs booléens : isBlind et hasDisability. Ces deux indicateurs mappent au même type d'entité cible, Disability, comme suit :

1  <map-entity source="Person">
1    <condition expression="Person.isBlind==true">
2      <target-entity
3        id="DisabilityBlind"
4        name="Disability"
5      >
6        <set-attribute
7          name="disabilityType"
8          value="DT1"
9        />
10     </target-entity>
11   </condition>
12   <!-- Créez un enregistrement d'handicap vide. -->
13   <condition expression="Person.hasDisability==true">
14     <target-entity
15       id="DisabilityUnspecified"
16       name="Disability"
17     />
18   </condition>
19 </map-entity>

La première cible aux lignes 1 à 11 garantit que si un demandeur indique qu'il est aveugle, un enregistrement d'handicap de type cécité est créé. La deuxième cible, aux lignes 13 à 18, vérifie l'indicateur hasDisability. S'il est défini sur true, un enregistrement Disability de type non spécifié est créé. En affectant un attribut id différent aux deux mappages, le moteur de mappage peut différencier ces deux mappages. Sans attribut id, le deuxième mappage ne serait pas traité.