Habilite JavaScript para visualizar esta página.

Altova MapForce 2022 Professional Edition

Tutoriales

Un archivo de origen a un archivo de destino

Desplazarse Inicio Anterior Inicio Siguiente Más

En este tutorial se explica cómo crear una asignación básica. El objetivo es tomar los 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. Por tanto, el archivo de destino contendrá los mismos datos que el de origen, pero tendrá la estructura de un esquema distinto. El código de transformación permite ver cómo cambia la estructura del archivo de origen. La asignación se puede ejecutar solo entre las estructuras pero no podremos obtener una vista previa de la transformación en el panel Resultados. Por tanto, en este ejemplo usaremos un archivo XML llamado Books.xml (véase el fragmento de código más abajo). 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.Después conectaremos los nodos de origen con los nodos de destino correspondientes. Estas conexiones son las que constituyen la asignación y determinan a qué nodo de destino está asignado cada nodo de origen.

3.La transformación de un documento en otro se lleva a cabo usando un lenguaje de transformación, como XSLT, por lo que tendremos que elegir uno.

4.Usamos los motores de transformación integrados de MapForce para transformar el documento XML de origen (Books.xml) en un documento de destino. Este documento de destino será un documento XML válido conforme al XSD de destino (Library.xsd).

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

 

En la imagen siguiente puede ver un modelo abstracto de la transformación de datos de este tutorial:

MF_Tut1_SchemaToSchema

El modelo abstracto anterior muestra los dos pasos del proceso de asignación. En el primero, la estructura de Books.xml se asigna a una estructura nueva llamada Library.xsd. Para ello se usa un lenguaje de transformación. Los lenguajes que puede usar dependen de la versión de MapForce que use. En este caso hemos escogido XSLT2 como lenguaje de transformación. En el segundo paso, el contenido de Books.xml, al que se ha asignado Books.xsd, se asigna al archivo de destino (BooksOutput.xml) y se basa en un esquema nuevo (Library.xsd). 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>

 

Algunos nombres de elementos no coinciden en los archivos de origen y de destino. 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.

 

© 2015-2021 Altova GmbH