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 PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information 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/84—Mapping; Conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/972—Access 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.
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
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
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
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.
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
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.
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
\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.
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.
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)
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)
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 |
-
2005
- 2005-05-09 EP EP05103829A patent/EP1722307A1/fr not_active Withdrawn
-
2006
- 2006-05-05 EP EP06755055A patent/EP1880325B1/fr active Active
- 2006-05-05 CA CA2603908A patent/CA2603908C/fr not_active Expired - Fee Related
- 2006-05-05 KR KR1020077028876A patent/KR101331532B1/ko active IP Right Grant
- 2006-05-05 AU AU2006248984A patent/AU2006248984B2/en not_active Ceased
- 2006-05-05 DE DE602006003649T patent/DE602006003649D1/de active Active
- 2006-05-05 CN CNB200680015662XA patent/CN100565521C/zh active Active
- 2006-05-05 US US11/914,017 patent/US8468446B2/en active Active
- 2006-05-05 JP JP2008510552A patent/JP4977128B2/ja active Active
- 2006-05-05 WO PCT/EP2006/062102 patent/WO2006122886A1/fr active Application Filing
- 2006-05-05 BR BRPI0611363-0A patent/BRPI0611363A2/pt not_active Application Discontinuation
- 2006-05-05 ES ES06755055T patent/ES2317546T3/es active Active
- 2006-05-05 AT AT06755055T patent/ATE414303T1/de not_active IP Right Cessation
-
2007
- 2007-10-30 ZA ZA200709325A patent/ZA200709325B/xx unknown
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 |