Correspondencia de patrones y seguimiento de asociaciones en el CDS

En el escenario siguiente, los clientes han solicitado que el motor de correlación se utilice para rellenar un formulario PDF parecido al siguiente:

Tabla 1. Ejemplo de formulario PDF
Nombre Nombre del empleador Fecha de inicio Retribución anual antes de impuestos
Pat The Gingerman Bakery 2/1/2004 30000
Grace Jarmin Pharmaceutical 3/1/2002 50000

Cada campo de este formulario PDF tiene una identidad exclusiva. Por ejemplo, el campo que contiene el nombre, Pat, se identifica como Job0.Name. El campo que contiene 30000 se identifica como Job0.Salary.

Tenga en cuenta cómo puede almacenarse la información de la admisión en el CDS:

Figura 1. Ingresos de trabajo en CDS

Para rellenar el campo de nombre (Name) en el formulario PDF anterior, la especificación de correlación debe contener una regla que estipule que para cada ingreso (Income) perteneciente a una persona (Person), se debe proporcionar como salida el nombre (firstName) de la persona en el campo Name. En el lenguaje de correlación, esto puede expresarse tal como se indica a continuación:

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>

Esta regla de correlación se puede parafrasear como "Para cada entidad Income contenida en una entidad Person, crear una entidad de destino de tipo Job". El atributo Name de la entidad Job se correlaciona desde el atributo firstName de la entidad Person que contiene la entidad Income que se está correlacionando."

Tenga en cuenta el uso de la sintaxis entity="Person" en la línea 4 para indicar que el atributo firstName procede de la entidad Person y no de la entidad Income. Un ejemplo más complejo de este tipo de especificación de correlación incluye las siguientes asociaciones o enlaces de una entidad a otra.