MXPA03005874A - Sistema y metodo para soportar xml no nativo en el xml nativo de un documento de procesador de palabras. - Google Patents
Sistema y metodo para soportar xml no nativo en el xml nativo de un documento de procesador de palabras.Info
- Publication number
- MXPA03005874A MXPA03005874A MXPA03005874A MXPA03005874A MXPA03005874A MX PA03005874 A MXPA03005874 A MX PA03005874A MX PA03005874 A MXPA03005874 A MX PA03005874A MX PA03005874 A MXPA03005874 A MX PA03005874A MX PA03005874 A MXPA03005874 A MX PA03005874A
- Authority
- MX
- Mexico
- Prior art keywords
- xml
- native
- elements
- native xml
- document
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/131—Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/221—Parsing markup language streams
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (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
Un sistema y metodo para habilitar la validacion de un documento de lenguaje de marcacion extensible (XML) que tiene elementos asociados con dos o mas esquemas, en donde los elementos de cada esquema pueden estar anidados arbitrariamente adentro de los elementos de otro esquema, y cada conjunto de elementos permanece valido dentro de su propio esquema. Los elementos del segundo esquema son transparentes para los elementos del primer esquema cuando el procesador de palabras valida los elementos del primer esquema. Los elementos del segundo esquema se validan separadamente, de tal manera que los elementos del primer esquema son transparentes para la validacion de los elementos que corresponden al segundo esquema.
Description
SISTEMA Y METODO PARA SOPORTAR XML NO NATIVO EN EL XML NATIVO DE UN DOCUMENTO DE PROCESADOR DE PALABRAS
Antecedentes de la Invención Los Lenguajes de Marcación han conseguido amplia popularidad en años recientes. Un tipo de lenguaje de marcación, el Lenguaje de Marcación Extensible (XML, por sus siglas en inglés) , es un lenguaje universal que proporciona una manera para identificar, intercambiar, y procesar diferentes clases de datos. Por ejemplo, el XML se usa para crear documentos que pueden utilizar una diversidad de programas de aplicación. Los elementos de un archivo XML tienen un espacio de nombre y esquema asociados. En el XML, comúnmente se usa un espacio de nombre para identificar de manera única cada documento XML. Cada documento XML puede usar un espacio de nombre para permitir que los procesos identifiquen fácilmente el tipo de XML asociado con el documento. Los espacios de nombre únicos también pueden ayudar a diferenciar los elementos de marcación que vienen desde diferentes fuentes y sucede que tienen el mismo nombre. Los Esquemas XML proporcionan una manera para describir y validar datos en un medio ambiente XML. Un esquema establece cuáles elementos y atributos se usan para describir el contenido en un documento XML, en dónde se permite cada elemento, y cuál elemento puede aparecer adentro de otros elementos. El uso de esquemas asegura que el archivo esté estructurado de la misma manera. Los esquemas los puede crear un usuario y generalmente los puede apoyar un lenguaje de marcación asociado, tal como el XML. Mediante el uso de un editor XML que apoye el esquema, el usuario puede manipular el archivo XML y generar documentos XML que se adhieran al esquema que ha creado el usuario. Los documentos XML pueden estar creados para que se adhieran a uno o más esquemas. Sin embargo, los mecanismos convencionales para validar los elementos adentro de un documento XML contra más de un esquema son insuficientes para ser aceptables en ciertas situaciones. Si los elementos asociados con un primer esquema están anidados adentro de los elementos de un segundo esquema, cualesquier hijos de los elementos anidados no se pueden validar contra el primer esquema, a menos que ambos esquemas estén estructurados de tal manera que se tomen en cuenta uno al otro. En otras palabras, los mecanismos de validación existentes únicamente pueden validar un elemento y sus hijos contra un esquema, pero no sus nietos directamente. Frecuentemente, la madre es la única que puede establecer las reglas de sus hijos. Si el elemento hijo está en un esquema diferente, entonces el esquema del elemento hijo debe hacer referencia al esquema de la madre, si el deseo es insertar un nieto en el esquema de la madre. No habla ninguna manera para sólo decir originalmente que el esquema del hijo era transparente, y permitir que la madre definiera cuál podría ser su nieto. Hasta ahora, esta limitación ha puesto un problema para los desarrolladores de herramientas de lenguaje de marcación.
Compendio de la Invención La presente invención está dirigida a habilitar la validación de un documento de lenguaje de marcación extensible (XML) que tiene elementos asociados con dos o más esquemas, en donde los elementos de cada esquema pueden estar arbitrariamente anidados adentro de los elementos del otro esquema, y cada conjunto de elementos permanece válido entro de su propio esquema, ün procesador de palabras tiene un primer esquema asociado, o nativo que corresponde con un XML nativo. Un documento generado de conformidad con el XML nativo puede incluir elementos XML arbitrarios, o no nativos anidados adentro de los elementos XML nativos, y elementos XML nativos anidados adentro de los elementos XML no nativos. El procesador de palabras ignora los elementos XML no nativos cuando valida los elementos XML nativos del archivo XML mezclado. Los elementos XML no nativos se validan por separado mediante la utilización de un árbol XML paralelo generado a partir de los elementos XML no nativos adentro del archivo XML mezclado, y tratando a los elementos XML nativos como se fueran transparentes. La presente invención permite que los elementos XML no nativos que tengan su propio espacio de nombre relacionado, se incrusten adentro de los elementos XML nativos que tengan otro espacio de nombre relacionado. Previamente, los usuarios convertían los archivos XML a otros formatos para despliegue visual u otras funciones. Los editores XML anteriores no reconocían (es decir, invalidaban) los elementos de un primer espacio e nombre incrustado adentro de los elementos de un segundo espacio de nombre cuando se estaban validando (a menos que ambos esquemas asociados permitieran explícitamente el espacio de nombre uno del otro adentro de sí mismos) . la presente invención proporciona un XML nativo que permite que se incrusten otros elementos XML no nativos adentro de los elementos XML nativos en el mismo archivo XML, sin importar si alguno de los esquemas XML permita explícitamente elementos incrustados. La remoción de los elementos XML nativos del archivo XML daría como resultado un documento válido para el esquema XML no nativo que tiene únicamente el XML no nativo. Correspondientemente, la remoción de los elementos XML no nativos de los archivos XML daría como resultado un documento válido para el esquema XML nativo que tiene únicamente el XML nativo. De conformidad con lo anterior, el esquema XML de un espacio de nombre es transparente para un esquema XML de otro espacio de nombre, de tal manera que se pueden validar individualmente y por separado los elementos asociados con cada esquema, Por la transparencia, los elementos XML no nativos se almacenan en una ubicación separada, a la que se hace referencia como un árbol XML paralelo, a medida que se construye un documento a partir del archivo XML mezclado. Cada nodo del árbol corresponde a un elemento del espacio de nombre XML en el archivo mezclado. Los nodos se mapean a la ubicación de su elemento correspondiente adentro del archivo XML mezclado. De conformidad con lo anterior, cuando se almacena el archivo XML, éste conserva tanto los elementos XML no nativos como XML nativos. Una ventaja del árbol XML es que éste permite el tratamiento del XML no nativo como separado del XML nativo para propósitos de validación contra el esquema XML no nativo, mientras conserva las ubicaciones del XML no nativo adentro del XML nativo. El tratamiento del XML nativo como transparente para el XML no nativo permite que el archivo XML todavía se use y se guarde como un solo archivo.
Breve Descripción de los Dibujos La Figura 1 ilustra un dispositivo de computación ejemplar que se puede usar en una modalidad ejemplar de la presente invención.
La Figura 2 es un diagrama de bloques que ilustra un medio ambiente ejemplar para practicar la presente invención.
La Figura 3 ilustra un archivo XML mezclado ejemplar de conformidad con la presente invención. La Figura 4 muestra un diagrama de bloques ejemplar de la asociación entre un archivo XML mezclado ejemplar y un árbol XML paralelo ejemplar de conformidad con la presente invención . La Figura 5 es un diagrama de flujo lógico de un proceso ejemplar para generar un documento XML mezclado de conformidad con la presente invención. La Figura 6 es un diagrama de flujo lógico de un proceso ejemplar para manejar los elementos adentro de un documento XML mezclado de conformidad con la presente invención.
Descripción Detallada de la Modalidad Preferida A lo largo de la especificación y las reivindicaciones, los siguientes términos toman los significados explícitamente asociados en la presente, a menos que el contexto claramente lo dicte de otra manera. Los términos "lenguaje de marcación" o "ML" se refiere a un lenguaje para códigos especiales dentro de un documento, que especifica cómo va a interpretar las partes del documento una aplicación. En un archivo de procesador de palabras, los elementos de marcación pueden estar asociados con un formateo particular que especifique cómo se va a desplegar visualmente o disponer el contenido del elemento. En otros documentos la marcación puede estar dirigida a la descripción de datos, sin dar atención a las consideraciones de despliegue visual. Los términos "lenguaje de marcación nativo" o "XML nativo" se refieren a los elementos del lenguaje de marcación que están asociados con una aplicación de procesador de palabras y un esquema asociado con la aplicación de procesador de palabras. Los términos "lenguaje de marcación no nativo" o "XML no nativo" se refieren a los elementos del lenguaje de marcación que ha creado un usuario u otra aplicación, los cuales se adhieren a un esquema diferente del esquema XML nativo . El término "elemento" se refiere a la unidad básica de un documento XML. El elemento puede contener atributos, otros elementos, contenido, y otros bloques de construcción para un documento XML . El término "etiqueta" se refiere a un comando insertado en un documento, que delinea los elementos adentro de un documento XML. Cada elemento puede tener no más de dos etiquetas: la etiqueta de inicio y la etiqueta de fin. Es posible tener un elemento vacio (sin ningún contenido) en cuyo caso se permite una etiqueta.
El contenido entre las etiquetas se considera los "hijos" (o descendientes) del elemento. En consecuencia, a otros elementos incrustados en el contenido del elemento se les llama "elementos hijos" o "nodos hijos" del elemento. El texto incrustado directamente en el contenido del elemento se considera los "nodos de texto hijos" del elemento. Juntos, los elementos hijos y el texto adentro de un elemento constituyen el "contenido" de ese elemento. El término "atributo" se refiere a una propiedad adicional establecida a un valor particular, y asociada con el elemento. Los elementos pueden tener un número arbitrario de ajustes del atributo asociados con ellos, incluyendo ninguno. Los atributos se usan para asociar información adicional con un elemento que no esté incluido en el contenido del elemento.
Medio Ambiente de Operación Ilustrativo Con referencia a la Figura 1, un sistema ejemplar para implementar la invención incluye un dispositivo de computación, tal como el dispositivo de computación 100. En una configuración muy básica, el dispositivo de computación 100 típicamente incluye cuando menos una unidad de procesamiento 102 y la memoria del sistema 104. Dependiendo de la configuración exacta y del tipo de dispositivo de computación, la memoria del sistema 104 puede ser volátil (tal como RAM) , no volátil (tal como ROM, memoria flash, etcétera) o alguna combinación de las dos. La memoria del sistema 104 típicamente incluye un sistema operativo 105, una o más aplicaciones 106, y puede incluir datos de programa 107. En una modalidad, la aplicación 106 puede incluir una aplicación de procesador de palabras 120 que incluye además un editor XML 122. En la Figura 1 se ilustra esta configuración básica por medio de aquellos componentes adentro de la línea de guiones 108. El dispositivo de computación 100 puede tener características o funcionalidad adicionales. Por ejemplo, el dispositivo de computación 100 también puede incluir dispositivos de almacenamiento de datos adicionales (movibles y/o no movibles) tales como, por ejemplo, discos magnéticos, discos ópticos, o cinta. Ese almacenamiento adicional se ilustra en la Figura 1 por medio del almacenamiento movible 109 y el almacenamiento no movible 110. Los medios de almacenamiento de computadora pueden incluir medios volátiles y no volátiles, movibles y no movibles, implementados en cualquier método o tecnología para el almacenamiento de información, tal como instrucciones legibles por computadora, estructuras de datos, módulos de programas, u otros datos. La memoria del sistema 104, el almacenamiento movible 109 y el almacenamiento no movibles 110 son todos ejemplos de medios de almacenamiento de computadora. Los medios de almacenamiento de computadora incluyen, pero no están limitados a, RAM, ROM, EEPROM, memoria flash u otra tecnología de memoria, CD-ROM, discos digitales versátiles (DVD, por sus siglas en inglés) u otro almacenamiento óptico, cartuchos magnéticos, cinta magnética, almacenamiento de disco magnético, u otros dispositivos de almacenamiento magnéticos, o cualquier otro medio que se pueda usar para almacenar la información deseada, y el cual se pueda accesar por medio del dispositivo de computación 100. Cualquiera de esos medios de almacenamiento de computadora puede ser parte del dispositivo 100. El dispositivo de computación 100 también puede tener dispositivo ( s ) de entrada 112 tales como un teclado, ratón, pluma, dispositivo de entrada de voz, dispositivo de entrada táctil, etcétera. También se puede (n) incluir dispositivo (s) de salida 114 tales como un despliegue visual, bocinas, impresora, etcétera. Estos dispositivos son bien conocidos en la técnica y no se necesitan describir detalladamente en la presente. El dispositivo de computación 100 también puede contener conexiones de comunicación 116 que le permiten al dispositivo comunicarse con otros dispositivos de computación 118, tal como a través de una red. La conexión de comunicación 116 es un ejemplo de medio de comunicación. Los medios de comunicación típicamente pueden estar incluidos en instrucciones legibles por computadora, estructuras de datos, módulos de programas, u otros datos en una señal de datos modulada, tal como una onda portadora u otros mecanismos de transporte, e incluye cualesquier medios de envió de información. El término "señal de datos modulada" significa una señal que tiene una o más de sus características ajustadas o cambiadas de tal manera como para codificar la información en la señal. ? manera de ejemplo, y no de limitación, los medios de comunicación incluyen medios alámbricos tales como una red cableada o conexión cableada directa, y medios inalámbricos tales como medios acústicos, RF, infrarrojos y otros medios inalámbricos. El término medios legibles por computadora como se usa en la presente incluye tanto medios de almacenamiento como medios de comunicación .
Estructura del Archivo del Procesador de Palabras La Figura 2 es un diagrama de bloques que ilustra un medio ambiente ejemplar para practicar la presente invención. La modalidad ejemplar que se muestra en la Figura 2 es un medio ambiente de procesador de palabras 200 que incluye el procesador de palabras 120, el archivo XML mezclado 210, el esquema XML no nativo 215, el árbol XML paralelo 220 y la máquina de validación XML 225. El archivo XML mezclado 210 incluye tanto XML nativo 211 como XML no nativo 212. En una modalidad, el procesador de palabras 120 tiene su propio espacio de nombre y un conjunto de esquemas que está definido para usarse con los documentos asociados con el procesador de palabras 120. El conjunto de etiquetas y atributos definidos por el esquema para el procesador de palabras 120 puede definir el formato de un documento a tal grado que se hace referencia a éste como su propio lenguaje de marcación, un XML nativo. El procesador de palabras 120 apoya al XML nativo y puede adherirse a las reglas de otros lenguajes de marcación mientras crea otras reglas propias. Un XML nativo proporciona un lenguaje de marcación que incluye información de despliegue visual rica que puede solicitar un usuario, sin la necesidad de desperdiciar tiempo creando el esquema que corresponda a la información del despliegue visual . El XML nativo 211 y el XML no nativo 212 están entremezclados adentro del archivo XML mezclado 210. De conformidad con la presente invención, los elementos XML no nativos 212 se pueden anidar adentro de los elementos XML nativos 211, y los elementos XML nativos 211 se pueden anidar adentro de los elementos XML no nativos 212. De conformidad con lo anterior, cuando el procesador de palabras 120 valida internamente el XML nativo 211 del archivo XML mezclado 210, el proceso de validación interno se confronta con los elementos XML no nativos 212. En la descripción de la Figura 2 posteriormente se describe un archivo XML mezclado 210 e emplar con mayor detalle. El esquema XML no nativo 215 está asociado con los elementos XML no nativos 212. Cuando se validan, se examinan los elementos XML no nativos 212 en cuanto a si éstos se conforman con el esquema XML no nativo 215. Como se describió previamente, un esquema establece cuáles etiquetas y atributos se usan para describir el contenido en un documento XML, en dónde se permite cada etiqueta, y cuáles etiquetas puede aparecer adentro de otras etiquetas, asegurando que la documentación esté estructurada de la misma manera. De conformidad con lo anterior, el XML no nativo 212 es válido cuando está estructurado como se establece en el esquema XML no nativo 215. En la descripción de la Figura 5 posteriormente se describe adicionalmente la validación del XML no nativo 212. Antes de la validación, los elementos XML no nativos 212 se almacenan en el árbol XML paralelo 220. En la descripción de la Figura 4 posteriormente se describe adicionalmente el árbol XML paralelo 220. El árbol XML paralelo 220 se presenta a la máquina de validación XML 225 para validar el XML no nativo 212. La máquina de validación XML 225 opera de manera similar a otras máquinas de validación disponibles para documentos XML. La máquina de validación XML 225 evalúa el XML que está en la estructura del esquema XML no nativo 215. En una modalidad, un mayor número de máquinas de validación pueden estar asociadas con el procesador de palabras 120 para validar un mayor número de estructuras de lenguaje de marcación. La Figura 3 ilustra un archivo XML mezclado ejemplar de conformidad con la presente invención. El archivo XML mezclado 210 incluye tanto elementos XML nativos como elementos XML no nativos. Un elemento en un lenguaje de marcación usualmente incluye una etiqueta de abertura (indicada mediante un "<" y ">") , algún contenido, y una etiqueta de cierre (indicada por un "</" y ">") . Se hace referencia a las etiquetas asociadas con el XML nativo como estando asociadas con el espacio de nombre del procesador de palabras (espacio de nombre del procesador de palabras) . En contraste, se hace referencia a las etiquetas que están asociadas con el XML no nativo como estando asociadas con un espacio de nombre diferente, en este ejemplo, un espacio de nombre "curriculum vitae". Los elementos del documento XML mezclado 210 también pueden incluir contenido. Por ejemplo, "Trabajo" está contenido adentro del elemento "Objetivo" y "Principal 123" está contenido adentro del elemento "calle". El elemento "calle" está incluido adentro del elemento "dirección". Estos elementos se definen de conformidad con un esquema XML no nativo que corresponde al espacio de nombre de curriculum vitae (por ejemplo, un esquema de curriculum vitae) que ha proporcionado previamente el usuario u otra aplicación. Al examinar del archivo XML mezclado 210, el archivo incluye elementos XML no nativos anidados adentro de elementos XML nativos, y elementos XML nativos anidados adentro de elementos XML no nativos. De conformidad con lo anterior, cuando un procesador de palabras valida internamente el archivo XML mezclado 210, o lo envía como un árbol a la máquina de validación, se confronta la aplicación que valida el archivo XML mezclado 210, con los elementos anidados que corresponden con dos esquemas diferentes. Dependiendo de las reglas asociadas con la aplicación de validación, el archivo XML mezclado 210 se puede encontrar inválido si el esquema XML no nativo no permite el XML nativo. Por 'ejemplo, si se enviara el archivo XML mezclado 210 a otra máquina de validación XML en su totalidad, probablemente se encontraría inválido el archivo. Los esquemas XML típicamente no permiten que se aniden los elementos de un espacio de nombre adentro de los elementos de un segundo espacio de nombre. En una modalidad, la presente invención supera esta limitación por medio de tener un esquema XML nativo asociado con el procesador de palabras que permite el anidamiento de elementos arbitrarios asociados con otro esquema XML. En las descripciones que acompañan las Figuras 5 y 6 se describe adicionalmente un proceso ejemplar para conseguir un archivo XML mezclado válido.
La Figura 4 muestra un diagrama de bloques ejemplar de la asociación entre un archivo XML mezclado ejemplar y un árbol XML paralelo ejemplar de conformidad con la presente invención . El árbol XML paralelo 220 se genera a medida que el procesador de palabras 120 (que se muestra en las Figuras 1 y 2) construye un documento mientras valida internamente el archivo XML mezclado 210. La validación interna le permite al procesador de palabras 120 evaluar cada elemento de conformidad con su propio conjunto de reglas. Cuando se confronta un elemento XML no nativo anidado adentro de un elemento XML nativo, se genera un nodo (por ejemplo, 402) adentro del árbol XML paralelo 220, que corresponde con ese elemento. La posición del nodo adentro del árbol XML paralelo 220 se determina por la posición del elemento correspondiente adentro del documento XML mezclado 210 con relación a otros elementos. De conformidad con lo anterior, cada elemento XML no nativo del archivo XML mezclado 210 está representado por un nodo (por ejemplo, 402) del árbol XML paralelo 220. Se establecen relaciones directas de madre - hijo entre los elementos XML representados en el árbol XML paralelo 220, algunas de las cuales pudieron no haber existido originalmente en el archivo XML mezclado 210, debido a la marcación XML nativa intermedio. En conexión con la Figura 6 se describe adicionalmente un proceso ejemplar asociado con la generación de los nodos para el árbol XML no nativo 220 ejemplar. El árbol XML paralelo 220 permite que el procesador de palabras 120 esencialmente ignore los elementos XML no nativos mientras éste valida internamente el archivo XML mezclado 210. Entonces se puede validar el árbol XML paralelo 220 separadamente del archivo XML mezclado 210, como se describe adicionalmente en conexión con la Figura 5 posteriormente .
Manejo de Elementos de Archivo XML Mezclados La Figura 5 es un diagrama de flujo lógico de un proceso ejemplar para generar un documento XML mezclado de conformidad con la presente invención. El proceso 500 empieza en el bloque 501, en donde el usuario de una aplicación de procesador de palabras, similar al procesador de palabras 120 que se muestra en la Figura 1, ha generado previamente un archivo XML mezclado. El procesamiento continúa en el bloque 502. En el bloque 502, se manejó un elemento del archivo XML mezclado. Al manejar cada elemento, se hace una determinación en cuanto a si el elemento es un elemento XML nativo o un elemento XML no nativo. Cómo se maneja cada elemento depende del tipo de elemento. Cuando un elemento es un elemento XML no nativo, se inserta un nodo que corresponde a ese elemento, adentro del árbol XML paralelo, como se describe adicionalmente en conexión con la Figura 6. En conexión con la Figura 6 se describe adicionalmente un proceso ejemplar para manejar cada elemento. Una vez que se maneja el elemento, el proceso se mueve al bloque de decisión 503. En el bloque de decisión 503, se hace una determinación en cuanto a si se ha manejado cada uno de los elementos incluidos en el archivo XML mezclado. Se ha manejado cada elemento cuando el procesador de palabras ha llegado a la etiqueta de cierre final del archivo XML mezclado, cuando construye un documento del archivo XML mez.clado. Si todavía no se han manejado otros elementos, el procesamiento regresa al bloque 502 y empieza a manejar un elemento adicional. Si se han manejado todos los elementos, el procesamiento continúa en el bloque 504. En el bloque 504, se valida el árbol XML paralelo. El procesador de palabras envía el árbol XML paralelo a una máquina de validación XML que es similar a la máquina de validación XML 225 que se muestra en la Figura 2. La máquina de validación XML opera para examinar el árbol XML paralelo de conformidad con un esquema asociado que es similar al esquema XML no nativo 215 que se muestra en la Figura 2. El esquema asociado establece cuáles etiquetas y atributos usar para describir el contenido en el documento XML resultante, en dónde se permite cada etiqueta, y cuáles elementos pueden aparecer adentro de otros elementos. El árbol XML paralelo es válido cuando éste se adhiere al esquema asociado. Una vez que se valida el árbol XML paralelo, el procesamiento continúa en el bloque 505. En el bloque 505, el procesador de palabras genera el documento que corresponde con el archivo XML mezclado. En una modalidad, el documento está formateado de conformidad con el esquema XML nativo que proporciona el procesador de palabras, y despliega visualmente las etiquetas asociadas con los elementos XML no nativos del archivo XML mezclado. El proce-Sarniento continúa al bloque 506, en donde termina el proceso.
En una modalidad, se podría alterar el proceso 500 como resultado de la validación interna del XML nativo o la validación del XML no nativo. Por ejemplo, se puede hacer una determinación de que, ya sea el XML nativo o el XML no nativo, es inválido. Como resultado, se puede interrumpir el proceso 500, se puede regresar un mensaje de error, se puede lanzar un programa para ayudar a corregir el XML, o se pueden activar operaciones adicionales . La Figura 6 es un diagrama de flujo lógico de un proceso ejemplar que maneja los elementos adentro de un documento XML mezclado, de conformidad con la presente invención. El proceso 600 se introduce en el bloque 601, cuando el proceso 500 que se muestra en la Figura 5 introduce el bloque 502. El procesamiento continúa en el bloque 602. En el bloque 602, se hace una determinación en cuanto a si el elemento que se está manejando corresponde con un elemento XML nativo o un elemento X L no nativo. El tipo de elemento se puede determinar por medio de examinar la etiqueta de abertura de cada elemento. La etiqueta de abertura de cada elemento incluye una referencia al esquema, y corresponde con ese elemento (ver la Figura 3) . Cada esquema está asociado con ya sea el XML nativo o el XML no nativo. Una vez que se determina el tipo de elemento, el proceso se mueve al bloque de decisión 603. En el bloque de decisión 603, se hace una determinación en cuanto a si el elemento es un elemento XML no nativo. Como se estableció previamente, cada elemento se maneja de manera diferente, de conformidad con el tipo de elemento, si el elemento no es un elemento XML no nativo, el procesamiento continúa en el bloque 604. En el bloque 604, se procesa el elemento de conformidad con el formato nativo del procesador de palabras (por ejemplo, el XML nativo). En una modalidad, el procesador de palabras proporciona su propia validación interna para los elementos dentro de su propio formato. En otras palabras, el procesador no se necesita referir a una máquina de validación XML para validar los elementos que corresponden con su formato nativo (por ejemplo, el XML nativo) . Mediante el reconocimiento de los elementos de su formato nativo, como siendo válidos o no, el procesador de palabras puede construir el documento que corresponda con estos elementos a medida que continúa el proceso. Una vez que se procesa el elemento XML nativo de conformidad con el XML nativo, el procesamiento continúa al bloque 607, en donde el proceso regresa al bloque 503 de la Figura 5. Si, sin embargo, el elemento es un elemento XML no nativo, el procesamiento continúa al bloque 605. En el bloque 605, en un árbol XML paralelo se crea un nodo que corresponda a la etiqueta de abertura o atributo del elemento XML no nativo. Una máquina de validación XML examina el árbol XML paralelo para ver su validez. La máquina de validación XML determina si el árbol XML paralelo se adhiere a su esquema XML no nativo asociado. Mediante la generación y validación por separado del árbol XML paralelo, la presente invención incluye funcionalidad para validar documentos XML mezclados que tengan elementos asociados con dos o más esquemas, en donde los elementos de cada esquema se pueden anidar arbitrariamente unos adentro de otros . Una vez que se crea el nodo en el árbol paralelo, el procesamiento continúa en el bloque 606. En el bloque 606 se mapea el elemento XML no nativo al nodo creado en el árbol paralelo. En una modalidad, adentro del archivo XML mezclado, un porta lugares está asociado con cada elemento adentro del archivo XML mezclado. El porta lugar designa a cada nodo la posición de cada elemento XML no nativo adentro del archivo XML mezclado. El mapeo de los elementos XML no nativos a sus nodos correspondientes, permite que los elementos creados y/o aplicados por el usuario se coloquen de manera exacta adentro del documento XML resultante. Una vez que se ha mapeado el elemento XML no nativo, el procesamiento continúa al bloque 506, en donde el proceso regresa al bloque 503 de la Figura 5. En una modalidad, se pueden incluir múltiples esquemas XML no nativos en secciones respectivas del mismo archivo XML mezclado. El árbol XML paralelo se genera con un nodo que corresponde a cada elemento que corresponde con cada uno de los esquemas XML no nativos. En tal caso, cuando se valida un árbol XML paralelo, se validan los elementos XML no nativos que corresponden a cada esquema, como si cada sección respectiva del mismo archivo XML mezclado fueran archivos XML separados de manera efectiva. Sin embargo, si los múltiples esquemas XML no nativos hacen referencia unos a los otros, esto podría dar como resultado que los elementos se entremezclaran. La especificación anterior, los ejemplos y datos proporcionan una descripción completa de la fabricación y el uso de la composición de la invención. Puesto que se pueden hacer muchas modalidades de la invención, sin apartarse del espíritu y alcance de la invención, la invención reside en las reivindicaciones anexas posteriormente en la presente.
Claims (23)
1. Un método para soportar la validación de un documento de lenguaje de marcación extensible (XML) que incluye XML no nativo adentro de un XML nativo, el método comprendiendo : determinar si un elemento en el documento XML está asociado con uno del XML no nativo y el XML nativo; generar un árbol paralelo que incluya nodos, en donde cada nodo corresponde con el elemento del archivo de lenguaje de marcación asociado con el XML no nativo; validar los elementos asociados con el XML nativo en el documento XML, mientras se ignoran los elementos asociados con el lenguaje de marcación arbitrario; y validar el árbol paralelo separadamente del documento XML, de tal manera que los elementos asociados con el XML nativo sean transparentes cuando se valida el XML no nativo .
2. El método de la Reivindicación 1, en donde el método comprende -además mapear cada nodo a su elemento correspondiente en el archivo de lenguaje de marcación, de tal manera que se almacene la posición de cada elemento asociado con el lenguaje de marcación arbitrario.
3. El método de la Reivindicación 1, en donde el método comprende además generar un documento de lenguaje de marcación que corresponda con los elementos validados, asociados con el XML nativo, y los elementos validados asociados con el XML no nativo.
4. El método de la Reivindicación 1, en donde el paso de validar los elementos asociados con el XML nativo lo ejecuta internamente el procesador de palabras.
5. El método de la Reivindicación 4, en donde el procesador de palabras determina la validez de los elementos asociados con el XML nativo, de tal manera que se construya el documento XML a medida que el procesador de palabras evalúa cada elemento.
6. El método de la Reivindicación 1, en donde el paso de validar el árbol paralelo separadamente del documento XML incluye examinar el árbol paralelo con una máquina de validación de lenguaje de marcación, de conformidad con un esquema XML no nativo que corresponde con los elementos del documento XML que están asociados con el XML no nativo.
7. El método de la Reivindicación 1, caracterizado porque además comprende tratar de manera efectiva los elementos asociados con el XML no nativo que también están asociados con múltiples esquemas diferentes, como archivos separados cuando se validan.
8. Un medio legible por computadora que tiene componentes ejecutables por computadora, que comprende: un primer componente para generar un documento de lenguaje de marcación extensible (XML) que incluye elementos asociados con un XML no nativo anidados adentro de los elementos asociados con un XML nativo del procesador de palabras ; un segundo componente para almacenar nodos, en donde cada nodo está asociado con cada elemento asociado con el XML no nativo; un tercer componente para validar los elementos asociados con el XML nativo en el primer componente, mientras son transparentes los elementos asociados con el XML no nativo; y un cuarto componente para validar el segundo componente separadamente del primer componente, de tal manera que los elementos asociados con el XML nativo sean transparentes mientras se validan los elementos asociados con el XML no nativo . 9. El medio legible por computadora de la
Reivindicación 8, caracterizado porque además comprende un quinto componente para proporcionar un esquema que esté asociado con los elementos XML no nativos, en donde los elementos XML no nativos se validan contra el quinto componente.
10. El medio legible por computadora de la Reivindicación 8, en donde el segundo componente está configurado además de tal manera que cada nodo se mapee a su elemento X L no nativo correspondiente dentro del primer componente .
11. El medio legible por computadora de la Reivindicación 8, en donde el primer componente está configurado además de tal manera que se asocie un porta lugar con cada elemento XML no nativo cuando se genere su nodo correspondiente en el segundo componente.
12. El medio legible por computadora de la Reivindicación 8, en donde el primer componente también incluye elementos asociados con el XML nativo anidado adentro de los elementos asociados con el XML no nativo.
13. ün medio legible por computadora codificado con una estructura de datos, que comprende: un primer elemento que está asociado con un lenguaje de marcación extensible (XML) nativo asociado con un microprocesador; y un segundo elemento que está asociado con un XML no nativo, en donde el segundo elemento está anidado adentro del primer elemento, y el primer elemento es transparente cuando se valida el segundo elemento, y el segundo elemento es transparente cuando se valida el primer elemento .
14. El medio legible por computadora de la Reivindicación 13, caracterizado porque además comprende un tercer elemento que está asociado con el XML nativo, en donde el tercer elemento está anidado adentro del segundo elemento .
15. El medio legible por computadora de la Reivindicación 13, en donde el primer elemento se valida separadamente del segundo elemento.
16. El medio legible por computadora de la Reivindicación 13, en donde el primer elemento se valida contra un primer esquema asociado con el XML nativo, y el segundo elemento se valida contra un segundo esquema asociado con el XML no nativo.
17. El medio legible por computadora de la Reivindicación 13, en donde el primer elemento se valida por medio del procesador de palabras.
18. El medio legible por computadora de la Reivindicación 13, en donde el segundo elemento se valida por medio de una máquina de validación XML no nativo.
19. El medio legible por computadora de la Reivindicación 13, en donde el primero y el segundo elementos forman un documento XML válido.
20. Un medio legible por computadora que tiene instrucciones ejecutables por computadora para soportar la validación de un documento de lenguaje de marcación extensible (XML) que incluye XML no nativo adentro de XML nativo de un procesador de palabras, las instrucciones comprendiendo : determinar si un elemento en el documento XML está asociado con uno de un primer espacio de nombre y un segundo espacio de nombre, en donde el primer espacio de nombre está asociado con el XML nativo, y el segundo espacio de nombre está asociado con el XML no nativo; generar un árbol paralelo que incluya nodos, en donde cada nodo corresponde al elemento del documento XML asociado con el segundo espacio de nombre; mapear cada nodo a su . elemento correspondiente en el archivo del lenguaje de marcación, de tal manera que se almacene la posición de cada elemento asociado con el segundo espacio de nombre; validar cada elemento del documento XML de tal manera que los elementos asociados con el primer espacio de nombre sean transparentes cuando se validen los elementos asociados con el segundo espacio de nombre, y que los elementos asociados con el segundo espacio de nombre sean transparentes cuando se validen los elementos asociados con el primer espacio de nombre.
21. El método de la Reivindicación 20, en donde el paso de validación de los elementos asociados con el primer espacio de nombre, lo ejecuta internamente el procesador de palabras .
22. El método de la Reivindicación 21, en donde el procesador de palabras determina la validez de los elementos asociados con el primer espacio de nombre, de tal manera que se construya el documento XML a medida que el procesador de palabras evalúa cada elemento.
23. El método de la Reivindicación 20, en donde el paso de validación del árbol paralelo separadamente del archivo XML incluye examinar el árbol paralelo con una máquina de validación XML, de conformidad con un esquema XML no nativo que corresponde a los elementos del archivo XML que están asociados con el sequndo espacio de nombre .
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 (1)
Publication Number | Publication Date |
---|---|
MXPA03005874A true MXPA03005874A (es) | 2005-02-14 |
Family
ID=29717966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
MXPA03005874A MXPA03005874A (es) | 2002-06-27 | 2003-06-26 | Sistema y metodo para soportar xml no nativo en el xml nativo de un documento de procesador de palabras. |
Country Status (10)
Country | Link |
---|---|
US (1) | US7036073B2 (es) |
EP (1) | EP1376386A3 (es) |
JP (1) | JP4880191B2 (es) |
KR (2) | KR20040002738A (es) |
CN (1) | CN1311342C (es) |
AU (1) | AU2003204869B2 (es) |
BR (1) | BRPI0302085B1 (es) |
CA (1) | CA2433247C (es) |
MX (1) | MXPA03005874A (es) |
RU (1) | RU2351007C2 (es) |
Families Citing this family (28)
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 |
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 |
US7814069B2 (en) * | 2006-03-30 | 2010-10-12 | Oracle International Corporation | Wrapper for use with global standards compliance checkers |
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 (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
-
2002
- 2002-06-27 US US10/184,560 patent/US7036073B2/en not_active Expired - Fee Related
-
2003
- 2003-06-20 AU AU2003204869A patent/AU2003204869B2/en not_active Ceased
- 2003-06-23 JP JP2003178495A patent/JP4880191B2/ja not_active Expired - Fee Related
- 2003-06-24 EP EP03014180A patent/EP1376386A3/en not_active Ceased
- 2003-06-25 CA CA 2433247 patent/CA2433247C/en not_active Expired - Fee Related
- 2003-06-26 BR BRPI0302085A patent/BRPI0302085B1/pt not_active IP Right Cessation
- 2003-06-26 KR KR1020030041899A patent/KR20040002738A/ko not_active Application Discontinuation
- 2003-06-26 RU RU2003119092/09A patent/RU2351007C2/ru not_active IP Right Cessation
- 2003-06-26 MX MXPA03005874A patent/MXPA03005874A/es active IP Right Grant
- 2003-06-27 CN CNB031471277A patent/CN1311342C/zh not_active Expired - Fee Related
-
2009
- 2009-01-02 KR KR1020090000133A patent/KR100977352B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20040002738A (ko) | 2004-01-07 |
BR0302085A (pt) | 2004-09-08 |
KR20090013243A (ko) | 2009-02-04 |
US20040205583A1 (en) | 2004-10-14 |
BRPI0302085B1 (pt) | 2016-07-19 |
EP1376386A3 (en) | 2007-07-11 |
CA2433247C (en) | 2015-03-31 |
CN1477503A (zh) | 2004-02-25 |
KR100977352B1 (ko) | 2010-08-20 |
EP1376386A2 (en) | 2004-01-02 |
US7036073B2 (en) | 2006-04-25 |
JP4880191B2 (ja) | 2012-02-22 |
CA2433247A1 (en) | 2003-12-27 |
RU2351007C2 (ru) | 2009-03-27 |
JP2004046848A (ja) | 2004-02-12 |
RU2003119092A (ru) | 2005-01-10 |
AU2003204869A1 (en) | 2004-01-15 |
AU2003204869B2 (en) | 2009-10-01 |
CN1311342C (zh) | 2007-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
MXPA03005874A (es) | Sistema y metodo para soportar xml no nativo en el xml nativo de un documento de procesador de palabras. | |
US7275209B1 (en) | Mixed content flexibility for XML editors | |
US8484552B2 (en) | Extensible stylesheet designs using meta-tag information | |
JP5122747B2 (ja) | ソフトウェア・アプリケーション文書のためのデータ・ストア | |
KR20050056123A (ko) | 소프트웨어 애플리케이션에서의 네임스페이스 또는 스키마라이브러리 지원을 위한 프로그램 가능한 객체 모델 | |
Hilbert et al. | Making CONCUR work | |
US20090077111A1 (en) | Method and system for highly tolerant and adaptable content reuse in a content management system | |
US20070061349A1 (en) | Hierarchically describing shapes | |
US7565603B1 (en) | Representing style information in a markup language document | |
Banzal | XML Basics | |
US7607081B1 (en) | Storing document header and footer information in a markup language document | |
US7533335B1 (en) | Representing fields in a markup language document | |
US7650566B1 (en) | Representing list definitions and instances in a markup language document | |
US7562295B1 (en) | Representing spelling and grammatical error state in an XML document | |
US7584419B1 (en) | Representing non-structured features in a well formed document | |
WO2002082326A2 (en) | Extensible stylesheet designs using meta-tag information | |
World Wide Web Consortium | Authoring tool accessibility guidelines 1.0 | |
Fresno-Fernández et al. | eXitor: A Tool for the Assisted Edition of XML Documents. | |
Sasaki et al. | Schema Languages & Internationalization Issues: A survey | |
Lecon | Flexible queries in distributed structured and semistructured documents | |
World Wide Web Consortium | Internationalization Tag Set (ITS) version 1.0 | |
Treviranus-ATRC | Authoring Tool Accessibility Guidelines 1.0 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FG | Grant or registration |