Ejemplo: asignar datos XML a datos SQLite
Este ejemplo explica qué pasos se han de seguir para crear una asignación de MapForce que lea datos de un archivo XML y los escriba en una BD SQL. El ejemplo incluye un diseño simple de asignación (.mfd). Si quiere ver este archivo antes de empezar con el ejemplo, lo puede encontrar aquí: <Documentos>\Altova\MapForce2023\MapForceExamples\Tutorial\XMLtoSQLite.mfd.
El objetivo del ejemplo es insertar datos en una BD SQLite desde un archivo XML. Para alcanzar este objetivo necesitará una base de datos SQLite vacía en la que escribir los datos. Como se muestra más abajo, puede crear y explorar la base de datos SQLite tanto con Altova DatabaseSpy como con la shell de línea de comandos que puede encontrar en la página oficial de SQLite.
Para crear la base de datos SQLite:
Si DatabaseSpy está instalado en su ordenador (solo o como parte de Altova Missionkit), puede crear la nueva base de datos SQLite como sigue:
1.Ejecute DatabaseSpy.
2.En el menú Archivo, haga clic en Crear una conexión a una base de datos.
3.Haga clic en Asistente para la conexión y luego en SQLite.
4.Haga clic en Crear una base de datos SQLite nueva e introduzca como ruta c:\sqlite\articles.sqlite. Haga clic en Conectarse.
5.Cuando deba introducir un nombre de BD, deje el predeterminado.
6.Abra un nuevo editor de SQL (Ctrl+N) y ejecute la siguiente instrucción en la BD:
create table articles (number smallint, name varchar(10), singleprice real); |
Otra alternativa para crear la base de datos es la siguiente:
1.Descargue la shell de línea de comandos SQLite para Windows de la página de descargas de SQLite (http://www.sqlite.org/download.html) y extraiga los archivos del .zip a un directorio de su equipo local (para este ejemplo, use C:\sqlite).
2.Ejecute c:\sqlite\sqlite3.exe e introduzca la siguiente instrucción:
create table articles (number smallint, name varchar(10), singleprice real); |
Esto crea la tabla articles en la base de datos en memoria. La tabla articles consiste en tres columnas: number, name y singleprice. Estas columnas sirven para almacenar datos de los elementos con el mismo nombre definidos en el esquema XML de origen. Cada columna tiene designado un tipo de datos compatible con los datos que se van a guardar en esa columna.
3.Ejecute el siguiente comando:
.save articles.sqlite |
Este comando guarda la base de datos en memoria en la siguiente ruta: c:\sqlite\articles.sqlite. Tenga en cuenta que en los pasos siguientes tendrá que hacer referencia a esta ruta.
Ahora ha terminado de crear la base de datos SQLite de prueba que necesitamos para este ejemplo.
Para crear el diseño de asignación de XML a SQLite:
1.Ejecute MapForce y asegúrese de que selecciona el motor de transformación integrado (use el comando de menú Resultados | Built-in Execution Engine).
2.Añada al área de asignación el archivo Articles.xml, que encontrará en la carpeta <Documentos>\Altova\MapForce2023\MapForceExamples\Tutorial (use el comando de menú Insertar | Archivo o esquema XML).
3.Añada al área de asignación la base de datos articles.sqlite creada en los pasos anteriores (use el comando de menú Insertar | Base de datos) y seleccione SQLite.
4.Haga clic en Conectarse. Cuando deba escojer objetos de BD, seleccione la tabla articles.
5.Dibuje las conexiones como se muestra a continuación:
6.Haga clic en el botón A:In en el componente de BD y seleccione la opción Eliminar todos los registros. Esto garantiza que cada vez que se ejecute la asignación, todas las filas de BD ya existentes se borran para evitar duplicados.
7.Haga clic en la pestaña Resultados de la ventana principal de la asignación. MapForce ejecuta la asignación usando el motor de ejecución integrado y muestra la consulta realizada en la ventana Resultados.
8.Ejecute el script SQL para rellenar la BD (use el comando de menú Resultados | Ejecutar script SQL). Si MapForce no encuentra ningún error de tiempo de ejecución, los registros se insertan en la base de datos SQLite.
Para comprobar si los datos se han insertado correctamente en la base de datos SQLite:
1.Haga clic en la pestaña Consulta de la BD de MapForce.
2.Seleccione la la entrada articles de la lista desplegable en la parte superior del panel Consulta de la BD.
3.Introduzca la siguiente consulta en el editor SQL:
select * from articles; |
También puede optar por este otro método:
1.Ejecute el archivo c:\sqlite\sqlite3.exe y abra la BD con el siguiente comando:
.open articles.sqlite |
2.Ejecute la siguiente instrucción:
select * from articles; |
Independientemente del método que escoja para seleccionar los datos de la BD (MapForce o la shell de SQLite), la consulta debería devolver cuatro filas, que corresponden con el número de registros en el archivo XML de origen, que es lo que pretendíamos con este ejemplo.