Combinar datos de varios esquemas distintos

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

Inicio >  Orígenes y destinos de datos > XML y esquemas XML >

Combinar datos de varios esquemas distintos

MapForce  permite combinar varios archivos en un solo archivo de destino.

 

El ejemplo de este apartado combina varios componentes de origen con esquemas distintos en un solo esquema de destino. En la sección Procesar varios archivos de entrada o salida simultáneamente se explica cómo combinar un número aleatorio de archivos usando el mismo esquema.

 

El archivo CompletePO.mfd de la carpeta ...\MapForceExamples combina tres archivos XML en un archivo XML de orden de compra.

merge-xml1

Observe que los datos de varios componentes de origen se combinan en un solo archivo XML de destino (CompletePO).

 

ShortPO es un esquema que tiene asociado un archivo XML de instancia y contiene los datos sobre los artículos y el número de cliente (en este archivo solo hay un cliente con número de cliente 3).
Customers es un esquema que tiene asociado un archivo XML de instancia y contiene el número de cada cliente e información sobre ellos como el nombre del cliente y su dirección.
Articles es un esquema que tiene asociado un archivo XML de instancia y contiene datos sobre los artículos, como el precio, el nombre y el número de identificación.
CompletePO es un esquema sin archivo de instancia asociado porque todos los datos vienen de los tres archivos XML de instancia. La estructura jerárquica de este archivo permite combinar todos los datos XML y darles salida.

 

Este archivo de esquema debe crearse en un editor XML como XMLSpy. No se genera con MapForce (aunque se podría crear si tuviera un archivo de instancia CompletePO.xml).

 

La estructura de CompletePO es una combinación de la estructura de los archivos XML de origen.

 

El componente de filtrado Customer sirve para buscar/filtrar los datos donde el número de cliente sea idéntico en los archivos XML ShortPO y Customers y después pasar los datos asociados al componente de destino CompletePO.

 

El nodo CustomerNr de ShortPO se compara con el nodo Number de Customers con ayuda de la función "equal".
Como ShortPO solo contiene un cliente (el número 3), solamente se puede pasar al componente de filtrado los datos disponibles para el cliente número 3.
El parámetro node/row del componente de filtrado pasa los datos de Customer a "on-true" si el parámetro es true, es decir, cuando se encuentra el mismo número (en este caso el número 3).
El resto de datos sobre el cliente y los artículos se pasan al esquema de destino a través de dos componentes de filtrado más.

 


© 2019 Altova GmbH