Altova MapForce 2024 Professional Edition

Un archivo de origen a un archivo de destino

Inicio Anterior Inicio Siguiente

En este tutorial se explica cómo crear una asignación básica. El objetivo es transferir datos de un archivo XML A que tenga asignado un esquema XML A y pasarlos a un archivo XML B que tenga asignado un esquema B. Estos son los pasos que seguiremos a grandes rasgos:

 

1.Como estamos usando dos estructuras de datos, vamos a crear dos componentes (origen y destino) en el diseño de la asignación.

2.La transformación de un documento en otro se lleva a cabo usando un lenguaje de transformación que tendremos que elegir.

3.Después tendremos que conectar los nodos de origen con los nodos de destino deseados. Estas conexiones son las que constituyen la asignación y determinan a qué nodo de destino está asignado cada nodo de origen.

4.Como resultado de la asignación obtenemos el documentos XML de destino, que es válido conforme al esquema de destino.

5.Por último, guardamos el archivo XML de salida.

 

Para más información sobre transformaciones de datos consulte el modelo abstracto que ve más abajo.

 

Modelo abstracto

El modelo abstracto que ve a continuación ilustra una transformación de datos del tutorial:

MF_Tut1_SchemaToSchema

La asignación tiene un origen y un destino. El esquema de origen (Books.xsd) describe la estructura del archivo de instancia de origen (Books.xml). El esquema de destino (Library.xsd) describe la estructura del archivo de instancia de destino (BooksOutput.xml). Al conectar los nodos del componente de origen a los del componente de destino la asignación genera código de transformación en XSLT 3.0. El código de transformación lee código de Books.xml y escribe esos datos en BooksOutput.xml.

 

Archivos de origen y de destino

El fragmento de código siguiente contiene algunos de los datos de muestra de Books.xml que se usan como datos de origen.

 

<books>
  <book id="1">
     <author>Mark Twain</author>
     <title>The Adventures of Tom Sawyer</title>
     <category>Fiction</category>
     <year>1876</year>
  </book>
  <book id="2">
     <author>Franz Kafka</author>
     <title>The Metamorphosis</title>
     <category>Fiction</category>
     <year>1912</year>
  </book>  
</books>

 

Y así es como queremos que queden los datos en el archivo de destino BooksOutput.xml:

 

<library>
  <last_updated>2015-06-02T16:26:55+02:00</last_updated>
  <publication>
     <id>1</id>
     <author>Mark Twain</author>
     <title>The Adventures of Tom Sawyer</title>
     <genre>Fiction</genre>
     <publish_year>1876</publish_year>
  </publication>
  <publication>
     <id>2</id>
     <author>Franz Kafka</author>
     <title>The Metamorphosis</title>
     <genre>Fiction</genre>
     <publish_year>1912</publish_year>
  </publication>
</library>

 

Lo que queremos es rellenar los elementos <author>, <title>, <genre> y <publish_year> del archivo de destino con el contenido de los elementos equivalentes del archivo de origen (<author>, <title>, <category>, <year>). El atributo id del archivo de origen se asigna al elemento <id> del archivo de destino. Por último, debemos rellenar el elemento <last_updated> del archivo de destino con la fecha y hora en que el archivo se actualizó por última vez.

 

Para llevar a cabo la transformación de datos siga los pasos que describimos en los apartados siguientes.

 

© 2017-2023 Altova GmbH