BRPI0302085B1 - método para suportar validação de um documento de linguagem de marcação extensível - Google Patents

método para suportar validação de um documento de linguagem de marcação extensível Download PDF

Info

Publication number
BRPI0302085B1
BRPI0302085B1 BRPI0302085A BR0302085A BRPI0302085B1 BR PI0302085 B1 BRPI0302085 B1 BR PI0302085B1 BR PI0302085 A BRPI0302085 A BR PI0302085A BR 0302085 A BR0302085 A BR 0302085A BR PI0302085 B1 BRPI0302085 B1 BR PI0302085B1
Authority
BR
Brazil
Prior art keywords
xml
elements
native
native xml
schema
Prior art date
Application number
BRPI0302085A
Other languages
English (en)
Other versions
BR0302085A (pt
Inventor
Brian Michael Jones
E Mark Sunderland
Marcin Sawicki
Robert A Little
Ziyi Wang
Original Assignee
Microsoft Corp
Microsoft Technology Licensing Llc
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 Microsoft Corp, Microsoft Technology Licensing Llc filed Critical Microsoft Corp
Publication of BR0302085A publication Critical patent/BR0302085A/pt
Publication of BRPI0302085B1 publication Critical patent/BRPI0302085B1/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/131Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/221Parsing markup language streams

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

"sistema e método para suportar xml não-nativa em xml nativa de um documento de processador de texto". um sistema e método para permitir validação de um documento de linguagem de marcação extensível (xml) tendo elementos associados a dois ou mais esquemas onde os elementos de cada esquema podem ser aninhados arbitrariamente dentro de elementos a partir de outro esquema e cada conjunto de elementos permanece válido dentro de seu próprio esquema. elementos do segundo esquema são transparentes aos elementos do primeiro esquema quando o processador de texto valida os elementos do primeiro esquema. os elementos do segundo esquema são validados separadamente, de tal modo que os elementos do primeiro esquema são transparentes para a validação dos elementos correspondendo ao segundo esquema.

Description

Relatório Descritivo da Patente de Invenção para "MÉTODO PARA SUPORTAR VALIDAÇÃO DE UM DOCUMENTO DE LINGUAGEM DE MARCAÇÃO EXTENSÍVEL" FUNDAMENTOS DA INVENÇÃO
[001] Linguagens de Marcação ganharam ampla popularidade em anos recentes. Um tipo de linguagem de marcação, Linguagem de Marcação Extensível (XML), é uma linguagem universal que proporciona uma forma de identificar, permutar e processar diversos tipos de dados. Por exemplo, XML é usada para criar documentos que podem ser utilizados por uma variedade de programas de aplicação. Elementos de um arquivo de XML têm um espaço de nome e esquema associados.
[002] Em XML, um espaço de nome é comumente usado para identificar singularmente cada documento de XML. Cada documento de XML pode usar um espaço de nome para permitir que processos facilmente identifiquem o tipo de XML associada ao documento. Os espaços de nome singulares também podem auxiliar a diferenciar elementos de marcação provenientes de fontes diferentes, e que por acaso têm o mesmo nome.
[003] Esquemas de XML proporcionam uma forma de descrever e validar dados em um ambiente de XML. Um esquema declara quais elementos e atributos são usados para descrever conteúdo em um documento de XML, onde cada elemento é permitido, e cujo elemento pode aparecer dentro de outros elementos. O uso de esquemas garante que o arquivo seja estruturado da mesma forma. Os esquemas podem ser criados por um usuário e geral mente suportados por uma linguagem de marcação associada, tal como XML. Mediante uso de um editor de XML que suporta esquema, o usuário pode manipular o arquivo de XML e gerar documentos de XML que seguem o esquema que o usuário criou.
[004] Documentos de XML podem ser criados para seguir um ou mais esquemas. Contudo, em certas situações, os mecanismos convencionais para validar elementos dentro de um documento de XML, em relação a mais do que um esquema, estão em um nível abaixo do aceitável.
[005] Se elementos associados a um primeiro esquema são aninhados dentro de elementos de um segundo esquema, quaisquer filhos dos elementos aninhados não podem ser validados em relação ao primeiro esquema, a menos que ambos os esquemas sejam estruturados de tal forma a responder um pelo outro. Em outras palavras, mecanismos de validação existentes podem validar apenas um elemento e seus filhos em relação a um esquema, mas não os seus netos diretamente. Freqüentemente, o pai é o único que pode determinar as regras de seus filhos. Se o elemento filho está em um esquema diferente, então o esquema do elemento filho deve se referir ao esquema do pai se a intenção for a de inserir um neto no esquema do pai. Não havia forma de dizer original mente que o esquema do filho era transparente, e permitir que o pai definisse o que o seu neto seria. Até o presente, essa limitação tem se constituído num problema para os desenvolvedores de ferramentas de linguagem de marcação.
SUMÁRIO DA INVENÇÃO
[006] A presente invenção é voltada para habilitar a validação de um documento de linguagem de marcação extensível (XML) tendo elementos associados a dois ou mais esquemas onde os elementos de cada esquema podem ser aninhados arbitrariamente dentro de elementos a partir de outro esquema e cada conjunto de elementos permanece válido dentro de seu próprio esquema. Um processador de texto tem um primeiro esquema associado, ou esquema nativo, que corresponde a uma XML nativa. Um documento gerado de acordo com uma XML nativa pode incluir elementos de XML arbitrária ou não- nativa aninhados dentro dos elementos de XML nativa e elementos de XML nativa aninhados dentro de elementos de XML não-nativa. Os elementos de XML não-nativa são ignorados pelo processador de texto ao validar os elementos de XML nativa do arquivo de XML mista. Os elementos de XML não-nativa são validados separadamente mediante utilização de uma árvore paralela de XML gerada a partir dos elementos de XML não-nativa dentro do arquivo de XML mista e tratando-se os elementos de XML nativa como se eles fossem transparentes.
[007] A presente invenção permite que elementos de XML não-nativa, que têm seu próprio espaço de nome correlato, sejam incorporados aos elementos de XML nativa que têm um outro espaço de nome correlato. Anteriormente, os usuários convertiam arquivos de XML em outros formatos para exibição ou outras funções. Editores de XML anteriores não confirmavam (isto é, invalidavam) elementos de um primeiro espaço de nome incorporados aos elementos de um segundo espaço de nome ao serem validados (a menos que ambos os esquemas associados permitissem, explicitamente, o espaço de nome do outro dentro dele próprio). A presente invenção proporciona uma XML nativa que permite que outros elementos de XML não-nativa sejam incorporados aos elementos de XML nativa no mesmo arquivo de XML sem considerar se qualquer dos esquemas de XML permitiu, explicitamente, os elementos incorporados. Remover os elementos de XML nativa a partir do arquivo de XML resultaria em um documento válido para o esquema de XML não-nativa tendo apenas a XML não-nativa. Correspondentemente, remover os elementos de XML não-nativa a partir dos arquivos de XML resultaria em um documento válido para o esquema de XML nativa tendo apenas a XML nativa. Conseqüente-mente, o esquema de XML de um espaço de nome é transparente para um esquema de XML de um outro espaço de nome de tal modo que elementos associados a cada esquema podem ser validados individual e separadamente.
[008] Com relação á transparência, os elementos de XML não-nativa são armazenados em um local separado, referido como árvore paralela de XML, como um documento elaborado a partir do arquivo de XML mista. Cada nó da árvore corresponde a um elemento do espaço de nome de XML no arquivo de XML mista. Os nós são mapeados para a posição de seu elemento correspondente dentro do arquivo de XML mista. Conseqüentemente, quando o arquivo de XML é armazenado, o mesmo retém os elementos de XML não-nativa bem como os elementos de XML nativa. Uma vantagem da árvore de XML é que a mesma permite tratar a XML não-nativa separadamente da XML nativa para fins de validação em relação ao esquema de XML não-nativa, enquanto retendo as posições da XML não-nativa dentro da XML nativa. Tratar a XML nativa como transparente para a XML não-nativa permite que o arquivo de XML ainda seja usado, e salvo, como um arquivo único.
DESCRIÇÃO RESUMIDA DOS DESENHOS
[009] A Figura 1 ilustra um dispositivo de computação exemplar que pode ser usado em uma modalidade exemplar da presente invenção.
[0010] A Figura 2 é um diagrama de blocos ilustrando um ambiente exemplar para a prática da presente invenção.
[0011] A Figura 3 ilustra um arquivo de XML mista exemplar de acordo com a presente invenção.
[0012] A Figura 4 mostra um diagrama de blocos exemplar da associação entre um arquivo de XML mista exemplar e uma árvore paralela de XML exemplar de acordo com a presente invenção.
[0013] A Figura 5 é um fluxograma lógico de um processo exemplar para gerar um documento de XML mista de acordo com a presente invenção.
[0014] A Figura 6 é um fluxograma lógico de um processo exemplar para manejar elementos dentro de um documento de XML mista de acordo com a presente invenção, DESCRIÇÃO DETALHADA DA MODALIDADE PREFERIDA
[0015] Do princípio ao fim da especificação e das reivindicações, os termos a seguir consideram os significados explicitamente associados aqui, a menos que o contexto determine claramente o contrário.
[0016] Os termos “linguagem de marcação” ou “ML” se referem a uma linguagem para códigos especiais dentro de um documento que especificam como as partes do documento devem ser interpretadas por uma aplicação. Em um arquivo de processador de texto, elementos de marcação podem ser associados à formatação específica, que especifica como o conteúdo do elemento deve ser exibido ou configurado. Em outros documentos, a marcação pode ser orientada para descrever dados sem tratar de considerações de exibição, [0017] Os termos linguagem de marcação nativa'1 ou "XML nativa” se referem aos elementos de linguagem de marcação que são associados a uma aplicação de processador de texto e a um esquema associado à aplicação de processador de texto.
[0018] Os termos “linguagem de marcação não-nativa” ou “XML não-nativa” se referem aos elementos de linguagem de marcação criados por um usuário, ou outra aplicação, que seguem esquema diferente do esquema de XML nativa.
[0019] O termo “elemento” se refere à unidade básica de um documento de XML. O elemento pode conter atributos, outros elementos, conteúdo, e outros blocos de construção para um documento de XML.
[0020] O termo “sinal” se refere a um comando inserido em um documento que delineia elementos dentro de um documento de XML. Cada elemento pode ter não mais do que dois sinais: o sinal de início e o sinal de fim. É possível ter um elemento vazio (sem conteúdo) em cujo caso um sinal é permitido.
[0021] O conteúdo entre os sinais é considerado como os “filhos” (ou descendentes) do elemento. Portanto, outros elementos incorporados ao conteúdo do elemento são chamados de “elementos filhos” ou “nós filhos” do elemento. Texto incorporado diretamente ao conteúdo do elemento é considerado como os “nós de texto filhos” do elemento. Em conjunto, os elementos filhos e o texto dentro de um elemento constituem o “conteúdo” daquele elemento.
[0022] O termo “atributo” se refere a um conjunto de propriedades adicionais para um valor específico e associado ao elemento. Os elementos podem ter um número arbitrário de configurações de atributo associadas aos mesmos, incluindo nenhuma. Os atributos são usados para associar informação adicional a um elemento que não está incluído no conteúdo do elemento.
AMBIENTE OPERACIONAL ILUSTRATIVO
[0023] Com referência à Figura 1, um sistema exemplar para implementar a invenção inclui um dispositivo de computação, tal como o dispositivo de computação 100. Em uma configuração básica, o dispositivo de computação 100 inclui, tipicamente, pelo menos uma unidade 102 de processamento e memória 104 de sistema. Dependendo da configuração exata e do tipo de dispositivo de computação, a memória 104 de sistema pode ser volátil (tal como RAM), não-volátil (tal como ROM, memória flash, etc.) ou alguma combinação das duas. A memória 104 de sistema inclui tipicamente um sistema operacional 105, uma ou mais aplicações 106, e pode incluir dados 107 de programa. Em uma modalidade, a aplicação 106 pode incluir uma aplicação 120 de processador de texto que inclui adicionalmente editor 122 de XML. Essa configuração básica é ilustrada na Figura 1 através daqueles componentes dentro da linha tracejada 108.
[0024] O dispositivo de computação 100 pode ter características, ou funcionalidade, adicionais. Por exemplo, o dispositivo de computação 100 pode incluir, também, dispositivos adicionais de armazenamento de dados (removíveis e/ou não-removíveis), tais como, por exemplo, discos magnéticos, discos óticos ou fita. Tal meio de armazenamento adicional é ilustrado na Figura 1 pelo meio de armazenamento removível 109 e meio de armazenamento não-removível 110. Meios de armazenamento de computador podem incluir meios voláteis e não-voláteis, removíveis e não-removíveis implementados em qualquer método ou tecnologia para armazenamento de informação, tal como instruções legíveis por computador, estruturas de dados, módulos de programa, ou outros dados. A memória 104 de sistema, o meio de armazenamento removível 109 e o meio de armazenamento não-removível 110, são, todos, exemplos de meios de armazenamento de computador. Meios de armazenamento de computador incluem, mas não são limitados a, RAM, ROM, EEPROM, memória flash ou outra tecnologia de memória, CD-ROM, discos digitais versáteis (DVD), ou outro meio de armazenamento ótico, cassetes magnéticos, fita magnética, meio de armazenamento de disco magnético ou outros dispositivos de armazenamento magnético, ou qualquer outro meio que possa ser usado para armazenar a informação desejada e o qual possa ser acessado pelo dispositivo de computação 100. Qualquer um dos tais meios de armazenamento de computador pode ser parte do dispositivo 100. O dispositivo de computação 100 também pode ter dispositivo(s) de entrada 112 tal como teclado, mouse, caneta, dispositivo de entrada de voz, dispositivo de entrada de toque, etc. Dispositivo(s) 114 de saída, tal como um vídeo, alto-falantes, impressora, etc., também podem ser incluídos. Esses dispositivos são bem conhecidos na técnica e não precisam ser discutidos detalhadamente aqui.
[0025] O dispositivo de computação 100 também pode conter co- nexões 116 de comunicação que permitem que o dispositivo se comunique com outros dispositivos de computação 118, tal como através de uma rede. A conexão 116 de comunicação é um exemplo de meios de comunicação. Os meios de comunicação podem ser incorporados, tipicamente, por instruções legíveis por computador, estruturas de dados, módulos de programa, ou outros dados, em um sinal modulado de dados, tal como uma onda portadora ou outros mecanismos de transporte, e incluem quaisquer meios de distribuição de informação. O termo “sinal modulado de dados” significa um sinal que tem uma ou mais de suas características configurada ou alterada de tal maneira a codificar informação no sinal. Como exemplo, e não como limitação, meios de comunicação incluem meios de conexão física tal como uma conexão de rede através de fios ou conexão direta por fios, e meios sem fio tais como meios acústicos, RF, infravermelhos e outros meios sem fio. O termo “meios legíveis por computador”, como usado aqui, inclui meios de armazenamento assim como meios de comunicação.
ESTRUTURA DE ARQUIVO DE PROCESSADOR DE
TEXTO
[0026] A Figura 2 é um diagrama de blocos ilustrando um ambiente exemplar para a prática da presente invenção. O ambiente exemplar mostrado na Figura 2 é um ambiente 200 de processador de texto que inclui processador de texto 120, arquivo 210 de XML mista, esquema 215 de XML não-nativa, árvore paralela 220 de XML, e mecanismo 225 de validação de XML. Arquivo 210 de XML mista inclui XML nativa 211 bem como XML não-nativa 212.
[0027] Em uma modalidade, o processador de texto 120 tem seu próprio espaço de nome e um conjunto de esquemas que é definido para uso com documentos associados ao processamento de texto 120. O conjunto de sinais e atributos definidos pelo esquema para processador de texto 120 pode definir o formato de um documento até um ponto tal em que é referido como sua própria linguagem de marcação, uma XML nativa. A XML nativa é suportada pelo processador de texto 120 e pode seguir às regras de outras linguagens de marcação enquanto criando regras adicionais dela própria. Uma XML nativa proporciona uma linguagem de marcação que inclui informação de exibição rica que um usuário pode solicitar sem a necessidade de gastar tempo criando o esquema correspondente à informação de exibição.
[0028] XML nativa 211 e XML não-nativa 212 são misturadas dentro do arquivo 210 de XML mista. De acordo com a presente invenção, elementos de XML não-nativa 212 podem ser aninhados dentro de elementos de XML nativa 211, e elementos de XML nativa 211 podem ser aninhados dentro de elementos de XML não-nativa 212. Conse-qüentemente, quando o processador de texto 120 valida internamente a XML nativa 211 do arquivo 210 de XML mista, o processo de validação interna é confrontado com os elementos de XML não-nativa 212. Um arquivo 210 de XML mista exemplar é descrito adicionalmente na discussão da Figura 2 abaixo.
[0029] Esquema 215 de XML não-nativa é associado aos elementos de XML não-nativa 212. Quando validados, os elementos de XML não-nativa 212 são examinados em relação a se eles estão de acordo com o esquema 215 de XML não-nativa. Como descrito anteriormente acima, um esquema declara quais sinais e atributos são usados para descrever conteúdo em um documento de XML, onde cada sinal é permitido, e quais sinais podem aparecer dentro de outros sinais, garantindo que a documentação seja estruturada da mesma forma. Con-seqüentemente, XML não-nativa 212 é válida quando estruturada como apresentado no esquema 215 de XML não-nativa. Validação de XML não-nativa 212 é descrita adicionalmente na discussão da Figura 5 abaixo.
[0030] Antes da validação, os elementos de XML não-nativa 212 são armazenados na árvore paralela 220 de XML. A árvore paralela 220 de XML é descrita adicionalmente na discussão da Figura 4 abaixo. A árvore paralela 220 de XML é apresentada ao mecanismo 225 de validação de XML para validar XML não-nativa 212. Mecanismo 225 de validação de XML opera de forma similar a outros mecanismos de validação disponíveis para documentos de XML. O mecanismo 225 de validação de XML avalia a XML que está na estrutura do esquema 215 de XML não-nativa. Em uma modalidade, um número maior de mecanismos de validação pode estar associado ao processador de texto 120 para validar um número maior de estruturas de linguagem de marcação.
[0031] A Figura 3 ilustra um arquivo de XML mista exemplar de acordo com a presente invenção. O arquivo 210 de XML mista inclui elementos de XML nativa bem como elementos de XML não-nativa. Um elemento em uma linguagem de marcação normalmente inclui um sinal de abertura (indicado por um “<” e algum conteúdo, e um sinal de fechamento (“</” e “>”). Os sinais associados a XML nativa são referidos como sendo associados ao espaço de nome do processador de texto (espaço de nome do processador de texto). Como contraste, os sinais que são associados a XML não-nativa são referidos como sendo associados a um espaço de nome diferente, neste exemplo um espaço de nome “resumo”. Os elementos do documento 210 de XML mista podem incluir adicionalmente conteúdo. Por exemplo, “Trabalho” está contido no elemento “objetivo” e “principal 123” está contido no elemento “rua”. O elemento “rua” está incluído no elemento “endereço”. Esses elementos são definidos de acordo com um esquema de XML não-nativa correspondendo ao espaço de nome resumo (por exemplo, um esquema de resumo) que foi provido anteriormente pelo usuário ou por uma outra aplicação.
[0032] Examinando-se o arquivo 210 de XML mista, o arquivo in- clui elementos de XML não-nativa aninhados dentro de elementos de XML nativa, e elementos de XML nativa aninhados dentro de elementos de XML não-nativa. Conseqüentemente, quando o arquivo 210 de XML mista é validado internamente por um processador de texto ou enviado como uma árvore para um mecanismo de validação, a aplicação validando o arquivo 210 de XML mista é confrontada com os elementos aninhados que correspondem a dois esquemas diferentes. Dependendo das regras associadas à aplicação de validação, o arquivo 210 de XML mista pode ser considerado inválido se o esquema de XML não-nativa não permite a XML nativa. Por exemplo, se o arquivo 210 de XML mista fosse enviado para um outro mecanismo de validação de XML em sua totalidade, o arquivo provavelmente seria considerado inválido. Os esquemas de XML, tipicamente, não permitem que elementos de um espaço de nome sejam aninhados dentro de elementos de um segundo espaço de nome. Em uma modalidade, a presente invenção supera essa limitação pelo fato de ter um esquema de XML nativa associado ao processador de texto que permite aninhamento de elementos arbitrários associados a um outro esquema de XML não-nativa. Um processo exemplar para se conseguir um arquivo de XML mista válido é descrito adicionalmente nas discussões que acompanham as Figuras 5 e 6.
[0033] A Figura 4 mostra um diagrama de blocos exemplar da associação entre um arquivo de XML mista exemplar e uma árvore paralela de XML exemplar de acordo com a presente invenção.
[0034] A árvore paralela 220 de XML é gerada quando o processador de texto 120 (mostrado nas Figuras 1 e 2) elabora um documento enquanto validando internamente o arquivo 210 de XML mista. A validação interna permite que o processador de texto 120 avalie cada elemento de acordo com seu próprio conjunto de regras. Quando um elemento de XML não-nativa é confrontado aninhado dentro de um elemento de XML nativa, um nó (por exemplo, 402) é gerado dentro da árvore paralela 220 de XML que corresponde àquele elemento. A posição do nó dentro da árvore paralela 220 de XML é determinada pela posição dos elementos correspondentes dentro do documento 210 de XML mista em relação a outros elementos. Conseqüentemente, cada elemento de XML não-nativa do arquivo 210 de XML mista é representado por um nó (por exemplo, 402) da árvore paralela 220 de XML. Relações diretas de pai-filho são estabelecidas entre os elementos de XML representados na árvore paralela 220 de XML, alguns dos quais podem não ter existido originalmente no arquivo 210 de XML mista devido à marcação de XML nativa interposta. Um processo exemplar associado à geração de nós para árvore 220 de XML não-nativa exemplar é descrito adicionalmente em conexão com a Figura 6. A árvore paralela 220 de XML permite que o processador de texto 120 essencialmente ignore os elementos de XML não-nativa ao validar internamente o arquivo 210 de XML mista. A árvore paralela 220 de XML pode ser então validada separadamente do arquivo 210 de XML mista como descrito adicionalmente em conexão com a Figura 5 abaixo.
MANEJO DE ELEMENTOS DE ARQUIVO DE XML MIS-TA
[0035] A Figura 5 é um fluxograma lógico de um processo exemplar para gerar um documento de XML mista de acordo com a presente invenção. O processo 500 começa no bloco 501, onde um arquivo de XML mista foi previamente gerado pelo usuário de uma aplicação de processador de texto, similar ao processador de texto 120, mostrado na Figura 1. O processamento continua no bloco 502.
[0036] No bloco 502, um elemento do arquivo de XML mista é manejado. Ao manejar cada elemento, é feita uma determinação no sentido de se o elemento é um elemento de XML nativa ou um elemento de XML não-nativa. A forma como cada elemento é manejado depen- de do tipo de elemento. Quando um elemento é um elemento de XML não-nativa, um nó correspondendo àquele elemento é inserido na árvore paralela de XML, como descrito adicionalmente em conexão com a Figura 6. Um processo exemplar para manejar cada elemento é descrito adicionalmente em conexão com a Figura 6. Quando o elemento é manejado, o processo se desloca para o bloco de decisão 503.
[0037] No bloco de decisão 503, é feita uma determinação no sentido de se cada um dos elementos incluídos no arquivo de XML mista foi manejado. Cada elemento terá sido manejado quando o processador de texto tiver atingido o sinal de encerramento final do arquivo de XML mista ao elaborar um documento a partir do arquivo de XML mista. Se elementos adicionais ainda não tiverem sido manejados, o processamento retorna ao bloco 502 e começa a manejar um elemento adicional. Se todos os elementos tiverem sido manejados, o processamento continua no bloco 504.
[0038] No bloco 504, a árvore paralela de XML é validada. A árvore paralela de XML é enviada pelo processador de texto para um mecanismo de validação de XML que é similar ao mecanismo 225 de validação de XML mostrada na Figura 2. O mecanismo de validação de XML opera para examinar a árvore paralela de XML de acordo com um esquema associado que é similar ao esquema 215 de XML não-nativa mostrado na Figura 2. O esquema associado declara que sinais e atributos são usados para descrever conteúdo no documento de XML resultante, onde cada sinal é permitido, e quais elementos podem aparecer dentro de outros elementos. A árvore paralela de XML é válida quando a mesma segue o esquema associado. Quando a árvore paralela de XML é validada, o processamento continua no bloco 505.
[0039] No bloco 505, o documento correspondendo ao arquivo de XML mista é gerado pelo processador de texto. Em uma modalidade, o documento é formatado de acordo com o esquema de XML nativa pro- vida pelo processador de texto e exibe os sinais associados aos elementos de XML não-nativa do arquivo de XML mista. Processamento continua para o bloco 506, onde o processo termina.
[0040] Em uma modalidade, o processo 500 pode ser alterado como resultado da validação interna da XML nativa ou validação da XML não-nativa. Por exemplo, uma determinação pode ser feita no sentido de se a XML nativa, ou a XML não-nativa, é inválida. Como resultado, o processo 500 pode ser interrompido, uma mensagem de erro pode ser retornada, um programa pode ser ativado para auxiliar a corrigir a XML, ou operações adicionais podem ser ativadas.
[0041] A Figura 6 é um fluxograma lógico de um processo exemplar manejando elementos dentro de um documento de XML mista de acordo com a presente invenção. O processo 600 entra no bloco 601 quando o processo 500, mostrado na Figura 5, entra no bloco 502. O processamento continua no bloco 602. No bloco 602, é feita uma determinação no sentido de se o elemento sendo manejado corresponde a um elemento de XML nativa ou a um elemento de XML não-nativa. O tipo de elemento pode ser determinado mediante exame do sinal de abertura de cada elemento. O sinal de abertura de cada elemento inclui uma referência ao esquema que corresponde àquele elemento (vide Figura 3). Cada esquema é associado quer seja a uma XML nativa ou a uma XML não-nativa. Quando o tipo de elemento é determinado, o processo se desloca para o bloco de decisão 603.
[0042] No bloco de decisão 603, é feita uma determinação no sentido de se o elemento é um elemento de XML não-nativa. Como declarado anteriormente, cada elemento é manejado diferentemente de acordo com o tipo de elemento. Se o elemento não é um elemento de XML não-nativa, o processamento continua no bloco 604.
[0043] No bloco 604, o elemento é processado de acordo com o formato nativo do processador de texto (por exemplo, XML nativa). Em uma modalidade, o processador de texto proporciona sua própria validação interna para elementos dentro de seu próprio formato. Em outras palavras, o processador não precisa recorrer a um mecanismo de validação de XML para validar elementos correspondendo ao seu formato nativo (por exemplo, XML nativa). Ao reconhecer elementos de seu formato nativo como sendo válidos ou não, o processador de texto pode elaborar o documento correspondendo a esses elementos à medida que o processo continua. Quando o elemento de XML nativa é processado de acordo com a XML nativa, o processamento continua para o bloco 607, onde o processo retorna para o bloco 503 da Figura 5.
[0044] Se, contudo, o elemento for um elemento de XML não-nativa, o processamento continua para o bloco 605.
[0045] No bloco 605, um nó, que corresponde ao sinal de abertura, ou atributo do elemento de XML não-nativa, é criado em uma árvore paralela de XML. A árvore paralela de XML é examinada, em relação à validade, por um mecanismo de validação de XML. O mecanismo de validação de XML determina se a árvore paralela de XML segue o seu esquema de XML não-nativa associado. Mediante geração e validação, separadamente, da árvore paralela de XML, a presente invenção inclui funcionalidade para validar documentos de XML mista tendo elementos associados a dois ou mais esquemas onde elementos de cada esquema podem ser aninhados arbitrariamente uns dentro dos outros. Quando o nó é criado na árvore paralela, o processamento continua no bloco 606.
[0046] No bloco 606, o elemento de XML não-nativa é mapeado para o nó criado na árvore paralela. Em uma modalidade, um mantenedor de posição é associado a cada elemento dentro do arquivo de XML mista. O mantenedor de posição designa para cada nó a posição de cada elemento de XML não-nativa dentro do arquivo de XML mista.
Mapear os elementos de XML não-nativa para seus nós correspondentes permite que os elementos criados e/ou aplicados pelo usuário sejam posicionados precisamente dentro do documento de XML resultante. Quando o elemento de XML não-nativa é mapeado para o nó, o processamento continua para o bloco 506, onde o processo retorna para o bloco 503 da Figura 5.
[0047] Em uma modalidade, múltiplos esquemas de XML não-nativa podem ser incluídos em seções respectivas do mesmo arquivo de XML mista. A árvore paralela de XML é gerada com um nó que corresponde a cada elemento correspondendo a cada esquema de XML não-nativa. Em um tal caso, quando a árvore paralela de XML é validada, os elementos de XML não-nativa correspondendo a cada esquema são validados como se cada seção respectiva do mesmo arquivo de XML mista fossem efetivamente arquivos de XML separados. Contudo, se os múltiplos esquemas de XML não-nativa fazem referência uns aos outros, isto pode resultar nos elementos sendo misturados.
[0048] A especificação, os exemplos e os dados acima proporcionam uma descrição completa da fabricação e uso da composição da invenção. Uma vez que muitas modalidades da invenção podem ser feitas sem se afastar do espírito e escopo da invenção, a invenção reside nas reivindicações anexadas em seguida.
REIVINDICAÇÕES

Claims (7)

1. Método para suportar validação de um documento de linguagem de marcação extensível (XML) que inclui XML não-nativa (219) dentro de uma XML nativa (211), o método compreendendo as etapas de: determinar (602) se um elemento no documento de XML (210) é associado a uma dentre a XML não-nativa (219) e a XML nativa (211); gerar uma árvore paralela (220) a qual inclui nós (402), em que cada nó corresponde ao elemento do arquivo de linguagem de marcação associado a XML não-nativa (219); validar (604) os elementos associados a XML nativa (211) no documento de XML (210) enquanto ignorando os elementos associados à linguagem de marcação arbitrária; e validar (504) a árvore paralela separadamente do documento de XML, de tal modo que os elementos associados a XML nativa (211) são transparentes ao se validar a XML não-nativa (219), caracterizado pelo fato de que a XML nativa (211) compreende elementos de linguagem de marcação e um esquema associado com um processador de texto (120), e em que a XML não-nativa (219) compreende elementos de linguagem de marcação que um usuário ou outro aplicativo tenha criado que adere ao esquema diferente do esquema de XML nativa (211).
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende mapear (606) cada nó para seu elemento correspondente no arquivo de linguagem de marcação, de tal modo que a posição de cada elemento associado à linguagem de marcação arbitrária é armazenada.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende gerar (505) um documento de linguagem de marcação que corresponde aos elementos validados associados a XML nativa (211) e aos elementos validados associados a XML não-nativa (219).
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a etapa de validar (604) os elementos associados a XML nativa (211) é executada internamente pelo processador de texto (120).
5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que o processador de texto (120) determina a validade dos elementos associados a XML nativa (211) de tal modo que o documento de XML é elaborado à medida em que o processador de texto (120) avalia cada elemento.
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a etapa de validar (504) a árvore paralela separadamente do documento de XML inclui examinar a árvore paralela com um mecanismo de validação de linguagem de marcação (225) de acordo com um esquema de XML não-nativa que corresponde aos elementos do documento de XML que são associados a XML não-nativa (219).
7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende a etapa de tratar efetivamente os elementos associados a XML não-nativa (219) que também são associados a múltiplos esquemas diferentes, como arquivos separados quando validados.
BRPI0302085A 2002-06-27 2003-06-26 método para suportar validação de um documento de linguagem de marcação extensível BRPI0302085B1 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/184,560 US7036073B2 (en) 2002-06-27 2002-06-27 System and method for supporting non-native XML in native XML of a word-processor document

Publications (2)

Publication Number Publication Date
BR0302085A BR0302085A (pt) 2004-09-08
BRPI0302085B1 true BRPI0302085B1 (pt) 2016-07-19

Family

ID=29717966

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0302085A BRPI0302085B1 (pt) 2002-06-27 2003-06-26 método para suportar validação de um documento de linguagem de marcação extensível

Country Status (10)

Country Link
US (1) US7036073B2 (pt)
EP (1) EP1376386A3 (pt)
JP (1) JP4880191B2 (pt)
KR (2) KR20040002738A (pt)
CN (1) CN1311342C (pt)
AU (1) AU2003204869B2 (pt)
BR (1) BRPI0302085B1 (pt)
CA (1) CA2433247C (pt)
MX (1) MXPA03005874A (pt)
RU (1) RU2351007C2 (pt)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004062600A (ja) * 2002-07-30 2004-02-26 Fujitsu Ltd 構造型文書の変換方法、復元方法、変換及び復元方法及びプログラム
US6993714B2 (en) * 2002-10-03 2006-01-31 Microsoft Corporation Grouping and nesting hierarchical namespaces
US7251777B1 (en) * 2003-04-16 2007-07-31 Hypervision, Ltd. Method and system for automated structuring of textual documents
US8693043B2 (en) * 2003-12-19 2014-04-08 Kofax, Inc. Automatic document separation
US7165216B2 (en) * 2004-01-14 2007-01-16 Xerox Corporation Systems and methods for converting legacy and proprietary documents into extended mark-up language format
US7698638B2 (en) * 2004-09-15 2010-04-13 Microsoft Corporation Systems and methods for automated equation buildup
US7707498B2 (en) 2004-09-30 2010-04-27 Microsoft Corporation Specific type content manager in an electronic document
KR100695330B1 (ko) 2004-12-21 2007-03-15 한국전자통신연구원 중계기용 격리 안테나
US20060190821A1 (en) * 2005-02-22 2006-08-24 Microsoft Corporation Programmable object model for mathematical expressions
US20060190474A1 (en) * 2005-02-22 2006-08-24 Microsoft Corporation Extensible markup language schema for mathematical expressions
US8020091B2 (en) * 2005-07-15 2011-09-13 Microsoft Corporation Alignment and breaking of mathematical expressions in documents
US20070033524A1 (en) * 2005-08-02 2007-02-08 Microsoft Corporation Mapping codes for characters in mathematical expressions
US7774321B2 (en) 2005-11-07 2010-08-10 Microsoft Corporation Partial XML validation
US20070245308A1 (en) * 2005-12-31 2007-10-18 Hill John E Flexible XML tagging
US7921358B2 (en) 2006-01-17 2011-04-05 Microsoft Corporation Automatic package conformance validation
US7814069B2 (en) * 2006-03-30 2010-10-12 Oracle International Corporation Wrapper for use with global standards compliance checkers
US9495356B2 (en) * 2006-03-30 2016-11-15 International Business Machines Corporation Automated interactive visual mapping utility and method for validation and storage of XML data
US9535912B2 (en) * 2006-09-15 2017-01-03 Oracle International Corporation Techniques for checking whether a complex digital object conforms to a standard
US7669089B2 (en) * 2006-11-01 2010-02-23 Microsoft Corporation Multi-level file representation corruption
US8954396B2 (en) * 2006-11-10 2015-02-10 Microsoft Corporation Validating and enabling validation of package structures
US7855799B2 (en) * 2007-01-16 2010-12-21 Shah Pradip K Print workflow automation
US7865823B2 (en) * 2007-06-28 2011-01-04 Intel Corporation Method and apparatus for schema validation
US9176714B2 (en) * 2007-11-12 2015-11-03 International Business Machines Corporation Re-using legacy libraries in software
US8370391B2 (en) * 2008-03-25 2013-02-05 Microsoft Corporation Functional updates for tree processing
US20100115403A1 (en) * 2008-11-06 2010-05-06 Microsoft Corporation Transforming math text objects using build down and build up
US8849612B2 (en) * 2009-09-14 2014-09-30 Fourthwall Media, Inc. System and method of substituting parameter sets in self-contained mini-applications
RU2610585C2 (ru) * 2015-03-31 2017-02-13 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для модификации текста в документе
US10643023B2 (en) * 2015-09-25 2020-05-05 Oath, Inc. Programmatic native rendering of structured content

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU677605B2 (en) * 1992-09-04 1997-05-01 Caterpillar Inc. Integrated authoring and translation system
US6487566B1 (en) 1998-10-05 2002-11-26 International Business Machines Corporation Transforming documents using pattern matching and a replacement language
US6480865B1 (en) 1998-10-05 2002-11-12 International Business Machines Corporation Facility for adding dynamism to an extensible markup language
US6480860B1 (en) 1999-02-11 2002-11-12 International Business Machines Corporation Tagged markup language interface with document type definition to access data in object oriented database
US6418446B1 (en) 1999-03-01 2002-07-09 International Business Machines Corporation Method for grouping of dynamic schema data using XML
US6476833B1 (en) 1999-03-30 2002-11-05 Koninklijke Philips Electronics N.V. Method and apparatus for controlling browser functionality in the context of an application
US6502112B1 (en) 1999-08-27 2002-12-31 Unisys Corporation Method in a computing system for comparing XMI-based XML documents for identical contents
US6966027B1 (en) * 1999-10-04 2005-11-15 Koninklijke Philips Electronics N.V. Method and apparatus for streaming XML content
AUPQ479999A0 (en) * 1999-12-22 2000-02-03 Canon Kabushiki Kaisha Structures to represent poorly formed html documents
US20020073091A1 (en) * 2000-01-07 2002-06-13 Sandeep Jain XML to object translation
US6675355B1 (en) * 2000-03-16 2004-01-06 Autodesk, Inc. Redline extensible markup language (XML) schema
KR20020023048A (ko) * 2000-09-22 2002-03-28 구자홍 Xml 문서의 레이아웃 방법과 이를 위한 시스템
US20030110279A1 (en) * 2001-12-06 2003-06-12 International Business Machines Corporation Apparatus and method of generating an XML schema to validate an XML document used to describe network protocol packet exchanges
US6950985B2 (en) * 2001-12-27 2005-09-27 Koninklijke Philips Electronics, N.V. Specifying DICOM semantic constraints in XML
US8032828B2 (en) * 2002-03-04 2011-10-04 Hewlett-Packard Development Company, L.P. Method and system of document transformation between a source extensible markup language (XML) schema and a target XML schema
US7200805B2 (en) * 2002-03-19 2007-04-03 Logiclibrary, Inc. Dynamic generation of schema information for data description languages
US20030188264A1 (en) * 2002-03-29 2003-10-02 Full Degree, Inc. Method and apparatus for XML data normalization
US7251697B2 (en) * 2002-06-20 2007-07-31 Koninklijke Philips Electronics N.V. Method and apparatus for structured streaming of an XML document

Also Published As

Publication number Publication date
KR20090013243A (ko) 2009-02-04
CA2433247C (en) 2015-03-31
US7036073B2 (en) 2006-04-25
BR0302085A (pt) 2004-09-08
AU2003204869A1 (en) 2004-01-15
KR100977352B1 (ko) 2010-08-20
EP1376386A3 (en) 2007-07-11
CN1311342C (zh) 2007-04-18
CN1477503A (zh) 2004-02-25
RU2351007C2 (ru) 2009-03-27
CA2433247A1 (en) 2003-12-27
EP1376386A2 (en) 2004-01-02
RU2003119092A (ru) 2005-01-10
AU2003204869B2 (en) 2009-10-01
US20040205583A1 (en) 2004-10-14
JP4880191B2 (ja) 2012-02-22
KR20040002738A (ko) 2004-01-07
MXPA03005874A (es) 2005-02-14
JP2004046848A (ja) 2004-02-12

Similar Documents

Publication Publication Date Title
BRPI0302085B1 (pt) método para suportar validação de um documento de linguagem de marcação extensível
US7275209B1 (en) Mixed content flexibility for XML editors
US8484552B2 (en) Extensible stylesheet designs using meta-tag information
CN102662997B (zh) 一种存储xml数据到关系数据库的方法
US7730394B2 (en) Data binding in a word-processing application
US9058407B2 (en) Persistent multimedia content versioning
KR101110988B1 (ko) 구조적 데이터 변환을 위한 장치
US8447785B2 (en) Providing context aware search adaptively
US7617234B2 (en) XML schema for binding data
KR20070019663A (ko) 표현 그룹화 및 평가
US20090077111A1 (en) Method and system for highly tolerant and adaptable content reuse in a content management system
US10482165B2 (en) Declarative cascade reordering for styles
US7607081B1 (en) Storing document header and footer information in a markup language document
US7533335B1 (en) Representing fields in a markup language document
US20080114797A1 (en) Importing non-native content into a document
US7650566B1 (en) Representing list definitions and instances in a markup language document
CN114253548B (zh) 一种xml文档处理方法、装置、电子设备及存储介质
US7584419B1 (en) Representing non-structured features in a well formed document
JP2007501464A (ja) Xml文書の確率に基づく検証のための方法およびシステム
CN115345151A (zh) 结构化数据解析和管理的系统、方法、设备、介质及终端

Legal Events

Date Code Title Description
B03H Publication of an application: rectification [chapter 3.8 patent gazette]
B25A Requested transfer of rights approved

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC (US)

B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 19/07/2016, OBSERVADAS AS CONDICOES LEGAIS.

B21F Lapse acc. art. 78, item iv - on non-payment of the annual fees in time

Free format text: REFERENTE A 17A ANUIDADE.

B24J Lapse because of non-payment of annual fees (definitively: art 78 iv lpi, resolution 113/2013 art. 12)

Free format text: EM VIRTUDE DA EXTINCAO PUBLICADA NA RPI 2594 DE 24-09-2020 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDA A EXTINCAO DA PATENTE E SEUS CERTIFICADOS, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013.