En la línea 1 del ejemplo 13, al igual que en varios de los ejemplos anteriores, el elemento <target-entity> ha incluido un atributo de ID "AnnuityTarget". Aunque este atributo es opcional, es una buena práctica incluir un ID en todos los elementos <target-entity>. Esto permite que el motor de correlación de datos distinga entre varias correlaciones diferentes de la misma entidad con el mismo tipo de entidad de destino. Considere el ejemplo siguiente: la entidad Person del almacén de datos común tiene dos indicadores booleanos: isBlind y hasDisability. Ambos se correlacionan con el mismo tipo de entidad de destino, Disability, tal como se indica a continuación:
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 <!-- Crear un registro de discapacidad vacío. --> 13 <condition expression="Person.hasDisability==true"> 14 <target-entity 15 id="DisabilityUnspecified" 16 name="Disability" 17 /> 18 </condition> 19 </map-entity>
El primer destino de las líneas 1-11 garantiza que si un solicitante indica que es ciego se cree un registro de discapacidad del tipo ceguera. El segundo destino, líneas 13-18, comprueba el indicador hasDisability y, si está establecido en true, se crea un registro de discapacidad de tipo no especificado. Al asignar a las dos correlaciones un ID distinto, el motor de correlación puede diferenciar las dos correlaciones. Sin el ID, la segunda correlación no se procesará.