Ejemplo: escribir datos XML a un campo SQLite
Este ejemplo explica paso a paso cómo crear una asignación de MapForce que lee datos de varios archivos XML y los escribe en una base de datos SQLite. El objetivo de la asignación es crear un registro de BD nuevo en la base de datos SQLite por cada archivo XML de origen. Cada registro almacenará el documento XML como campo TEXT.
Todos los archivos utilizados en este ejemplo están en la ruta de acceso <Documentos>\Altova\MapForce2023\MapForceExamples\Tutorial\:
El archivo de diseño de asignación | •XmlToSqliteField.mfd |
Los archivos XML de origen | •bookentry1.xml •bookentry2.xml •bookentry3.xml |
El esquema XML utilizado para la validación | •books.xsd |
La base de datos SQLite de destino | •Library.sqlite |
Para conseguir el objetivo de la asignación tendremos que seguir estas instrucciones:
1.Agregar el componente XML y configurarlo para que lea datos de varios archivos.
2.Agregar el componente de BD SQLite y asignar un esquema XML al campo TEXT de destino.
3.Crear las conexiones de asignación y configurar la acción INSERT de la base de datos.
Paso nº1: agregar el componente XML
1.En el menú Insertar haga clic en el comando Archivo o esquema XML... y navegue hasta el esquema books.xsd ubicado en el directorio <Documentos>\Altova\MapForce2023\MapForceExamples\Tutorial\. Cuando MapForce solicite un archivo XML de muestra, haga clic en Omitir. Cuando MapForce solicite un elemento raíz, seleccione Books.
2.Haga doble clic en el título del componente e introduzca bookentry*.xml en el cuadro de texto Archivo XML de entrada. Esto indica que MapForce debe leer todos los archivos XML del directorio de origen cuyo nombre empiece por "bookentry-". Para más información consulte la sección Procesar varios archivos de entrada o salida simultáneamente.
Paso nº2: agregar el componente SQLite
En el menú Insertar haga clic en Base de datos y siga los pasos del Asistente para conectarse al archivo de base de datos Library.sqlite del directorio <Documentos>\Altova\MapForce2023\MapForceExamples\Tutorial\ directory (véase Conectarse a una base de datos SQLite). Llegada la hora de seleccionar objetos de la BD, seleccione la tabla BOOKS.
El campo de BD donde se escribirá el contenido XML se llama metadata. Para asignar un esquema XML a este campo haga clic con el botón derecho y seleccione Asignar esquema XML al campo en el menú contextual.
En este tutorial el esquema asignado al campo metadata es el mismo que se usa para validar los archivos XML de origen. Haga clic en Examinar y seleccione el esquema books.xsd del directorio <Documentos>\Altova\MapForce2023\MapForceExamples\Tutorial\:
El esquema books.xsd tiene dos elementos con declaración global: book y books. En este ejemplo estableceremos book como elemento raíz de los datos XML escritos en el campo de la BD. Haga clic en Elegir y seleccione book como elemento raíz:
Paso nº3: crear las conexiones de asignación y configurar la acción INSERT
Cree estas conexiones de asignación:
Como se aprecia en la imagen anterior, la conexión entre book y book es una conexión de copia total porque tanto el origen como el destino usan el mismo esquema y los elementos secundarios tienen nombres idénticos. Para más información consulte el apartado Conexiones de copia total.
La conexión de nivel superior (entre books y BOOKS) recorre cada elemento books del origen y escribe un registro nuevo en la tabla BOOKS. Haga clic en el botón A:In del componente de BD y defina estas opciones de configuración para la actualización de la base de datos:
La opción DELETE (eliminar) todos los registros indica que MapForce debe eliminar el contenido de la tabla BOOKS antes de insertar otros registros.
Las acciones Insertar todo especifican que tendrá lugar una consulta INSERT de base de datos. El campo id se genera a partir de la BD propiamente dicha, mientras que el campo metadata se rellenará con el valor que viene dado por la asignación.
Recuerde que antes de ejecutar la asignación deberá guardarla.
Para ejecutar la asignación y ver el resultado generado haga clic en el panel Resultados. No olvide que esta acción no actualiza inmediatamente la base de datos. Cuando esté listo para ejecutar el script de base de datos generado, seleccione el comando de menú Resultados | Ejecutar script SQL (o haga clic en el botón de la barra de herramientas).