ES2317546T3 - Metodo dinamico de generacion de documentos xml a partir de una base de datos. - Google Patents

Metodo dinamico de generacion de documentos xml a partir de una base de datos. Download PDF

Info

Publication number
ES2317546T3
ES2317546T3 ES06755055T ES06755055T ES2317546T3 ES 2317546 T3 ES2317546 T3 ES 2317546T3 ES 06755055 T ES06755055 T ES 06755055T ES 06755055 T ES06755055 T ES 06755055T ES 2317546 T3 ES2317546 T3 ES 2317546T3
Authority
ES
Spain
Prior art keywords
templates
xml
instructions
database
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES06755055T
Other languages
English (en)
Inventor
Richard Molenaar
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amadeus SAS
Original Assignee
Amadeus SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amadeus SAS filed Critical Amadeus SAS
Application granted granted Critical
Publication of ES2317546T3 publication Critical patent/ES2317546T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)

Abstract

Un método para generar automáticamente (120) al menos un documento XML (110) que incluye datos extraídos de una base de datos fuente (140), dicha base de datos incluye medios para generar por lo menos dicho documento XML, los dichos medios incluyen un generador XML (120) que recurre a tablas (130, 135) definidas en el formato y con el lenguaje de dicha base de datos, dicho método consiste en: definir una pluralidad de plantillas (220, 225) en una tabla de definición (130) por lo menos, dicha pluralidad de plantillas (220,225) incluye instrucciones realizables (230) por el dicho generador XML (120), las dichas instrucciones realizables (230) incluyen por lo menos una instrucción de llamada (630) de cualquiera de las plantillas de dicha pluralidad de plantillas (220, 225); definir consultas (135) asociadas a cada una de las dichas plantillas (220,225), dichas consultas se utilizan para extraer datos de dicha base de datos fuente (140) en forma de juegos de registros (730); realizar dichas instrucciones (230), en una etapa de ejecución (700), a partir de una definición de fichero (200) incluida por lo menos en dicha tabla de definición (130), dicha etapa de ejecución (700) que incluyen una llamada por lo menos de una de dichas plantillas o por lo menos de otra plantilla de dicha pluralidad de plantillas (220, 225) para poder generar por lo menos el dicho documento XML que incluye dichos datos procedentes de dichos juegos de registros (730).

Description

Método dinámico de generación de documentos XML a partir de una base de datos.
Campo técnico de la invención
La presente invención se refiere generalmente a las bases de datos gestionadas por ordenadores, y concierne más concretamente la generación automática de documentos, aquellos que utilizan el lenguaje de balizaje XML "eXtensible Markup Language", cuando se interrogan estas bases de datos.
\vskip1.000000\baselineskip
Estado de la técnica
Las bases de datos gestionadas directamente desde ordenadores, o a través de una red, las utilizan desde hace mucho tiempo numerosas empresas, administraciones y todo tipo de organismos con vocación comercial u otra. Las bases de datos son entidades en las que es posible almacenar datos de manera estructurada y con la mínima redundancia posible. La principal ventaja de la utilización de bases de datos radica entonces en la posibilidad de que numerosos usuarios puedan acceder a ellas simultáneamente.
Como ejemplo, existen bases de datos que agrupan el conjunto de los horarios y el estado de las reservas de los vuelos de todas las compañías aéreas en el mundo, o las ofertas de las cadenas hoteleras internacionales. Las agencias de viaje pueden entonces acceder a esta información desde cualquier parte del mundo y, en particular, desde que Internet permite la interconexión de todas las redes privadas o públicas. Así pues, la noción de base de datos se acopla generalmente con aquella de la red para poder poner conjuntamente y compartir esta información.
Para controlar los datos, así como a los usuarios, es necesario un sistema de gestión de bases de datos (SGBD). El SGBD es un conjunto de aplicaciones informáticas que permiten gestionar las bases de datos, es decir, permitir el acceso a los datos de manera simple, autorizar el acceso a la información a múltiples usuarios y manipular los datos presentes en la base de datos (inserción, supresión, modificación).
Las bases de datos se construyen generalmente según un modelo dicho relacional, que organiza los datos en forma de tablas. La manipulación de los datos se hace según el concepto matemático de relación de la teoría de los conjuntos, es decir, el álgebra relacional que está constituida por un conjunto de operaciones formales sobre las relaciones. Las operaciones relacionales permiten crear una nueva relación (tabla) a partir de operaciones elementales en otras tablas (por ejemplo la unión, la intersección, e incluso la diferencia).
También fue adoptado por una gran mayoría un lenguaje estructurado de consultas. Conocido con la abreviatura SQL, del inglés "Structured Query Language", este es a su vez un lenguaje de definición de datos y un lenguaje de manipulación y control de datos. La definición de datos es la obra del administrador. La mayoría de aquellos que utilizan el lenguaje SQL sólo se sirven del lenguaje de manipulación de datos, el cual permite seleccionar los datos que le interesan. Desde el punto de vista del usuario el principal mando del lenguaje de manipulación de datos es el mando SELECT. Está basado en el álgebra relacional y permite efectuar operaciones de selección de datos en varias tablas relacionales para ponerlos a disposición de un usuario.
Con el formidable desarrollo de Internet, y la interconexión de las redes públicas y privadas que ha permitido, la estandarización del intercambio de datos se hace a través de la adopción de un protocolo dicho HTTP, abreviatura del inglés "Hyper Text Transfer Protocol" y el desarrollo de un sistema de comunicación conocido con el nombre de Web, del inglés "World Wide Web" o red mundial. La red mundial permite la búsqueda de información, el acceso a esta información y su visualización utilizando el hipertexto o HTML del inglés "Hyper Text Markup Language". Lenguaje de balizaje de texto, permite la creación de documentos hipertextos que visualizará un navegador Web.
El lenguaje HTML es una versión particular, muy depurada, con un estándar mucho más sofisticado adoptado en los años 80 para describir documentos y su formateado y conocido con la abreviatura SGML, del inglés "Standard Generalized Markup Language". El lenguaje SGML es un lenguaje simbólico que sigue utilizándose para describir la estructura lógica de un documento, y no su aspecto tipográfico. El principio aplicado es el marcado genérico, con ayuda de balizas, capítulos, párrafos, prólogo, introducción y otras entidades de un documento. Si la sencillez del lenguaje HTML contribuyó con mucho a su adopción, y era totalmente satisfactorio al principio del desarrollo de la Web, una consulta para aplicaciones más exigentes demostró rápidamente sus límites. Dado que la sencillez del HTML se obtuvo debido a una ausencia de evolución, enseguida se manifestó la necesidad se disponer de un lenguaje que ofreciese posibilidades de evolución y adaptación similares al estándar del HTML del que se derivaba, es decir SGML, evitando, no obstante, su complejidad. La respuesta fue un nuevo estándar propuesto a finales de 1996 por el organismo encargado de normalizar la Web y conocido bajo la denominación XML, abreviatura del inglés "eXtensible Markup Language" es decir, lenguaje de balizas muy generalizado. Al igual que SGML, pero menos complejo, XML es un metalenguaje que permite extender el lenguaje HTML. Principalmente, permite definir nuevas balizas por ejemplo, para describir mejor la presentación de un texto y poder personalizar los documentos completamente. El éxito de XML reside en su capacidad para poder describir cualquier campo de datos gracias a su extensibilidad. Permite estructurar, insertar el vocabulario y la sintaxis de los datos que contendrá.
Por tanto, no es nada sorprendente que el lenguaje XML haya sido utilizado desde su creación para dar forma a documentos que comprendan datos resultantes de bases de datos, en particular bases de datos relacionales descritos más arriba. Datos obtenidos con ayuda de las consultas SQL.
La utilización de los datos obtenidos y su inclusión en documentos con miras a visualizarlos en una ventana abierta por el navegador Web de un usuario pueden, no obstante, requerir un esfuerzo importante de codificación. En el ejemplo citado anteriormente de bases de datos interrogadas por las agencias de viaje y los usuarios, el nivel de personalización deseado de la visualización puede ser considerable. En efecto, las motivaciones de los clientes de estas agencias son muy variadas. Si son veraneantes u hombres o mujeres de negocios la selección de los datos y su presentación podrán ser muy diferentes con el fin de facilitar el trabajo del personal de estas agencias, aumentar su productividad y satisfacer mejor a sus clientes.
Así pues, los desarrolladores de estas aplicaciones prestaron una atención particular a la generación automática de documentos XML. Por ejemplo, podemos referirnos a una patente entregada por la oficina americana de patentes (USPTO) con el número US 6,636,845 que describe un método de generación de documentos XML a partir de una sola consulta SQL "Generating one or more XML documents from a single SQL query". Sin embargo, el método descrito carece de flexibilidad. En particular, se recurre en este caso a una definición estática para describir el acceso a los datos. Por tanto, existen tantas definiciones como tipos de datos a los que deben accederse en los documentos XML correspondientes.
También existe el artículo de F. CHAHUNEAU, S. GENNOU y A. BLAVIER "SGML Template Driven Database Extraction: a new approach to report generación" que describe un método de generación de documentos SGML a partir de los datos de una base de datos en forma de enlaces introducidos en un modelo de documento.
\vskip1.000000\baselineskip
Objeto de la invención
El objeto general de la invención consiste en proponer un método mejorado para generar documentos XML a partir de una base de datos.
Uno de los objetos de la invención, en particular, radica en poder generar un documento XML a partir de una definición dinámica de acceso a los datos de la base de datos.
Otro objeto de la invención consiste en obtener esta definición dinámica a partir de la utilización de una combinación de plantillas imbricadas y descritas en el formato de la base de datos.
Otro de los objetos de la invención se basa en simplificar y reducir el número de documentos XML que deben generarse para una aplicación, manteniendo al mismo tiempo un elevado grado de personalización.
Los demás objetos, características y ventajas de la presente invención los descubrirán los especialistas conforme vayan examinando la siguiente descripción y sus dibujos de acompañamiento. Queda claro que pueden incorporarse otras ventajas.
\vskip1.000000\baselineskip
Resumen de la invención
Se describe un método para generar automáticamente al menos un documento XML que incluye datos extraídos de una base de datos fuente. El método consiste en definir una pluralidad de plantillas, en el formato de la base de datos, dichas plantillas incluyen instrucciones ejecutables. También se definen algunas consultas asociadas a cada una de las plantillas. Las consultas se utilizan para extraer datos de la base de datos fuente en forma de juegos de registros. Las instrucciones de las plantillas se realizan con el fin de generar al menos un documento XML, el cual incluye los datos procedentes de los juegos de registros. Las instrucciones incluyen al menos una instrucción de llamamiento a cualquiera de las otras plantillas. Los documentos XML están formados por elementos, dichos elementos contienen atributos. El método se caracteriza porque mantiene un concepto de elemento corriente. El método incluye también una instrucción para crear un nuevo elemento el cual se atribuye al elemento corriente. Entonces el nuevo elemento pasa a ser a su vez el elemento corriente. El método comprende igualmente una instrucción para crear un nuevo atributo al elemento corriente, así como una instrucción para cerrar el elemento corriente, lo que consiste en asignar de nuevo el rol de elemento corriente al elemento padre del elemento corriente. El método incluye una definición de fichero que permite construir el nombre del documento XML, crear un elemento raíz, el cual se convierte en el elemento corriente y especificar cual de las plantillas es la plantilla raíz. Los parámetros sirven para vincular las plantillas cuando se ejecuta la instrucción de llamamiento plantilla o cuando está abierta la definición de fichero y que se recurre a la plantilla raíz. Cada una de las instrucciones de las plantillas se aplica a cada registro de los juegos de registro. Las instrucciones son interpretadas por el generador XML. La base de datos fuente es una base de datos relacional y las consultas son consultas que obedecen a las reglas de lenguaje de consultas estructuradas dicha SQL. Las plantillas, las consultas, las instrucciones, la definición de fichero y los parámetros están contenidos en forma de tablas en una base de datos relacional por lo menos y, pueden estar incluidos en la base de datos fuente.
Breve descripción de las figuras
Los objetivos, objetos, así como las características y ventajas de la invención se comprenderán mejor a través de la descripción detallada de un modo de realización de esta última que se ilustra mediante los siguientes dibujos de acompañamiento, en los cuales:
La Figura 1 ilustra el modo global de aplicación de la invención.
La Figura 2 describe la estructura de las tablas de definición del generador XML.
La Figura 3 describe el proceso que trata de la generación de los ficheros en la base del contenido de la definición de fichero.
La Figura 4 describe la etapa de creación del fichero destino XML.
La Figura 5 describe el tratamiento de una plantilla.
La Figura 6 describe las instrucciones de las plantillas.
La Figura 7 es un ejemplo de aplicación de la invención.
Los dibujos adjuntos se dan como ejemplos y no se limitan a la invención.
\vskip1.000000\baselineskip
Descripción detallada de la invención
La figura 1 ilustra el modo global de aplicación de la invención que sirve para una aplicación informática, en lo sucesivo denominada VISTA (100) cuyo objetivo consiste en poner a disposición de usuarios distantes informaciones extraídas de una base de datos fuente (140) formateándolas automáticamente en una forma susceptible de ser interpretada sin dificultad por sus navegadores. La base de datos contendrá, por ejemplo, las ofertas y el estado de las reservas de las cadenas hoteleras internacionales. Los usuarios son entonces, en este ejemplo, las agencias de viaje, que pueden así acceder a esta información desde cualquier parte del mundo, desde una red pública o privada a través de
Internet.
Tal y como se comentó en el capítulo sobre las buenas prácticas, el lenguaje XML es el más apropiado. Propuesto por el organismo principal de normalización de la Web, es decir, el W3C, del inglés "World-Wide Web Consortium", ha sido adoptado por una gran mayoría. Así pues, VISTA se basa en la generación de documentos en forma de ficheros XML (110) para visualizar su contenido y, de este modo, poner a disposición de los usuarios la información buscada. Con este fin, la aplicación (100) debe leer los ficheros XML por medio de un analizador sintáctico (denominado "parser" en inglés). El analizador sintáctico es una herramienta estándar desarrollada y vendida por proveedores de programas informáticos, como la muy conocida sociedad americana "Microsoft Corporation". El análisis de los ficheros enfoca productos, durante la ejecución del analizador sintáctico, objetos (105) que constituyen las páginas que visualiza el navegador del usuario de la aplicación.
El generador XML (120), encargado de producir los ficheros XML, se basa en modelos o plantillas ("templates" en la literatura técnica en lengua inglesa sobre estos temas). Se memorizan en las tablas de definición (130) del generador XML al formato y en el lenguaje de la base de datos relacional utilizada. Las plantillas tienen vocación a imbricarse para ampliar su posibilidad de ser reutilizadas. Las plantillas, según la invención, son juegos de instrucciones interpretables por el generador XML y reutilizables en su contexto. El contexto de una plantilla se aplica a un juego de registros ("set of records" o "recordset" según la terminología técnica en lengua inglesa), es decir, una vista parcial de la base de datos, obtenida con ayuda de una consulta específica emitida en su dirección. Las consultas se ajustan al lenguaje estructurado de consultas SQL que se comentó anteriormente. En el marco de la invención, las consultas se memorizan y se definen en la base de datos (135) en forma de objetos, dando acceso cada uno de ellos a un juego particular de registros. Los objetos consulta pueden contener parámetros. Los parámetros sirven entonces para modificar la consulta. Por ejemplo, en una base de datos que catalogase todos los libros de una biblioteca, puede definirse una consulta que permita buscar los libros por autor e incluye por consiguiente un parámetro "autor". Para una búsqueda específica el parámetro autor puede entonces ser reemplazado por el nombre de un autor en particular. El juego de registros correspondientes, que enviará la base de datos, en respuesta a la consulta, estará constituido por la lista de los libros de este autor que posee la biblioteca.
Si XML es el medio más apropiado para distribuir los datos a los usuarios, una base de datos relacional (140) está bien adaptada para almacenar los datos propios al producto. La utilización de una base de datos bien estructurada garantiza un mantenimiento fácil y eficaz de la información que contiene y evita, en particular, las redundancias. La base de datos (140) es por tanto la fuente esencial de los datos que estarán incluidos en los ficheros XML generados y destinados a los usuarios de la aplicación (100). El método de la invención saca partido, en particular, de la utilización del lenguaje estructurado de consultas SQL ya mencionado. La utilización de plantillas, al formato de la base de datos, que permite generar los documentos XML destino, no requiere tener que distribuir a los usuarios, en el momento en que se conectan con su navegador, los medios informáticos que les serían de otro modo necesarios para acceder directamente a la base de datos fuente. Esto penalizaría el tiempo de acceso a la información buscada, entorpecería la red y complicaría mucho la puesta a disposición de la información buscada. En efecto, si la estructura y la organización de la base de datos tienden a garantizar su eficacia y evitar las redundancias, la visualización de la información destinada al usuario responde a otros criterios. La adaptación entre la estructura de los datos en la base de datos y los datos requeridos por el usuario se obtiene tanto más cuanto que se realiza en la fuente, tal y como lo preconiza la invención, por el generador XML (120) que se basa en las plantillas de las tablas de definición (110) y las definiciones de consultas asociadas (135) para crear un número reducido de ficheros destino XML (110) que contienen suficiente información con destino al usuario.
Las tablas de definición, las plantillas y las consultas según la invención pueden estar contenidas en una base de datos separada de la base de datos fuente (140), como se esquematiza en la figura 1, pero también podrían formar parte de una sola base de datos (150) sin inconveniente.
El objetivo de la invención radica en presentar documentos XML (110) a partir de una sola fuente (140), una base de datos relacional, administrada por aplicaciones informáticas que constituyen estándares de hecho y de las que existen numerosas alternativas comerciales bien conocidas, por ejemplo, aquellas que llevan el nombre de "Oracle", "IBM DB2" o "Microsoft Access", productos desarrollados y comercializados por sus respectivas empresas. La gestión y la integridad de los propios datos están garantizadas por la utilización de un producto estándar que se probó y utilizó considerablemente. Así pues, incluyendo las reglas de generación y test de los documentos XML en la propia base de datos, en el formato de este último, numerosas ventajas se derivan de ello. En particular el tiempo de desarrollo es reducido. Hacer cambios en la base de datos y regenerar automáticamente todos los ficheros XML de una aplicación dada, como VISTA (100), es más rápido que tener que actualizar y corregir un código específico. Además, todo ello pueden realizarlo directamente los profesionales encargados de desarrollar la propia aplicación, VISTA en este ejemplo, mientras que el desarrollo de un programa informático específico siempre requiere un costoso esfuerzo de codificación por programadores altamente especializados.
La figura 2 describe la estructura de las "tablas de definición" del generador XML. Cada tabla incluye:
\vskip1.000000\baselineskip
100
101
\vskip1.000000\baselineskip
La definición de fichero (200), que recurre a parámetros (210), contiene la definición de la consulta particular que debe aplicarse a la base de datos para encontrar el juego de registros apropiado. La definición de fichero referencia una plantilla (220) que recurre a instrucciones (230). Cuando la instrucción es del tipo que llama a otra plantilla (225) los parámetros deben entonces haber pasado a la plantilla a la que se llama (240).
Los elementos y atributos del documento XML, mencionados en la tabla de aquí arriba, forman parte íntegra del lenguaje XML y son conceptos bien conocidos por los especialistas de estos ámbitos. Generalmente un documento XML incluirá uno o varios elementos delimitados por balizas de principio y fin, respectivamente de la forma <xxxElemento> y </Elemento>. Cada elemento puede entonces tener uno o varios atributos que tienen cada uno un nombre y un valor que son especificados por las instrucciones de la plantilla.
La figura 3 describe el proceso que trata de la generación de los ficheros sobre la base del contenido de la "definición de fichero" descrita anteriormente y que forma parte de una "tabla de definiciones del generador XML".
Una vez abierta la definición de fichero (300) para cada registro (314) de esta definición se somete a un test (320) si existe una "definición de consulta" asociada. Si fuera el caso (322), se realiza la consulta correspondiente. El "juego de registros" obtenido de la base de datos está entonces abierto (330). Se crearán tantos ficheros destino (360) como registros haya en el juego de registro. Se recorren todos los registros del juego (350). Cuando se haya tratado el último (334) se pasa al siguiente registro de la definición de fichero (370).
Si, cuando se somete a test la presencia de una definición de consulta asociada (320), la respuesta es negativa (324), se crea entonces un solo fichero destino (380) antes de pasar al siguiente registro de la definición de fichero. Si no hay ningún registro más el proceso se termina (312).
La etapa de creación del "fichero destino" (380) y aquellas, similares, de creación del "fichero XML destino" (360) se describe en la figura 4.
La creación del fichero destino implica en primer lugar construir (400) un nombre de fichero. Si, como lo hemos visto anteriormente, se utiliza una misma "definición de fichero" para crear múltiples ficheros destino, la construcción del nombre resulta de la concatenación:
-
de un prefijo procedente de la definición de fichero
-
de una parte dinámica procedente del registro corriente del juego de registros.
-
de un sufijo procedente de la definición de fichero.
Sin embargo, si no existe ninguna definición de consulta asociada, como acabamos de verlo, un solo fichero. En este caso solamente el prefijo y el sufijo se utilizan, no hay ninguna parte dinámica.
Después de lo cual se crea efectivamente (410) el fichero XML destino en forma de un objeto que representa la estructura del documento XML y conforme a la especificación DU, del inglés "Document Object Model" emitida por el organismo de normalización de la Web, es decir, el W3C, ya mencionado.
Si un elemento raíz aparece en la definición de fichero (422), el fichero se crea. (430). Después de lo cual, si existen parámetros presentes en la definición de fichero (442) estos parámetros se encuentran (440) por haber pasado a la plantilla (444).
El tratamiento de la plantilla (450), que puede ser una plantilla raíz o una plantilla imbricada, es decir, llamada por otra plantilla, se describe más concretamente en la figura 5.
Los parámetros definidos por la plantilla que llama (o la definición de fichero) deben emparejarse con aquellos de la plantilla a la que se llama. A tal efecto se construye un "grupo de parámetros" temporal (500) sobre la base de la definición de los parámetros. Cuando se ha hecho esto, los valores apropiados se obtienen desde el registro corriente del "juego de registros".
La etapa (500) se divide precisamente en la parte derecha de la figura 5. Cada uno de los parámetros se encuentra por su nombre (501) así como campo definido por el parámetro (502). El valor del campo se obtiene desde el "juego de registros" (503) lo que permite fijar el valor del parámetro (504). El proceso se repite (506) mientras existan parámetros (505) que deban tratarse.
A continuación, se encuentra la plantilla a la que se llama 510). Los parámetros de la "definición de consulta" asociada deben emparejarse a los de la plantilla llamante antes de la ejecución sobre la base de datos con el fin de obtener el "juego de registros" conveniente (520). La aplicación de los parámetros se hace exhaustivamente en cada uno de los registros del "juego de registros" (530) y para cada una de las instrucciones (540) hasta que no haya más instrucciones a tratar (560) ni registro en el "juego de registros" (550).
La figura 6 describe más concretamente la etapa de tratamiento de las instrucciones. Cuando las instrucciones se ejecutan el sistema mantiene un concepto de elemento corriente. Este elemento es el objetivo de cada una de las instruc-
ciones descritas a continuación. A falta de elemento corriente, se utilizará la raíz o el primer elemento de la plantilla.
Las instrucciones son de varios tipos: creación de un elemento (600), creación de un atributo (610), cierre de un elemento (620) y llamada de una plantilla (630). En los dos primeros casos es necesario obtener previamente (602) el valor del campo especificado en el "juego de registros" corriente. En el último caso es necesario obtener en primer lugar (632) los parámetros que deben pasarse a la plantilla a la que se llama.
Una instrucción puede verse obligada a crear un elemento XML (600) que lleva el nombre construido como se describe anteriormente. El nuevo elemento se asigna entonces al elemento corriente (605) que se convierte en este caso en el padre del nuevo elemento niño. Opcionalmente, un valor puede insertarse en el nuevo elemento, valor que debe corresponder al campo especificado del "juego de registros".
Una instrucción puede verse obligada de asignar un atributo (610) a un elemento XML. El atributo se crea para el elemento corriente (615). Como más arriba, opcionalmente, un valor puede fijarse a este atributo, valor que debe corresponder a un campo específico del juego de registro.
Una instrucción puede cerrar un elemento (620) lo que equivale a volver a atribuir al elemento padre el rol de elemento corriente (625).
Por fin, una instrucción puede llamar una plantilla (630) con el nombre especificado anteriormente. Para el tratamiento de la plantilla a la que se llama (635) se pasarán parámetros desde el juego de registros de la plantilla corriente hacia la plantilla a la que se llama.
La figura 7 ilustra, a través de un ejemplo particular, el método según la invención para generar un fichero destino XML a partir de una base de datos relacional. En este ejemplo, como sigue siendo casi siempre y exclusivamente el caso en un entorno de desarrollo de productos informáticos que tienen vocación a comercializarse en todo el mundo por equipos multinacionales, se definen todos los términos técnicos del código en lengua inglesa. No obstante, esto no podría perjudicar a la buena comprensión de la descripción que sigue. Ya sea, cuando fuera necesario, se aclaran los términos o bien pueden considerarse sin inconveniente, aún cuando, por razones mnemotécnicas y prácticas evidentes, se intenta efectivamente conferirles una.
La creación de un fichero XML comienza con la apertura (700) de la "definición de fichero", ya descrita, que adquiere la forma de una tabla (705) en la base de datos. Con la información contenida en esta tabla se puede entonces crear un fichero XML, con el nombre especificado (codesList_CAR.xml), que contiene un primer elemento vacío (codes_list). Este elemento se convierte en el elemento corriente. La definición de ficheros contiene el nombre de la plantilla raíz (710) a la cual se recurre.
Entonces se trata la plantilla anterior (720). La primera etapa consiste en realizar la consulta (722) definida para la plantilla (CarCodesList), en la base de datos, con el fin de obtener el juego de registros correspondientes (730). Para cada uno de los registros del juego de registros así obtenido se aplican las instrucciones de la plantilla (710), en número de 5 en este ejemplo.
Esto comienza por la creación (724) de un elemento niño (list) del elemento corriente creado anteriormente. Este elemento se convierte a su vez en el elemento corriente. Las dos instrucciones siguientes, con índices de 2 y 3, de la plantilla (710) se tratan a su vez. Sirven para crear (726) dos atributos (Name, Area), cada uno corresponde a un nombre de campo (Field Name) especificado en la plantilla. El elemento corriente (list), del fichero XML (728) incluye entonces estos atributos.
La instrucción siguiente, índice 4 de la plantilla (710), recurre a otra plantilla (CodesListItem) para la cual se define un parámetro (715). La plantilla a la que se llama (740) tiene también una definición de consultas (CodesListItem) que permite obtener el juego de registros correspondientes (750) en la base de datos después de que el parámetro de la plantilla que llama (715) haya permitido encontrar el campo (742) para poder realizar efectivamente esta consulta.
El tratamiento de la plantilla a la que se llama se hace de una manera similar a lo que ya se ha descrito más arriba para enriquecer el fichero XML (760).

Claims (10)

1. Un método para generar automáticamente (120) al menos un documento XML (110) que incluye datos extraídos de una base de datos fuente (140), dicha base de datos incluye medios para generar por lo menos dicho documento XML, los dichos medios incluyen un generador XML (120) que recurre a tablas (130, 135) definidas en el formato y con el lenguaje de dicha base de datos, dicho método consiste en:
definir una pluralidad de plantillas (220, 225) en una tabla de definición (130) por lo menos, dicha pluralidad de plantillas (220,225) incluye instrucciones realizables (230) por el dicho generador XML (120), las dichas instrucciones realizables (230) incluyen por lo menos una instrucción de llamada (630) de cualquiera de las plantillas de dicha pluralidad de plantillas (220, 225);
definir consultas (135) asociadas a cada una de las dichas plantillas (220,225), dichas consultas se utilizan para extraer datos de dicha base de datos fuente (140) en forma de juegos de registros (730);
realizar dichas instrucciones (230), en una etapa de ejecución (700), a partir de una definición de fichero (200) incluida por lo menos en dicha tabla de definición (130), dicha etapa de ejecución (700) que incluyen una llamada por lo menos de una de dichas plantillas o por lo menos de otra plantilla de dicha pluralidad de plantillas (220, 225) para poder generar por lo menos el dicho documento XML que incluye dichos datos procedentes de dichos juegos de registros (730).
2. El método según la reivindicación 1 en la cual, por lo menos dicho documento XML está formado por elementos (702), estos elementos pueden comprender atributos (726), dicho método se caracteriza por que esta etapa de ejecución incluye una etapa de creación de dichos elementos y de sus atributos.
3. El método según la reivindicación 1 ó 2 en la cual dicha definición de fichero permite:
Construir el nombre de dicho del documento XML (400);
Crear un fichero destino para dicho documento XML (410);
Crear un elemento raíz (430), dicho elemento raíz al cual se atribuye la función de elemento corriente;
Tratar una plantilla raíz (710) susceptible de llamar a cualquier otra de las plantillas de dicha pluralidad de plantillas.
4. El método según la reivindicación 3 que incluye al menos:
Una instrucción para crear un nuevo elemento (600) niño del dicho elemento corriente, dicho nuevo elemento (600) al que se atribuye a su vez la función de dicho elemento corriente (605);
Una instrucción para crear un nuevo atributo (610), dicha instrucción crea el dicho nuevo atributo para el dicho elemento corriente;
Una instrucción para cerrar (620) el dicho elemento corriente, dicha instrucción consiste en reatribuir la función de elemento corriente al elemento padre del dicho elemento corriente.
5. El método según cualquiera de las reivindicaciones 3 ó 4 que incluye parámetros (210, 240), dichos parámetros sirven para vincular dichas plantillas cuando dicha instrucción de llamada plantilla se ha ejecutado o cuando dicha definición de fichero está abierta y que se recurre a dicha plantilla raíz.
6. El método según cualquiera de las reivindicaciones anteriores en la cual cada una de dichas instrucciones (540) de las dichas plantillas se aplica a cada registro (530) de los dichos juegos de registro.
7. El método según la reivindicación 6 en la cual dichas instrucciones son interpretadas por el generador XML (120).
8. El método según cualquiera de las reivindicaciones anteriores en la cual dicha base de datos fuente (140) es una base de datos relacional y dichas consultas (135) son consultas que obedecen a las reglas del lenguaje de consultas estructurada dicha SQL.
9. Un sistema, en particular, un generador de documentos XML (120), dicho sistema incluye medios adaptados para aplicar el método descrito en cualquiera de las reivindicaciones anteriores.
10. Un soporte legible por ordenador que incluye las instrucciones de un programa ejecutable por dicho ordenador, dicho programa pone en aplicación el método según cualquiera de las reivindicaciones 1 a 8.
ES06755055T 2005-05-09 2006-05-05 Metodo dinamico de generacion de documentos xml a partir de una base de datos. Active ES2317546T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
EP05103829A EP1722307A1 (fr) 2005-05-09 2005-05-09 Méthode dynamique de génération de documents XML à partir d'une base de données
EP05103829 2005-05-09
US67923205P 2005-05-10 2005-05-10
US679232P 2005-05-10

Publications (1)

Publication Number Publication Date
ES2317546T3 true ES2317546T3 (es) 2009-04-16

Family

ID=34939745

Family Applications (1)

Application Number Title Priority Date Filing Date
ES06755055T Active ES2317546T3 (es) 2005-05-09 2006-05-05 Metodo dinamico de generacion de documentos xml a partir de una base de datos.

Country Status (13)

Country Link
US (1) US8468446B2 (es)
EP (2) EP1722307A1 (es)
JP (1) JP4977128B2 (es)
KR (1) KR101331532B1 (es)
CN (1) CN100565521C (es)
AT (1) ATE414303T1 (es)
AU (1) AU2006248984B2 (es)
BR (1) BRPI0611363A2 (es)
CA (1) CA2603908C (es)
DE (1) DE602006003649D1 (es)
ES (1) ES2317546T3 (es)
WO (1) WO2006122886A1 (es)
ZA (1) ZA200709325B (es)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7962443B2 (en) 2007-02-08 2011-06-14 Interactive Documents, Llc Method and system for replacing data in a structured design template
US8321846B2 (en) * 2008-11-13 2012-11-27 Oracle International Corporation Executable template
US20100332192A1 (en) * 2009-04-27 2010-12-30 The Government Of The United States Of America, As Represented By The Secretary Of The Navy Method and Tools for Self-Describing Data Processing
US8615526B2 (en) * 2010-06-21 2013-12-24 Tata Consultancy Services Limited Markup language based query and file generation
CN101866361A (zh) * 2010-06-30 2010-10-20 山东中创软件工程股份有限公司 一种异构数据集成方法及装置
US9846693B2 (en) * 2010-07-23 2017-12-19 Ibm International Group Bv Document tracking in heterogeneous application environments
CN102622219B (zh) * 2011-01-31 2015-06-17 富士通株式会社 对动态调用服务的执行结果进行渲染的方法、装置及系统
US8850306B2 (en) * 2011-03-28 2014-09-30 Microsoft Corporation Techniques to create structured document templates using enhanced content controls
US9128986B2 (en) * 2011-06-29 2015-09-08 Infosys Limited Method and system for managing a database having a plurality of tables
KR101122629B1 (ko) 2011-11-18 2012-03-09 김춘기 데이터베이스의 데이터를 변환하여 xml 문서를 생성하는 방법
KR101416712B1 (ko) * 2012-07-12 2014-07-09 김영근 정형 및 비정형 데이터를 xml 문서에 구현하는 방법
KR101449725B1 (ko) * 2012-11-12 2014-10-16 한국과학기술정보연구원 Pdf 문서 파일을 자동 변환하는 장치 및 방법
CN103902634B (zh) * 2012-12-30 2017-09-29 航天信息股份有限公司 利用Adapter实现View组件与数据库字段自动绑定的方法
CN104063468B (zh) * 2014-06-27 2017-11-10 北京思特奇信息技术股份有限公司 一种数据报表自动生成及提取方法及装置
CN104537103B (zh) * 2015-01-12 2018-11-16 用友医疗卫生信息系统有限公司 数据处理方法和数据处理装置
CN104679909B (zh) * 2015-03-25 2018-07-17 郑州悉知信息科技股份有限公司 一种设置网站tdk的方法及装置
US10552425B1 (en) * 2016-04-28 2020-02-04 Jpmorgan Chase Bank, N.A. System and method for automated data utilization
CN110096620B (zh) * 2016-06-06 2021-02-26 福建榕基软件股份有限公司 数据库表和xml报文的映射方法及其系统
CN106202008B (zh) * 2016-06-28 2019-04-05 武汉斗鱼网络科技有限公司 一种MySQL数据库结构化文档生成方法及装置
KR102157218B1 (ko) * 2018-12-28 2020-09-18 인천대학교 산학협력단 공간 데이터의 의미론적 주석을 위한 데이터 변환 방법
CN110569456B (zh) * 2019-07-26 2022-03-08 广州视源电子科技股份有限公司 Web端数据离线缓存方法及装置、电子设备
CN113742375A (zh) * 2020-06-18 2021-12-03 北京沃东天骏信息技术有限公司 一种目标对象搜索方法和装置
KR102253751B1 (ko) * 2020-10-15 2021-05-20 주식회사 위키랩 워드프로세서와 데이터베이스를 연동하여 문서를 생성하는 시스템 및 방법
US11755647B2 (en) 2020-12-03 2023-09-12 International Business Machines Corporation XML production through database mining and blockchain

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835712A (en) * 1996-05-03 1998-11-10 Webmate Technologies, Inc. Client-server system using embedded hypertext tags for application and database development
JP2000250841A (ja) * 1999-03-02 2000-09-14 Hitachi Ltd ページ生成方法及び装置並びにページ生成プログラムを記録した記憶媒体および電子モールシステム
JP2001092695A (ja) * 1999-09-24 2001-04-06 Hitachi Information Systems Ltd 構造化文書とデータベースのデータ交換処理方法及びそのプログラムを記録した媒体
US6826727B1 (en) * 1999-11-24 2004-11-30 Bitstream Inc. Apparatus, methods, programming for automatically laying out documents
US6721727B2 (en) * 1999-12-02 2004-04-13 International Business Machines Corporation XML documents stored as column data
US7213017B2 (en) * 2000-03-17 2007-05-01 Microsoft Corporation Systems and methods for transforming query results into hierarchical information
US6963875B2 (en) * 2000-03-23 2005-11-08 General Atomics Persistent archives
US6941510B1 (en) * 2000-06-06 2005-09-06 Groove Networks, Inc. Method and apparatus for efficient management of XML documents
US7076534B1 (en) * 2000-06-30 2006-07-11 Microsoft Corporation Server-side scripting that enables creation of customized documents for clients
US6708186B1 (en) * 2000-08-14 2004-03-16 Oracle International Corporation Aggregating and manipulating dictionary metadata in a database system
US6725231B2 (en) * 2001-03-27 2004-04-20 Koninklijke Philips Electronics N.V. DICOM XML DTD/schema generator
US7131063B2 (en) * 2001-09-13 2006-10-31 International Business Machines Corporation Method and system for delivering dynamic information in a network
US7210097B1 (en) * 2002-05-22 2007-04-24 Pitney Bowes Inc. Method for loading large XML documents on demand
US20040002907A1 (en) * 2002-06-28 2004-01-01 Tosswill Andrew R. Template for inputting customized processing features in an electronic bill presentment and payment system
CA2414053A1 (en) * 2002-12-09 2004-06-09 Corel Corporation System and method for manipulating a document object model
US7627817B2 (en) * 2003-02-21 2009-12-01 Motionpoint Corporation Analyzing web site for translation
US20040268238A1 (en) * 2003-06-30 2004-12-30 Peiya Liu Systems and methods for processing documents using an XML-based process flow description language
US20050081144A1 (en) * 2003-10-13 2005-04-14 Bankers Systems Inc. Document creation system and method using knowledge base, precedence, and integrated rules
US7458022B2 (en) * 2003-10-22 2008-11-25 Intel Corporation Hardware/software partition for high performance structured data transformation
US7640497B1 (en) * 2003-12-22 2009-12-29 Apple Inc. Transforming a hierarchical data structure according to requirements specified in a transformation template
CN1560763B (zh) * 2004-02-19 2010-05-05 北京大学 一种可扩展标记语言路径查询翻译为结构查询的方法
US7500185B2 (en) * 2004-04-29 2009-03-03 Koninklijke Philips Electronics N.V. Framework of validating DICOM structured reporting documents using XSLT technology
US7721195B2 (en) * 2004-08-24 2010-05-18 Oracle International Corporation RTF template and XSL/FO conversion: a new way to create computer reports
US7966286B2 (en) * 2005-02-14 2011-06-21 Microsoft Corporation Hierarchical management of object schema and behavior
US7949941B2 (en) * 2005-04-22 2011-05-24 Oracle International Corporation Optimizing XSLT based on input XML document structure description and translating XSLT into equivalent XQuery expressions

Also Published As

Publication number Publication date
ZA200709325B (en) 2008-11-26
KR20080027251A (ko) 2008-03-26
US20090265608A1 (en) 2009-10-22
WO2006122886A1 (fr) 2006-11-23
EP1880325B1 (fr) 2008-11-12
AU2006248984A1 (en) 2006-11-23
CN101171582A (zh) 2008-04-30
JP2008541254A (ja) 2008-11-20
BRPI0611363A2 (pt) 2010-09-08
KR101331532B1 (ko) 2013-11-20
US8468446B2 (en) 2013-06-18
CN100565521C (zh) 2009-12-02
ATE414303T1 (de) 2008-11-15
EP1880325A1 (fr) 2008-01-23
JP4977128B2 (ja) 2012-07-18
CA2603908A1 (fr) 2006-11-23
EP1722307A1 (fr) 2006-11-15
DE602006003649D1 (de) 2008-12-24
CA2603908C (fr) 2014-03-25
AU2006248984B2 (en) 2010-12-23

Similar Documents

Publication Publication Date Title
ES2317546T3 (es) Metodo dinamico de generacion de documentos xml a partir de una base de datos.
Hayes et al. Specification case studies
ES2553971T3 (es) Método y dispositivo para la evolución ontológica
Brink Value orientations as an assessment tool in cultural diversity
Ravindran Django Design Patterns and Best Practices
Pepper Euler, topic maps, and revolution
Fotache et al. NoSQL and SQL Databases for Mobile Applications. Case Study: MongoDB versus PostgreSQL.
Deely Semiotics and biosemiotics: Are sign-science and life-science coextensive
Cueto Science under adversity: Latin American medical research and American private philanthropy, 1920-1960
Lamb et al. Shining a light on scientific data: Building a data catalog to foster data sharing and reuse
Gift et al. Python for Unix and Linux system administration
US8762381B2 (en) Storing multipart XML documents
Nissan et al. A retrospective of a pioneering project. earlier than XML, Other than SGML, Still going: CuProS metadata for deeply nested relations and navigating for retrieval in RAFFAELLO
Labouseur et al. G* Studio: An adventure in graph databases, distributed systems, and software development
Rigin et al. Data and Reference Semantic-Based Simulator of DB-Nets with the Use of Renew Tool
Gesker Alternatives for dynamic web development projects
Fotache Why normalization failed to become the ultimate guide for database Designers?
Joswick Getting the most from PsycLIT: Recommendations for searching
Ganguly Edward Said, world literature and global comparatism
Preservation O rigin stories about the digital humanities (or “humanities comput
Sanderson ASP. Net MVC Framework Preview
Wintermeyer et al. ActiveRecord
Kellenberger et al. Expanding on Data Type Concepts
Freiling SIDUR-an integrated data model
Naji Proposal of Creating Entity-Relationship Table from English Sentences Groups