BRPI0611363A2 - método para gerar automaticamente pelo menos um documento xml, sistema, meio legìvel com um computador - Google Patents

método para gerar automaticamente pelo menos um documento xml, sistema, meio legìvel com um computador Download PDF

Info

Publication number
BRPI0611363A2
BRPI0611363A2 BRPI0611363-0A BRPI0611363A BRPI0611363A2 BR PI0611363 A2 BRPI0611363 A2 BR PI0611363A2 BR PI0611363 A BRPI0611363 A BR PI0611363A BR PI0611363 A2 BRPI0611363 A2 BR PI0611363A2
Authority
BR
Brazil
Prior art keywords
templates
xml
database
template
instructions
Prior art date
Application number
BRPI0611363-0A
Other languages
English (en)
Inventor
Richard Molenaar
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
Publication of BRPI0611363A2 publication Critical patent/BRPI0611363A2/pt

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

A presente invenção descreve um método para gerar automaticamente documentos XML contendo dados extraídos de um banco de dados fonte. O método consiste em definir um número de gabaritos no formato do banco de dados, estes gabaritos contendo listas executáveis. Consultas associadas com cada um dos gabaritos também são definidas. As consultas são usadas para a extração de dados dos dados do banco de dados fonte na forma de séries de registros. A execução das listas dos gabaritos gera pelo menos um documento XML que contém os dados das séries de registros. Pelo uso de uma instrução de chamada, um gabarito pode chamar qualquer um dos outros gabaritos para criar um documento XML. O método inventivo realiza uma definição dinâmica para acessar dados do banco de dados com a ajuda de gabaritos aninhados operando diretamente do banco de dados.

Description

MÉTODO PARA GERAR AUTOMATICAMENTE PELO MENOS UM DOCUMENTOXML, SISTEMA, MEIO LEGÍVEL COM UM COMPUTADOR
ÂMBITO TÉCNICO DA INVENÇÃO
Esta invenção refere-se geralmente a bancos de dadosgerados por computadores, e mais particularmente à geraçãoautomática de documentos usando markup language XML,"eXtensible markup language" ao questionar bancos de dados.
ESTADO DA TÉCNICA
Bancos de dados gerados diretamente de computadores ouatravés de uma rede têm sido usados por muito tempo pornumerosas companhias, administrações e todos os tipos deorganizações comerciais ou outras organizações. Bancos dedados são entidades nas quais é possível armazenar dados deuma maneira estruturada com a menor redundância possível. Amaior vantagem de se usar bancos de dados é, portanto, o fatode que eles podem ser acessados por um número diferente deusuários simultaneamente.
Por exemplo, existem bancos de dados que contêm todos oshorários e condições de reservas de vôos de todas ascompanhias aéreas em todo o mundo, ou todas as ofertas decadeias de hotéis internacionais. As companhias de viagensentão acessam estas informações de qualquer lugar do mundo,particularmente agora que a Internet permite que todas asredes públicas ou privadas sejam interconectadas. Portanto oconceito de um banco de dados está geralmente ligado ao deuma rede para ser capaz de combinar e compartilhar estasinformações.
Para controlar os dados, assim como os usuários, umsistema de gerenciamento de bancos de dados (DBMS) énecessário. 0 DBMS é uma reunião de aplicativos de softwareque possibilitam que bancos de dados sejam gerenciados, istoé, permitem acesso simples aos dados, autorizam acesso àinformação por usuários múltiplos, e o manuseio de dadospresentes no banco de dados (entrada, anulação, modificação).
Na maioria dos casos os bancos de dados são construídosde acordo com um chamado modelo relacionai, que organiza osdados na forma de tabelas. Os dados são manipulados de acordocom o conceito matemático baseado na teoria de montagens,isto é, álgebra relacionai, que consiste em uma reunião deoperações formais nas relações. As operações relacionaispossibilitam a criação de uma nova relação (tabela) deoperações elementares em outras tabelas (por exemplo,combinação, interseção, ou mesmo diferença).
Uma linguagem estruturada de consultas tem sidoamplamente adotada. Conhecida sob a abreviação SQL,"Linguagem de Consultas Estruturadas", ela é ao mesmo tempouma linguagem de definição de dados e uma linguagem decontrole e manuseio de dados. A definição de dados é otrabalho do administrador. A maioria das pessoas que usa alinguagem SQL somente usa a linguagem de manuseio de dados,que possibilita que eles selecionem os dados que lhesinteressam. Do ponto de vista do usuário o comando maisimportante para a linguagem de manuseio de dados é o comandoSELECIONAR. Baseado na álgebra relacionai, ele possibilitaque operações de seleção de dados sejam realizadas em váriastabelas relacionais para torná-las acessíveis para o usuário.
Com o desenvolvimento extraordinário da Internet, e ainterligação de redes públicas e privadas que o mesmopermitiu, a troca de dados foi padronizada pela adoção de umprotocolo chamado HTTP, "Hyper Text Transfer Protocol", eatravés do desenvolvimento de um sistema de comunicação sob onome de Web, a "World Wide Web". A World Wide Web permite aprocura de informações, permite acesso a estas informações esua visualização usando hipertexto ou HTML, "Hyper TextMarkup Language". Esta linguagem possibilita que documentosde hipertexto sejam criados que possam ser exibidos por umnavegador da Web.
A linguagem HTML é uma versão muito simples e especialde um padrão muito mais sofisticado adotado nos anos 80 paradescrever documentos e suas formatações, conhecido sob aabreviação SGML, "Standard Generalized Markup Language". Alinguagem SGML é uma linguagem simbólica que ainda é usadapara descrever a estrutura lógica de um documento, e não seuaspecto topográfico. 0 princípio aplicado é marcaçãogenérica, por meio de marcadores, de capítulos, parágrafos,prefácio, introdução e outros componentes de um documento.
Embora a simplicidade da linguagem HTML tenha contribuídoamplamente para essa adoção, e estivesse completamenteadequada no começo do desenvolvimento da Web, a necessidadede aplicativos mais exigentes rapidamente demonstraram seuslimites. Porque a simplicidade da HTML foi alcançada àscustas da ausência de finalidade para desenvolvimentoadicional, em pouco tempo foi sentida a necessidade de umalinguagem que oferecesse possibilidades de desenvolvimento eadaptação similares ao padrão do qual a HTML foi derivada,isto é, SGML, mas evitando a complexidade do último. Aresposta a isto foi um novo padrão proposto no final de 1996pela organização encarregada da tarefa de padronizar a Web,este padrão sendo conhecido como XML, "eXtensible MarkupLanguage". Assim como a SGML, mas sem sua complexidade, a XMLé uma metalinguagem que possibilita que a linguagem HTML sejaexpandida. Em particular, ela possibilita que novosmarcadores sejam definidos, por exemplo, para uma descriçãomais clara de um texto, e ela possibilita que documentossejam completamente personalizados. O sucesso da XML está emsua habilidade para descrever qualquer âmbito de dados graçasa sua extensibilidade. Ela possibilita que o vocabulário esintaxe dos dados que ela contém sejam estruturados eestabelecidos.
Não é, portanto, surpreendente que a linguagem XML tenhasido usada desde sua criação para formatar documentoscontendo dados derivados de bancos de dados, particularmentebancos de dados relacionais descritos acima. Dados obtidospor meio de consultas SQL.
Entretanto, o uso de dados obtidos, e sua inclusão emdocumentos para sua exibição em uma janela aberta por umnavegador da Web de um usuário, podem requerer um trabalho decodificação maior.- No exemplo já citado acima, de bancos dedados questionados pelas agências de viagens, os usuários, onível de personalização necessário da apresentação pode sermuito alto. Na verdade, os clientes destas agências deviagens têm exigências altamente variáveis. Dependendo seeles são turistas ou homens ou mulheres de negócios, aseleção de dados e sua apresentação pode ser muito diferentepara facilitar o trabalho dos funcionários nestas agências,aumentar a produtividade e resultar em maior satisfação docliente.
A geração automática de documentos XML atraiu, portanto,atenção particular dos fomentadores destes aplicativos.Referência pode ser feita, por exemplo, a uma patente emitidapelo Departamento de Patentes e Marcas Registradas dosEstados Unidos da América (USPTO) sob o número US 6.636.845,que descreve um método para a geração de documentos XML deuma única consulta "Geração de um ou mais documentos XML deuma única consulta SQL". Entretanto, falta flexibilidade aométodo descrito. Em particular, ele conta com uma definiçãoestática para descrever o acesso aos dados. Portanto existemtantas definições quantos forem os tipos de dados, a seremacessados nos documentos XML correspondentes.
OBJETIVO DA INVENÇÃO
O objetivo geral da invenção é propor um métodomelhorado para gerar documentos XML de um banco de dados.
Um objetivo particular da invenção é ser capaz de gerarum documento XML de uma definição dinâmica de acesso aosdados no banco de dados.
Um outro objetivo da invenção é obter esta definiçãodinâmica pelo uso de uma combinação de gabaritos aninhadosdescritos no formato do banco de dados.
Um objetivo adicional da invenção é simplificar ereduzir o número de documentos XML a serem gerados para umaplicativo mantendo um alto grau de personalização.
Os outros objetivos, características e vantagens destainvenção serão aparentes para as pessoas versadas na técnicaao examinarem a seguinte descrição e desenhos que aacompanham. Entende-se que outras vantagens possam serincorporadas.
SUMÁRIO DA INVENÇÃO
Um método para gerar automaticamente pelo menos umdocumento XML que contém dados extraídos de uma fonte de umbanco de dados é descrito. 0 método consiste em definir umapluralidade de gabaritos no formato do banco de dados; taisgabaritos contêm instruções executáveis. Consultas associadascom cada um dos gabaritos são também definidas. As consultassão usadas para extrair dados da fonte do banco de dados naforma de séries de registros. As instruções dos gabaritos sãoexecutadas para gerar pelo menos um documento XML que incluaos dados derivados das séries de registros. As instruçõesincluem pelo menos uma instrução de chamada para chamarqualquer um dos outros gabaritos. Os documentos XML consistemem elementos que incluem atributos. 0 método é caracterizadopelo fato de que ele mantém um conceito do elemento corrente.
0 método também inclui uma instrução para criar um novoelemento que é designado ao elemento corrente. 0 novoelemento então por sua vez torna-se o elemento corrente. 0método também inclui uma instrução para criar um novoatributo para o elemento corrente, assim como uma instruçãopara fechar o elemento corrente que consiste em redefinir afunção de elemento corrente ao elemento fonte do elementocorrente. 0 método inclui uma definição do arquivo que tornapossível construir o nome do documento XML, criar um elementode raiz que se torna o elemento corrente e especificar quaisdos gabaritos é o gabarito de raiz. Parâmetros são usadospara ligar os gabaritos quando há instrução de chamada degabarito é executada ou quando a definição do arquivo éaberta e o gabarito de raiz é usado. Cada uma das instruçõesdo gabarito é aplicada a cada registro das séries deregistros. As instruções são interpretadas pelo gerador XML.
0 banco de dados fonte é um banco de dados relacionai e asconsultas são consultas que obedecem as regras da linguagemde consultas estruturadas conhecida como SQL. Os gabaritos,consultas, instruções, definição dos arquivos e parâmetrosestão contidos na forma de tabelas em pelo menos um banco dedados relacionai e podem ser incluídos no banco de dadosfonte.
BREVE DESCRIÇÃO DAS FIGURAS
Os propósitos, objetivos, assim como as característicase vantagens da invenção se tornarão mais aparentes peladescrição detalhada de uma modalidade da invenção que éilustrada pelos seguintes desenhos que a acompanham, nosquais:
A Figura 1 mostra o método completo da implementação dainvenção.
A Figura 2 descreve a estrutura das tabelas de definiçãodo gerador XML.
A Figura 3 descreve o processo que se refere à geraçãodos arquivos baseado no conteúdo da definição do arquivo.
A Figura 4 descreve o estágio da criação do arquivo XMLalvo.
A Figura 5 descreve o processamento de um gabarito.
A Figura 6 descreve as instruções dos gabaritos.
A Figura 7 é uma modalidade exemplar da invenção.
Os desenhos anexos são dados como exemplos e não limitamo escopo da invenção.
DESCRIÇÃO DETALHADA DA INVENÇÃO
A Figura 1 mostra o método completo de implementação dainvenção que é usado para um aplicativo de software referidoabaixo como VISTA (100), o propósito do qual é tornardisponível para usuários distantes informação extraída de umbanco de dados fonte (140) pela formatação delesautomaticamente de uma forma que possa ser facilmenteinterpretado pelos navegadores destes usuários. 0 banco dedados conterá, por exemplo, as ofertas e condições dereservas das cadeias de hotéis internacionais. Neste exemploos usuários são, portanto, agências de viagens, que podementão acessar esta informação de qualquer lugar do mundo deuma rede pública ou privada por meio da Internet.Como foi discutido no capítulo sobre o estado datécnica, a linguagem XML é a mais adequada para estepropósito. Proposta pela principal organização depadronização da Web, isto é, W3C, a "World Wide WebConsortium", ela foi amplamente adotada. VISTA é, portantobaseado na geração de documentos na forma de arquivos XML(110) para a exibição de seu conteúdo, desse modo tornando ainformação procurada disponível para os usuários. Para estepropósito o aplicativo (100) deve ler os arquivos XML pormeio de um analista sintático (analista gramatical).
O analista gramatical é, uma ferramenta padrão,desenvolvido e vendido por provedores de software tais como aconhecida companhia americana Microsoft Corporation.
A análise do arquivo alvo gera, durante a execução doanalista gramatical, objetos (105) constituindo páginas quepodem ser exibidas pelo navegador do usuário do aplicativo.
O gerador XML (120) usado para gerar arquivos XML ébaseado em modelos ou gabaritos (o termo "gabarito" é usadona literatura técnica inglesa sobre estes assuntos). Eles sãoarmazenados nas tabelas de definição (130) do gerador XML noformato e na linguagem do banco de dados relacionai usado. Osgabaritos podem ser aninhados para aumentar suaspossibilidades de serem reutilizados. Os gabaritos de acordocom a invenção são séries de instruções que podem, serinterpretadas pelo gerador XML e podem ser reutilizadas emseus contextos. 0 contexto de um gabarito se aplica a umasérie de registros, ou conjunto de registros, de acordo com aterminologia técnica inglesa, isto é, uma vista parcial dobanco de dados obtida por meio de uma consulta específicaremetida ao último. As consultas se adaptam a linguagem deconsulta estruturada (SQL) como foi discutido previamente. Deacordo com a invenção as consultas são definidas earmazenadas no banco de dados (135) na forma de objetos emque cada um provê acesso a uma série de registrosparticulares. Os objetos de consulta podem conter parâmetros.Os parâmetros então servem para modificar a consulta. Porexemplo, em um banco de dados que liste todos os livros emuma biblioteca, uma consulta pode ser definida quepossibilite que os livros sejam procurados pelo nome de umautor em particular e assim inclui um parâmetro "autor". Parauma busca especifica, o parâmetro autor pode então sersubstituído pelo nome de um autor específico. A série deregistros correspondentes, que será devolvida pelo banco dedados em resposta a consulta, consistirá em uma lista delivros daquele autor mantidos na biblioteca.
Se XML é o meio mais adequado de distribuir os dados aosusuários, um banco de dados relacionai (140) é ideal para oarmazenamento de dados relacionado ao produto. O uso de umbanco de dados bem estruturado garante manutenção eficiente efácil da informação que ele contém e evita redundâncias, emparticular. O banco de dados (140) é, portanto, a fonteessencial de dados que serão incluídos nos arquivos XMLgerados para os usuários do aplicativo (100). O método dainvenção leva vantagem, em particular, do uso da linguagem deconsulta estruturada SQL já mencionada. 0 uso de gabaritos,no formato de banco de dados, que possibilita o alvo dosdocumentos XML ser gerado, não requer a distribuição para osusuários, no momento em que eles se conectam com seusnavegadores, dos recursos do software que eles de outro modoprecisariam para acessar o banco de dados fonte diretamente.
Isto aumentaria necessariamente o tempo preciso para acessara informação procurada, bloquearia a rede e tornariacomplicado para disponibilizar a informação procurada. Naverdade, embora a estrutura e organização do banco de dadostendam a garantir sua eficiência e evitar redundâncias, aexibição de informação para o usuário encontra outroscritérios. A combinação da estrutura dos dados no banco dedados com os dados pedidos pelo usuário pode muito bem serexecutados na fonte, como é recomendado pela invenção, pelogerador XML (120), que conta com os gabaritos das tabelas dedefinição (110) e as definições de consultas associadas (135)para criar um pequeno número de arquivos XML alvos (110)contendo informação suficiente para o usuário.
As tabelas de definição, os gabaritos e as consultas deacordo com a invenção podem estar contidos em um banco dedados que é separado do banco de dados fonte (140) , comomostrada diagramaticamente na Figura 1, mas poderia tambémfazer parte de um banco de dados exclusivo (150) semproblemas.
O propósito da invenção é, portanto, gerar documentosXML (110) de uma fonte única (140), um banco de dadosrelacionai, gerenciados por aplicativos de software queconstituem os padrões vigentes, dos quais existem numerosasvariações comerciais bem conhecidas, por exemplo, aquelasconhecidas sob os nomes de "Oracle", "IBM DB2" ou "MicrosoftAccess", produtos desenvolvidos e comercializados por suasrespectivas companhias. 0 gerenciamento e integridade dospróprios dados são, portanto, fornecidos pelo uso de umproduto padrão que foi amplamente testado e usado. Portanto,pela inclusão das regras para gerar e testar documentos XMLno próprio banco de dados no formato do último, numerosasvantagens podem derivar disto. Em particular, o tempo dedesenvolvimento é reduzido. Fazer mudanças em um banco dedados e automaticamente restaurar todos os arquivos XML de umdado aplicativo, tal como VISTA (100), portanto leva muitomenos tempo do que ter que atualizar e corrigir um códigoespecifico. Além do mais, isto pode ser executado diretamentepelos profissionais responsáveis pelo desenvolvimento dopróprio aplicativo, VISTA neste exemplo, enquanto odesenvolvimento de um software especifico sempre requertrabalho de codificação caro feito por programadoresaltamente especializados.
A Figura 2 descreve a estrutura das "tabelas dedefinição" do gerador XML. Cada tabela contém:TABELA 1
<table>table see original document page 11</column></row><table><table>table see original document page 12</column></row><table>
A definição do arquivo (200), que usa parâmetros (210),contém a definição da consulta particular a ser feita aobanco de dados para encontrar s série de registrosapropriada. A definição do arquivo provê com referências umgabarito (220) que usa as instruções (230). Quando ainstrução é do tipo que nomeia um outro gabarito (225),parâmetros devem então ser passados para o gabarito nomeado(240).
Os elementos e atributos do documento XML mencionado natabela acima formam uma parte integral da linguagem XML e sãoconceitos bem conhecidos das pessoas versadas na técnica.Geralmente um documento XML incluirá um ou mais elementosligados por marcadores iniciais e finais na forma<xxxElemento> e </Elemento> respectivamente. Cada elementopode então ter um ou mais atributos, cada um tendo um nome eum valor que são especificados nas instruções do gabarito.
A Figura 3 descreve o processo de geração de arquivoscom base no conteúdo da "definição do arquivo" descrita acimae formando parte de uma "tabela de definições do geradorXML".
Após a definição do arquivo (300) ser aberta para cadaregistro (314) por esta definição, ela é testada (320) seexiste uma "definição de consulta" associada. Se for o caso(322), a consulta correspondente é executada. A "série deregistros" obtida do banco de dados é então aberta (330).Haverá tantos arquivos alvos criados (360) quantos registrosexistirem na série de registros. Todos os registros na sériede registros são paginados (350). Quando o último tiver sidoprocessado (334) o processo passa para o próximo registro dedefinição do arquivo (370).
Se, ao testar a presença de uma definição de consultaassociada (320), a resposta for negativa (324), um arquivoalvo único é então criado (380) antes de dar prosseguimentoao próximo registro da definição do arquivo. Se não houverregistros adicionais o processo é completado (312).
O estágio de criação do "arquivo alvo" (380) e estágiossimilares para a criação do "arquivo XML alvo" (360) sãodescritos na Figura 4.
A criação do arquivo alvo, primeiramente, envolve aconstrução (400) de um nome de arquivo. Se, como vistopreviamente, a mesma "definição do arquivo" é usada paracriar arquivos alvos múltiplos, a construção do nome resultada concatenação:
- de um prefixo derivado da definição do arquivo
- de uma parte dinâmica derivada de um registro correnteda série de registros
- de um sufixo derivado da definição do arquivo
Entretanto, se não existe definição de consultaassociada, como foi visto, um arquivo único deve ser criado.
Neste caso somente o prefixo e o sufixo são usados, nãoexiste parte dinâmica.
Após isto o arquivo XML alvo é efetivamente criado (410)na forma de um objeto representando a estrutura do documentoXML e de acordo com a especificação DOM (Document ObjectModel) emitido pela organização de padronização da Web, W3C,já mencionada.
Se um elemento de raiz aparece na definição do arquivo(422), ele é criado (430). Após isto, se parâmetros estãopresentes na definição do arquivo (442) , eles sãoposicionados (440) para passar para o gabarito (444) .
0 processamento do gabarito (450), que pode ser umgabarito de raiz ou um gabarito aninhado, isto é, nomeado porum outro gabarito, é descrito em mais detalhes na figura 5.
Os parâmetros definidos pelo gabarito nomeado (ou adefinição do arquivo) devem ser combinados com aqueles dogabarito nomeado. Para este propósito um "grupo deparâmetros" temporários é construído (500) baseado nadefinição de parâmetros. Quando isto é feito, os valoresapropriados que são obtidos formam o registro corrente da"série de registros".
O estágio (500) é desmembrado em detalhes na seção certada Figura 5. Cada um dos parâmetros é encontrado pelo seunome (501) assim como o campo definido pelo parâmetro (502).O valor do campo é obtido da "série de registros" (503), quepossibilita que o valor do parâmetro seja fixado (504). Oprocesso é repetido (506) desde que haja parâmetros (505)para serem processados.
O gabarito nomeado é então encontrado (510). Osparâmetros de "definição de consulta" associados devem sercombinados com os do gabarito nomeado antes da execução nobanco de dados para obter a "série de registros" apropriada(520).
Os parâmetros são aplicados exaustivamente a cada um dosregistros na "série de registros" (530) e a cada uma dasinstruções (540) até que não haja mais instruções a seremprocessadas (560) ou um registro na "série de registros"(550).
A Figura 6 descreve em mais detalhes o estágio deprocessamento de instrução. Quando as instruções sãoexecutadas o sistema mantém um conceito de elemento corrente.É este elemento que é o alvo de cada uma das instruçõesdescritas abaixo. Se não existe elemento corrente, a raiz ouprimeiro elemento é usado.
As instruções são de vários tipos: criação de umelemento (600), criação de um atributo (610), fechamento deum elemento (620) e chamada de um gabarito (630) . Nos doisprimeiros casos é necessário primeiro obter (602) o valor docampo especificado na "série de registros" corrente. Noúltimo caso é necessário primeiro obter (632) os parâmetros aserem passados para o gabarito nomeado.
Uma instrução pode, portanto, ter que criar um elementoXML (600) exibindo o nome construído como previamentedescrito. O novo elemento é então determinado ao elementocorrente (605) que, portanto torna-se o pai do novo elementofilho. Opcionalmente, um valor pode ser inserido no novoelemento e este valor deve corresponder ao campo especificadona "série de registros".
Uma instrução pode ter que determinar um atributo (610)a um elemento XML. O atributo é criado para o elementocorrente (615). Como acima, um valor pode opcionalmente serfixado a este atributo, e este valor deve corresponder a umcampo especifico ou a série de registros.
Uma instrução pode fechar um elemento (620), o que levaa redefinir a função do elemento corrente (625) para oelemento pai.
Finalmente, uma instrução pode chamar um gabarito (630)pelo nome previamente especificado. Para processar o gabaritonomeado (635), parâmetros serão passados da série deregistros do gabarito corrente para a do gabarito nomeado.
A Figura 7 ilustra, por meio de um exemplo particular, ométodo de acordo com a invenção para gerar um arquivo XMLalvo de um banco de dados relacionai. Neste exemplo, como équase sempre exclusivamente o caso em um ambiente ondeprodutos de software estão sendo desenvolvidos vão sercomercializados em todo o mundo por equipes multinacionais,todos os termos técnicos do código são definidos em inglês.
Entretanto, isto não deveria impedir o entendimento claro dadescrição seguinte. Quando necessário os termos sãoexplicados ou eles podem ser facilmente considerados comosendo uma seqüência de letras e números, sem nenhumsignificado particular, embora tentativas sejam feitas paradeterminar algum significado para eles por razões práticas emnemônicas óbvias.
A criação de um arquivo XML começa com a abertura (700)da "definição de arquivo", já descrita, que toma a forma deuma tabela (705) no banco de dados. Com a informação contidanesta tabela é então possível criar' um arquivo XML, com onome específico (codesList_CAR.xml), contendo um primeiroelemento vazio(codes_list). Este elemento torna-se o elementocorrente. A definição do arquivo contém o nome do gabarito deraiz (710) que foi usado.
O gabarito acima é então processado (720). 0 primeiroestágio consiste em executar a consulta (722) definida para ogabarito (CarCodesList), no banco de dados, para obter asérie de registros correspondente (730). As instruções dogabarito (710), 5 neste exemplo, são aplicadas a cada um dosregistros na série de registros assim obtida.
Isto começa com a criação (724) de um elemento (lista)filho do elemento corrente criado previamente. Este elementopor sua vez torna-se o elemento corrente. As duas próximasinstruções, índices 2 e 3, do gabarito (710), são entãoprocessadas. Elas servem para criar (726) dois atributos(Nome, Área), cada um correspondendo a um Nome do Campoespecificado no gabarito.' 0 elemento corrente (lista) doarquivo XML (728) então inclui estes atributos.
A próxima instrução, índice 4 do gabarito (710), usa umoutro gabarito (CodesListItem), para o qual um parâmetro édefinido (715). 0 gabarito nomeado (740) também tem umadefinição de consulta (CodesListItem), que possibilita asérie de registros correspondentes (750) no banco de dadosserem obtidas após o parâmetro do gabarito nomeado (715) terpossibilitado que o campo (742) seja encontrado para aexecução desta consulta efetivamente.
O gabarito nomeado é processado de uma maneira similar aaquela já descrita acima para enriquecimento do arquivo XML(760).

Claims (10)

1. Método para gerar automaticamente pelo menos umdocumento XML, incluindo dados extraídos de um banco de dadosfonte (140), o referido banco de dados compreendendo um meiopara gerar o referido pelo menos um documento XMLr no qual oreferido meio inclui um gerador XML (120) fazendo uso detabelas (130, 135) definidas no formato e com a linguagem doreferido banco de dados, o referido método caracterizado porconsistir em definir uma pluralidade de gabaritos (220,225)em pelo menos uma tabela de definição (130), a referidapluralidade de gabaritos (220, 225) incluindo instruçõesexecutáveis (230) pelo referido gerador XML (120), no qual asreferidas instruções executáveis (230) incluem pelo menos umainstrução de chamada (630) para chamar qualquer um dosgabaritos da referida pluralidade de gabaritos (220, 255);definir consultas (135) associadas com cada um dos referidosgabaritos (220, 225), nos quais as referidas consultas sãousadas para extrair dados do referido banco de dados fonte(140) na forma de séries de registros (730); executar asreferidas instruções (230) durante um estágio de execução(700) de uma definição do arquivo (200) incluída na referidapelo menos uma tabela de definição (130), na qual o referidoestágio de execução (700) inclui uma chamada por pelo menosum dos referidos gabaritos para pelo menos um outro gabaritoda referida pluralidade de gabaritos (220, 225) para sercapaz de gerar pelo menos um documento XML incluindo osreferidos dados derivados das referidas séries de registros(730).
2. Método, de acordo com a reivindicação 1, no qual pelomenos um documento XML compreende elementos (702) que sãocapazes de incluir atributos (726), o método caracterizadopelo fato de que o referido estágio de execução inclui umestágio para criar os referidos elementos e seus referidosatributos.
3. Método, de acordo com a reivindicação 1 ou 2,caracterizado pelo fato de que a referida definição doarquivo torna possível a construção do nome do referidodocumento XML (400); a criação de um arquivo alvo para oreferido documento XML (410); a criação de um elemento deraiz (430), o referido elemento de raiz para o qual éatribuída a função de elemento corrente; o processamento deum gabarito de raiz (710) capaz de chamar qualquer μπι dosgabaritos da referida pluralidade de gabaritos.
4. Método, de acordo com a reivindicação 3,caracterizado pelo fato de incluir pelo menos uma instruçãopara a criação de um novo elemento filho (600) do referidoelemento corrente, para o qual referido novo elemento (600) éatribuída, por sua vez, a função do referido elementocorrente (605); uma instrução para a criação de um novoatributo (610), a referida instrução cria o referido novoatributo para o referido elemento corrente; uma instruçãopara o fechamento (620) do referido elemento corrente, areferida instrução consistindo na redeterminação da função doelemento corrente para o elemento pai do referido elementocorrente.
5. Método, de acordo com qualquer reivindicação 3 ou 4,caracterizado pelo fato de incluir parâmetros (210, 240) , osparâmetros servindo para ligar os referidos gabaritos quandoo referido gabarito de instrução de chamada é executado, ouquando a referida definição do arquivo é aberta e é feito ouso do referido gabarito de raiz.
6. Método, de acordo com qualquer uma das reivindicaçõesprecedentes, caracterizado pelo fato de que cada uma dasreferidas instruções (540) dos referidos gabaritos é aplicadaa cada registro (530) da referida série de registros.
7. Método, de acordo com a reivindicação 6,caracterizado pelo fato de que as referidas instruções sãointerpretadas pelo gerador XML (120).
8. Método, de acordo com qualquer uma das reivindicaçõesprecedentes, caracterizado pelo fato de que o referido bancode dados fonte (140) é um banco de dados relacionai, e asreferidas consultas (135) são consultas que obedecem asregras da linguagem de consulta estruturada conhecida comoSQL.
9. Sistema, em particular um gerador de documentos XML(120), caracterizado pelo fato de que o referido sistemainclui meios adaptados para implementar o método comodefinido em qualquer uma das reivindicações precedentes.
10. Meio legível com um computador, compreendendo asinstruções de um programa executável pelo referidocomputador, caracterizado pelo fato de que o referidoprograma implementa o método como definido em quaisquer dasreivindicações de 1 a 8.
BRPI0611363-0A 2005-05-09 2006-05-05 método para gerar automaticamente pelo menos um documento xml, sistema, meio legìvel com um computador BRPI0611363A2 (pt)

Applications Claiming Priority (5)

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.7 2005-05-09
US67923205P 2005-05-10 2005-05-10
US60/679.232 2005-05-10
PCT/EP2006/062102 WO2006122886A1 (fr) 2005-05-09 2006-05-05 Methode dynamique de generation de documents xml a partir d'une base de donnees

Publications (1)

Publication Number Publication Date
BRPI0611363A2 true BRPI0611363A2 (pt) 2010-09-08

Family

ID=34939745

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0611363-0A BRPI0611363A2 (pt) 2005-05-09 2006-05-05 método para gerar automaticamente pelo menos um documento xml, sistema, meio legìvel com um computador

Country Status (13)

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

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
ES2317546T3 (es) 2009-04-16
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
BRPI0611363A2 (pt) método para gerar automaticamente pelo menos um documento xml, sistema, meio legìvel com um computador
US6356920B1 (en) Dynamic, hierarchical data exchange system
US7844642B2 (en) Method and structure for storing data of an XML-document in a relational database
US7124144B2 (en) Method and apparatus for storing semi-structured data in a structured manner
US6502112B1 (en) Method in a computing system for comparing XMI-based XML documents for identical contents
US8484552B2 (en) Extensible stylesheet designs using meta-tag information
US7895570B2 (en) Accessible role and state information in HTML documents
US6658624B1 (en) Method and system for processing documents controlled by active documents with embedded instructions
US20020156811A1 (en) System and method for converting an XML data structure into a relational database
US7707159B2 (en) Method and apparatus for storing semi-structured data in a structured manner
US9361398B1 (en) Maintaining a relational database and its schema in response to a stream of XML messages based on one or more arbitrary and evolving XML schemas
CN107122187A (zh) 一种业务系统异构操作系统访问设计方法
US8196033B2 (en) Converting between data sources and XML
US7953742B2 (en) Three-phase single-pass efficient processing of Xquery update
US20070094289A1 (en) Dynamic, hierarchical data exchange system
EP1192561A1 (en) Database management system with capability of fine-grained indexing and querying
Esposito Applied XML programming for Microsoft. NET
Anderson Data scalability in open hypermedia systems
JP3842576B2 (ja) 構造化文書編集方法及び構造化文書編集システム
WO2002082326A2 (en) Extensible stylesheet designs using meta-tag information
Stephens et al. Visual Basic. NET and XML: harness the power of XML in VB. NET applications
Malý et al. On XML Document Transformations as Schema Evolves: A Survey of Current Approaches
Voorhees et al. Persistent Data Storage
Huang et al. Information Sourcing from the Internet and its Verification
Wiza et al. Dynamic Web systems based on XML and database technologies

Legal Events

Date Code Title Description
B06A Patent application procedure suspended [chapter 6.1 patent gazette]
B11B Dismissal acc. art. 36, par 1 of ipl - no reply within 90 days to fullfil the necessary requirements