Dans le scénario suivant, les clients ont demandé que le moteur de mappage soit utilisé pour remplir un formulaire PDF qui ressemble au formulaire suivant :
Nom | Nom de l'employeur | Date de début | Salaire annuel avant impôts |
---|---|---|---|
Pat | The Gingerman Bakery | 02/01/2004 | 30000 |
Grace | Jarmin Pharmaceutical | 03/01/2002 | 50000 |
Chaque zone de ce formulaire PDF possède une identité unique. Par exemple, la zone contenant le nom, Pat, est identifiée comme Job0.Name. La zone contenant 30000 est identifiée comme Job0.Salary.
Réfléchissez à la méthode de stockage des informations issues de l'admission dans le magasin de données Cúram :
Pour pouvoir remplir la zone Name du formulaire PDF ci-dessus, la spécification de mappage doit contenir une règle qui indique que pour chaque revenu (Income) appartenant à une personne (Person), le prénom (firstName) de la personne est spécifié dans la zone Name. En langage de mappage, cette règle peut être exprimée comme suit :
1 <map-entity source="Person"> 2 <map-entity source="Income"> 3 <target-entity name="Job" id="JobTarget"> 4 <map-attribute from="firstName" to="Name" entity="Person"/> 5 <map-attribute from="employerName" to="Employer"/> 6 … 7 </target-entity> 8 </map-entity> 9 </map-entity>
Cette règle de mappage peut être paraphrasée comme suit : "Pour chaque entité Income contenue dans une entité Person, créer une entité Target de type Job. L'attribut Name de l'entité Job est mappée à partir de l'attribut firstName de l'entité Person qui contient l'entité Income en cours de mappage."
Remarquez l'utilisation de la syntaxe entity="Person" à la ligne 4 pour indiquer que les attributs firstName proviennent de l'entité Person, et non de l'entité Income. Un exemple plus complexe de ce type de spécification de mappage implique de suivre des associations ou des liens d'une entité à une autre.