Conexiones de copia total

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Diseño de asignaciones > Tipos de conexión >

Conexiones de copia total

Las conexiones de copia total crean asignaciones de datos entre estructuras complejas (nodos con elementos secundarios) que son muy parecidas o idénticas. La ventaja principal de las conexiones de copia total es que simplifican el área de trabajo (se crea una conexión gruesa en lugar de muchas).

 

En la asignación las conexiones de copia total se representan por medio de una línea gruesa (con horquillas de entrada y salida para cada uno de los elementos secundarios) que conecta dos estructuras idénticas o similares.

conn_copyAll

Conexión de copia total

Cuando se dibuja una conexión entre dos estructuras en la asignación y MapForce detecta que la estructura de origen y la de destino son compatibles (es decir, que ambas son del mismo tipo que la de destino es un subtipo de la de origen), entonces se crea automáticamente una conexión de copia total. Cuando se ejecute la asignación, todos los datos de instancia se copiarán del origen al destino recursivamente, incluidos los datos secundarios.

 

Para crear conexiones de copia total a mano haga clic con el botón derecho en una conexión que conecte dos nodos similares y que tengan elementos secundarios y seleccione Copia total (copia los elementos secundarios) en el menú contextual.

 

Debe tener en cuenta que:

 

En contextos donde la conexión de copia total no es relevante o no es compatible, no se puede crear este tipo de conexión de forma manual.
No se puede crear una conexión de copia total con el elemento raíz root de un componente XML o de esquema.
Cuando se creen conexiones de copia total entre un esquema y un parámetro de una función definida por el usuario, los dos componentes deben estar basados en el mismo esquema (aunque no es necesario que tengan el mismo elemento raíz).

 

Para crear una conexión de copia total a mano:

1.Cree una asignación nueva.
2.Haga clic en el comando Insertar | Archivo o esquema XML y navegue hasta el archivo books.xml de la carpeta <Documentos>\Altova\MapForce2019\MapForceExamples\Tutorial\.
3.Haga clic en el comando Insertar | Archivo o esquema XML y navegue hasta el archivo library.xsd de la carpeta <Documentos>\Altova\MapForce2019\MapForceExamples\Tutorial\.
4.Dibuje una conexión de asignación entre el nodo book del componente "books" y el nodo publication del componente "library".
5.Haga clic con el botón derecho en la nueva conexión y seleccione Copia total (copia los elementos secundarios) en el menú contextual.

mf_copy-all_example

 

Si existen diferencias entre la estructura de origen y de destino, en tiempo de ejecución la conexión de copia total enumerará los nodos de origen (elementos y atributos) y solo copiará los que existan en el tipo de destino (esto se repite recursivamente).

 

Por ejemplo, en la asignación de la imagen anterior, solamente hay dos elementos secundarios que son idénticos en ambas estructuras (author y title) y, por tanto, están conectados. El nodo id no se incluye automáticamente porque en el origen es un atributo y en el destino es un elemento. Si necesita asignar category a genre, por ejemplo, la conexión de copia total ya no es posible porque se trata de nodos distintos.

 

Cuando un conector de entrada (el icono en forma de triángulo situado en el lateral del componente) recibe una conexión de copia total, no podrá aceptar ninguna otra conexión. Por ejemplo, en la imagen anterior, si intentamos crear una conexión entre category y genre, MapForce solicitará que reemplace la conexión o que cree un duplicado de entrada.

mf_copy-all_override

Crear un duplicado de la entrada (véase Duplicar entradas) solo tiene sentido si el objetivo es que el destino acepte datos de más de una entrada (este no es el caso en este ejemplo). Si elige reemplazar la conexión de copia total, MapForce emite otro mensaje solicitando que se resuelva o elimine la conexión de copia total.

mf_copy-all_resolve

Haga clic en Resolver la conexión de copia total si desea reemplazar la conexión de copia total con varias conexiones estándar basadas en el destino. Si prefiere eliminar la conexión de copia total completamente, haga clic en Eliminar conexiones secundarias.


© 2019 Altova GmbH