MXPA03005875A - Metodo para validar un documento xml y reportar violaciones al esquema. - Google Patents

Metodo para validar un documento xml y reportar violaciones al esquema.

Info

Publication number
MXPA03005875A
MXPA03005875A MXPA03005875A MXPA03005875A MXPA03005875A MX PA03005875 A MXPA03005875 A MX PA03005875A MX PA03005875 A MXPA03005875 A MX PA03005875A MX PA03005875 A MXPA03005875 A MX PA03005875A MX PA03005875 A MXPA03005875 A MX PA03005875A
Authority
MX
Mexico
Prior art keywords
xml
error
native
node
xml document
Prior art date
Application number
MXPA03005875A
Other languages
English (en)
Inventor
Michael Jones Brian
Original Assignee
Microsoft Corp
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=27733956&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=MXPA03005875(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of MXPA03005875A publication Critical patent/MXPA03005875A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Un sistema y metodo para validar un documento de lenguaje de marcacion extensible (XML) y reportar violaciones al esquema en tiempo real. Se mantiene un arbol paralelo que incluye nodos que corresponden con los elementos XML no nativos del documento XML. Cuando ocurren cambios al documento XML, se marcan los elementos XML no nativos que corresponden con los cambios. Se validan los nodos que corresponden con los elementos XML no nativos marcados contra un esquema XML que corresponde con la marcacion XML no nativa. Entonces se reportan al usuario los elementos y nodos que corresponden con los errores en la marcacion XML no nativa, de conformidad con los indicadores de despliegue visual en el documento XML y el arbol paralelo.

Description

SISTEMA Y METODO PARA VALIDAR UN DOCUMENTO XML Y REPORTAR VIOLACIONES AL ESQUEMA 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 tipos 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 clase de 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áles elementos pueden aparecer adentro de otros elementos. El uso de esquemas asegura que el archivo esté estructurado de una manera consistente. 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 los esquemas, el usuario puede manipular el archivo XML y generar documentos XML que se adhieran al esquema que ha creado el usuario. Comúnmente, cuando se inserta un elemento o etiqueta dentro de un documento XML que es incorrecto, el editor XML rehusa permitirle al usuario continuar componiendo el documento XML sin dar atención al error. En tal caso, el editor XML simplemente no permite ediciones a un documento XML que sean erróneas con respecto al esquema, de tal manera que el editor no proporciona edición de estilo libre. Otra opción para los editores es permitir que el usuario genere el documento XML completo, y después validar subsecuentemente el documento XML en su totalidad. Entonces se necesitará encontrar y corregir los errores que ocurran después de validar el documento XML completo.
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) y reportar sobre violaciones al esquema en tiempo real mientras un usuario edita el documento. Un procesador de palabras tiene un lenguaje de marcación extensible (XML nativo) asociado. Cuando un usuario asocia un archivo de esquema XML no nativo con un documento XML, el procesador de palabras usa el esquema XML no nativo con una máquina de validación para validar los elementos XML no nativos en el documento XML. A medida que el usuario inserta elementos XML no nativos del esquema dentro del documento XML, el procesador de palabras mantiene un árbol paralelo como un objeto de la máquina de validación. El árbol incluye nodos que corresponden con los elementos XML no nativos insertados dentro del documento XML. El árbol paralelo ayuda a evitar que la marcación XML nativa interfiera con la marcación XML no nativa adentro del documento XML. Aunque la marcación XML no nativa coexista con la marcación XML nativa dentro del mismo documento XML, el árbol paralelo permite que la marcación XML no nativa se valide por separado e independientemente de la marcación XML nativa. En una modalidad, cada vez que se inserta un elemento XML no nativo dentro del documento XML, se crea un nodo correspondiente en el árbol paralelo, en una ubicación apropiada, dependiendo del contexto de cómo se insertó el elemento XML no nativo. Correspondientemente, cada vez que se suprime el elemento XML no nativo del documento XML, se suprime el nodo correspondiente del árbol paralelo.
En adición a mantener un rastro de los elementos X L no nativos, el árbol paralelo también está manteniendo rastro del contenido textual de los elementos XML no nativos . El contenido de los elementos XML no nativos existe en el documento XML, en lugar de en el árbol paralelo, pero el árbol paralelo todavía mantiene enlaces con los elementos. Cuando se necesita, el árbol paralelo recupera los contenidos con el propósito de la validación del árbol paralelo. El proceso de validación puede validar entonces las relaciones estructurales del árbol paralelo entre los nodos, así como las restricciones del tipo de contenido que impone cada nodo en su contenido textual. El árbol paralelo refleja los cambios en el documento XML en tiempo real, y permite la validación en tiempo real de la marcación XML no nativa. Cuando ocurre un momento inactivo después de un cambio a la marcación XML no nativa, o los contenidos textuales del documento XML, la máquina de validación valida un sub - árbol del árbol paralelo que corresponde a la región del documento XML en donde ocurrieron los cambios. Si hay uno o más errores con el cambio al XML no nativo o los contenidos textuales, la máquina de validación le notifica al procesador de palabras de los errores . Entonces el procesador de palabras resalta los errores, tanto dentro del documento XML como dentro del árbol paralelo, de conformidad con las instrucciones de la interfase del usuario para manejar dichos errores.
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 diagrama de bloques ejemplar de un documento XML y árbol paralelo, de conformidad con la presente invención. La Figura 4 muestra un diagrama de bloques ejemplar de un documento XML y árbol paralelo que incluye errores, de conformidad con la presente invención. La Figura 5 es un diagrama de flujo lógico de un proceso ejemplar para validar el documento XML y reportar errores de conformidad con la presente invención. La Figura 6 es un diagrama de flujo lógico de un proceso ejemplar para localizar y manejar cambios dentro de un documento XML de conformidad con la presente invención. La Figura 7 es un diagrama de flujo lógico de un proceso ejemplar para validar un documento XML de conformidad con la presente invención. La Figura 8 es un diagrama de flujo lógico de un proceso ejemplar para desplegar visualmente errores en un documento XML y árbol paralelo de conformidad con la presente invención .
Descripción Detallada de la Modalidad Preferida ? 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 " L" 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 de los elementos. En otros documentos, tales como otros documentos XML, 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 extensible 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 extensible 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 que 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 edificación para un documento XML . El término "etiqueta" se refiere a un comando insertado en un documento, que delinea los elementos dentro de un documento XML. Cada elemento usualmente tiene 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 dentro 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. Una configuración básica incluye aquellos componentes dentro de la linea de guiones 108. En la configuración 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, las aplicaciones 106 incluyen una aplicación de procesador de palabras 120 que tiene un editor XML 122. En esta configuración, la aplicación de procesador de palabras 120 es capaz de abrir y editar documentos XML en un medio ambiente de edición de estilo libre. Aunque se ilustra en la presente en el contexto de una aplicación de procesador de palabras 120, la presente invención tiene la misma aplicabilidad a otros tipos de aplicaciones, como se hará evidente para aquellos expertos en la técnica. 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 mediante el 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 otro mecanismo de transporte, e incluye cualesquier medios de envío 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 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 . La Figura 2 es un diagrama de bloques que ilustra un medio ambiente ejemplar para practicar la presente invención. El medio ambiente ejemplar 200 que se muestra en la Figura 2 incluye el procesador de palabras 120, el documento XML 210, el esquema XML no nativo 215, la máquina de validación XML 225, y las estructuras de datos 230. Las estructuras de datos 230 incluyen datos de errores 235, árbol paralelo 220, y datos de sincronización 240. En una modalidad, el procesador de palabras 120 tiene su propio espacio de nombre y un esquema para usarlo con los documentos XML asociados con el procesador de palabras 120. El conjunto de etiquetas y atributos definidos por el esquema para el procesador de palabras 120 pueden definir el formato de un documento XML a tal grado que hace referencia a éste como su propio lenguaje de marcación, un Lenguaje de Marcación de Procesador de Palabras (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. El XML nativo proporciona un lenguaje de marcación que incluye información de despliegue visual rica, normalmente asociada con el procesamiento de palabras, tal como formateo textual (por ejemplo, negrita, cursiva, subrayado), formateo de párrafo (por ejemplo, espaciamiento de lineas, justificación, y similares), formateo tabular (por ejemplo, filas y columnas de tablas), y similares. El XML nativo puede usarse entonces en conjunción con un esquema definido por el usuario que añada una estructura más sustantiva al documento. De conformidad con la presente invención, los elementos del XML nativo y el XML no nativo pueden coexistir dentro del documento XML 210 y validarse por separado. Los elementos del XML no nativo están asociados con el esquema XML no nativo 215. Cuando se validan, se examinan los elementos XML no nativos en cuanto a si se conforman con el esquema XML no nativo 215. Como se describió previamente antes, 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, qué tipos de contenidos pueden aparecer adentro de los elementos, y cuáles elementos pueden aparecer adentro de otros elementos, asegurando que la documentación esté estructurada de la misma manera. De conformidad con lo anterior, los elementos XML no nativos son válidos cuando están estructurados como se establece en el esquema XML no nativo 215. La validación de los elementos XML no nativos se describe adicionalmente en la descripción de la Figura 7 más adelante. La máquina de validación XML 225 es un módulo que está configurado para mantener un árbol de elementos y validar el árbol de elementos contra algún esquema. Brevemente, a través de la máquina de validación XML 225 puede pasar un objeto que defina un árbol de elementos, tal como uno que corresponda con los elementos adentro del documento XML 210, un apuntador a un esquema, tal como el esquema XML no nativo 215, y posiblemente el contenido de uno o más elementos del árbol de elementos. Con esta información, la máquina de validación XML 225 valida el árbol de elementos contra el esquema, y reporta cualesquier violaciones al proceso de llamada. Durante la operación de rutina, el procesador de palabras 120 mantiene muchas estructuras de datos 230 que pueden participar en la validación de los elementos XML no nativos, de conformidad con una implementación de la presente invención. El árbol paralelo 220 es un árbol de elementos que incluye nodos que corresponden a cada elemento XML no nativo adentro del documento XML 210. En una modalidad, el árbol paralelo 220 está al tanto de cada elemento y el contenido del documento XML 210, y el documento XML 210 está al tanto de los nodos del árbol paralelo 220. De conformidad con lo anterior, un usuario puede resaltar un nodo en el árbol paralelo 220, y los elementos correspondientes a ese nodo también se resaltan en el documento XML 210. De manera similar, el resaltado de una porción del documento XML 210 da como resultado que también se resalte (n) el (os) nodo(s) paralelo (s) correspondiente (s) del árbol paralelo 220. En la descripción de la Figura 3 más adelante se describe adicionalmente un árbol paralelo ejemplar. Los datos de errores 235 incluyen datos regresados al procesador de palabras 120 desde la máquina de validación XML 225 cuando ha ocurrido un error con relación a los elementos validados por la máquina de validación XML 225. Los datos de errores 235 también pueden incluir información para desplegar visualmente una notificación de los errores mediante el procesador de palabras 120. En una modalidad, el procesador de palabras 120 reporta cuatro tipos separados de errores cuando resulta un error de la validación. Los cuatro tipos de errores incluyen un error de localización, un error de contenidos inválidos, un error de contenidos faltantes, y un error de atributo inválido. También se pueden usar diferentes tipos de errores aparte de los cuatro descritos . La designación del error como un cierto tipo de error simplifica el análisis que se debe realizar para rectificar el error.
Los datos de errores 235 también pueden incluir otra información relacionada con el error, tal como sugerencias acerca de cómo rectificar posiblemente el error, que se puede desplegar visualmente al usuario. Con respecto a la Figura 8 se describe adicionalmente el despliegue visual y la relación de la información de errores . Los datos de sincronización 240 incluyen datos para sincronizar el árbol paralelo 220 con el documento XML 210 en tiempo real. En una modalidad, los datos de sincronización 240 incluyen una tabla de identificadores que están asociados con cada elemento adentro del documento XML 210. Los identificadores identifican de manera única cada elemento adentro del documento XML 210, y por lo tanto identifican también de manera única cada nodo adentro del árbol paralelo 220. Los datos de sincronización 240 ayudan a sincronizarlos cambios que ocurren adentro del documento XML 210 con el árbol paralelo 220, incluyendo la adición o supresión de nodos adentro del árbol paralelo 220. En conexión con la Figura 6 se describe un proceso ejemplar que incluye los pasos para añadir un nodo al árbol paralelo 220. La Figura 3 ilustra un documento XML 210 ejemplar y el árbol paralelo 220 que se puede mantener de conformidad con la presente invención. El documento XML 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 ">") . En este e emplo, las etiquetas asociadas con un esquema XML nativo incluyen una "w:" adentro de la etiqueta (por ejemplo, el elemento 302) , y las etiquetas asociadas con un esquema XML no nativo incluyen una "r:" adentro de la etiqueta (por ejemplo, el elemento 304) . 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 de "curriculum vitae". Los elementos del documento XML 210 pueden incluir además 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. Los prefijos "w:" y "r:" sirven como una notación XML taquigrafiada para esos espacios de nombre respectivos . El árbol paralelo 220 incluye un nodo (por ejemplo, los nodos 322, 324, 326) para cada elemento XML no nativo adentro del documento XML 210. En una modalidad, la máquina de validación 225 mantiene al árbol paralelo 220 separadamente del procesador de palabras 120 (ver la Figura 2) . El árbol paralelo 220 se actualiza en tiempo real a medida que cambia el documento XML 210. El árbol paralelo 220 permite que el procesador de palabras 120 ignore esencialmente los elementos XML nativos mientras éste valida el documento XML 210 contra el esquema XML no nativo 215. En otras palabras, los elementos XML no nativos son efectivamente transparentes para los elementos XML no nativos cuando se proporciona el árbol paralelo 220 a la máquina de validación para su validación. Entonces se puede validar el árbol paralelo 220 separadamente de cualesquier elementos XML nativos, como se describe adicionalmente en conexión con la Figura 7 posteriormente. Como se muestra, el árbol paralelo 220 incluye el contenido asociado con cada elemento XML no nativo. En otra modalidad, el contenido no se copia al árbol paralelo 220 hasta que el árbol paralelo se pasa a la máquina de validación 225 para su validación. En todavía otra modalidad, el contenido copiado al árbol paralelo 220 se limita al contenido asociado con la porción del árbol paralelo 220 que se va a validar. En conjunción con la Figura 7 se describe adicionalmente la validación del árbol paralelo 220.
La Figura 4 es un diagrama de bloques de un documento XML ejemplar 410 y el árbol paralelo 420 que incluye errores. El documento XML 410 y el árbol paralelo 420 son similares al documento XML 210 y el árbol paralelo 220 que se muestran en la Figura 3, sin embargo, se ha añadido un error (con respecto al esquema XML no nativo 215) a la marcación XML no nativa. El error está representado por el elemento de error 432 que es un código de zona postal. De conformidad con el esquema XML no nativo 215, se supone que el elemento de "zona postal" es un hijo de la dirección, o un hermano del elemento "calle". Sin embargo, en el ejemplo ilustrado , el elemento de "zona postal" es inválido puesto que la "zona postal" se colocó como un hijo de "calle". De conformidad con la invención, el árbol paralelo 420 refleja que el elemento de "zona postal" se ha insertado como un hijo del elemento "calle". De conformidad con lo anterior, cuando se valida el árbol paralelo 420 (o algún sub - árbol relevante que incluya el elemento "calle") contra el esquema XML no nativo 215, se regresa un error. En este ejemplo, el procesador de palabras 120 identifica el error adentro del documento XML 410 con subrayado, sin embargo, se pueden usar otros indicadores de despliegue visual para indicar el error. También se incluye una indicación del error en el árbol .paralelo 420, en donde el icono 442 muestra que el nodo "zona postal" 422 tiene un error asociado. En otra modalidad, se pueden usar otros indicadores de despliegue visual adentro del árbol paralelo 420 para indicar la presencia de un error asociado con un nodo. De conformidad con el ejemplo que se muestra, hacer clic a la derecha en el (os) elemento (s) subrayado (s) (por ejemplo, el elemento de error 432) dentro del documento XML 410 produce el despliegue visual de error 430 (por ejemplo, un menú de clic a la derecha) . El despliegue visual de error 430 enlista información detallada respecto al error, tal como el tipo de error. El despliegue visual de error 430 también puede incluir acciones sugeridas para el usuario en su intento por rectificar el error. Las acciones sugeridas pueden ser interactivas, permitiéndole al usuario escoger a partir de una lista de posibles soluciones a la presencia del error. En adición, el dar vueltas sobre el icono 442 puede desplegar visualmente otra información al usuario, tal como un información de la herramienta 440. Un "información de la herramienta" usualmente se refiere a un elemento del despliegue visual no interactivo, que le proporciona a un usuario información adicional. Por ejemplo, el información de la herramienta que se muestra proporciona la notificación textual de que "la Zona Postal no puede estar dentro de Calle". En una modalidad, se puede seleccionar o dar vueltas sobre ya sea el icono 442 o el elemento de error 432, para desplegar visualmente ya sea un despliegue visual de error 430 o un información de la herramienta 440. En la descripción de la Figura 8 se describe un proceso ejemplar relacionado con el despliegue visual de indicadores del error dentro del documento XML 410 y el árbol paralelo 420.
Reporte de Detección, Validación, y Errores La Figura 5 es un diagrama de flujo lógico de un proceso ejemplar para validar un documento XML y reportar las violaciones del esquema, de conformidad con la presente invención. El proceso 500 empieza en el bloque 501, en donde se está editando el documento XML y ha ocurrido un cambio. Un "cambio" se refiere a insertar, modificar, o suprimir elementos XML dentro del documento XML, o cambiar el contenido textual de los elementos XML no nativos. En respuesta al cambio, el procesamiento continúa en el bloque 502. En el bloque 502, el cambio que ha ocurrido al documento XML está localizado adentro del documento XML. Algunos cambios, tales como la adición de nuevos elementos, pudieran requerir procesamiento adicional para añadir nodos correspondientes al árbol paralelo. En conexión con la Figura 6 se describe adicionalmente un proceso ejemplar para localizar y manejar un cambio adentro del documento XML. El procesamiento continúa al bloque 503. En el bloque 503, la porción del documento XML que se cambió se marca como "sucia". "Sucia" se refiere alas porciones del documento XML que todavía se van a validar o cuya validez ya no está garantizada debido al cambio. Se puede asociar un identificador u otro indicador con la porción del documento XML en donde ocurrió el cambio. En una modalidad, la madre de cualquier elemento que haya cambiado, se haya suprimido, o añadido, se marca como sucia. Cuando el proceso 500 procede a validar la porción sucia, la máquina de validación valida la madre y el hijo de la madre. El procesamiento continúa en el bloque 504. En el bloque 504, los nodos del árbol paralelo que corresponden con la porción del documento XML que se cambió también se marcan como "sucios". Se puede asociar un identificador u otro indicador con los nodos del árbol paralelo que correspondan a donde ocurrió el cambio. En una modalidad, se marca como sucio un identificador único que está asociado con cada elemento adentro del documento XML y cada nodo del árbol paralelo, marcando por medio de, lo mismo tanto la porción del documento XML como los nodos del árbol paralelo como sucios simultáneamente. El procesamiento continúa en el bloque de decisión 505. En el bloque de decisión 505 se hace una determinación en cuanto a si un usuario que compone o edita el documento XML ha llegado a un punto inactivo o de interrupción. Inactivo se refiere a un punto en el tiempo en donde el usuario no está proporcionando en ese momento la entrada de usuario al procesador de palabras. Interrupción se refiere a una situación en donde no ha ocurrido un estado inactivo durante una cantidad de tiempo determinada previamente. Si ha pasado suficiente tiempo, ocurrirá una condición de interrupción. El procesamiento hace ciclos en el bloque 505 hasta que ocurre un estado inactivo o una condición de interrupción. Cuando se llega a un estado inactivo u ocurre una condición de . interrupción, el procesamiento continúa al bloque 506. En el bloque 506, la máquina de validación valida el nodo o nodos sucios del árbol paralelo. El árbol paralelo es un objeto de, o está enlazado a, la máquina de validación, de tal manera que no se necesita transferir el árbol a la máquina de validación para que sea validado. En conexión con la Figura 7 se describe adicionalmente un proceso ejemplar para validar el (os) nodo(s) sucio (s) del árbol paralelo. El procesamiento continúa en el bloque de decisión 507. En el bloque de decisión 507, se hace una determinación en cuanto a si existe un error en los elementos XML no nativos del documento XML, de conformidad con los datos de errores que regresó la máquina de validación. La máquina de validación regresa datos de errores al procesador de palabras, que indican la validez de cada nodo adentro del árbol paralelo que analizó la máquina de validación. En una modalidad, los datos de errores incluyen el tipo de error que ocurrió al procesador de palabras. Si no existe ningún error, el procesamiento se mueve al bloque 509, en donde termina el procesamiento. Si existe un error, el procesamiento continúa en el bloque 508. En el bloque 508 se le notifica al usuario del error en los elementos de validación XML no nativos, de conformidad con los indicadores de despliegue visual adentro del documento XML, y adentro del árbol paralelo. En conexión con la Figura 8 se describe adicionalmente un proceso ejemplar para reportar los errores que ocurrieron al usuario. El procesamiento continúa al bloque 509, en donde termina el procesamiento . La Figura 6 es un diagrama de flujo lógico de un proceso ejemplar para localizar y manejar cambios adentro de un documento XML, 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 determina la madre de la porción del documento XML que ha cambiado. Por ejemplo, en la Figura 4, el elemento "calle" en el documento XML 410 es la madre del elemento "zona postal" 432. En una modalidad, se determina la madre de tal manera que se pueda marcar como sucio un sub - árbol del nodo paralelo que incluya la madre y la descendencia de la madre. La validación de la madre y de la descendencia de la madre todavía asegura que todo el documento XML es válido porque el cambio no debe afectar típicamente la validez de los elementos aparte de la madre inmediata del nodo cambiado. La determinación de la madre también ayuda en la sincronización del árbol paralelo con el documento XML. La madre se puede usar entonces como un indicador de la localización del cambio adentro del documento XML. En una modalidad, un identificador asociado con la madre de un elemento cambiado se almacena adentro de los datos de sincronización 240 que se muestran en la Figura 2. El procesamiento continúa al bloque 603. En el bloque 603, el procesador de palabras determina el (os) hermano (s) más cercano (s) del (os) elemento (s) que se está(n) cambiando. Por ejemplo, en la Figura 3, el elemento "objetivo" y el elemento "dirección" se consideran hermanos. La determinación del hermano más cercano ayuda a la sincronización del árbol paralelo con el documento XML. El hermano más cercano proporciona un segundo indicador de la localización de los cambios adentro del documento XML. En una modalidad, un identificador asociado con la madre de un elemento cambiado se almacena adentro de los datos de sincronización 240 que se muestran en la Figura 2. En otra modalidad, también se determina si el hermano más cercano esté sobre o debajo del elemento que se está cambiando en el documento XML. El procesamiento continúa en el bloque de decisión 604. En el bloque de decisión 604, se hace una determinación en cuanto a si el cambio requiere que se cree un nuevo nodo adentro del árbol paralelo. Se requiere un nuevo nodo cuando se genera un nuevo elemento XML no nativo en el documento XML. El nuevo nodo se crea en tiempo real para mantener la sincronización del documento XML y el árbol paralelo. Cuando no se requiere un nuevo nodo, el procesamiento se mueve al bloque 609, en donde el procesamiento regresa al bloque 503 del proceso 500. Sin embargo, si se requiere un nuevo nodo, el procesamiento se mueve al bloque 605. En el bloque 605, se crea un identificador que corresponda con el nuevo elemento adentro del documento XML. El identificador identifica de manera única el elemento adentro del documento XML. El procesamiento continúa en el bloque 606. En el bloque 606, se genera un nodo no emparentado adentro del árbol paralelo. El nodo no emparentado no se identifica en ese momento con una madre adentro del árbol paralelo. El procesamiento continúa en el bloque 607. En el bloque 607, el identificador relacionado con el elemento generado adentro del documento XML, está asociado con el nodo no emparentado. La asociación del identificador con el nodo no emparentado le permite al procesador de palabras relacionar el nodo con una posición del nuevo elemento adentro del documento XML. En una modalidad, se han determinado la madre y el hermano más cercano para el nuevo elemento adentro del documento XML y, de conformidad con lo anterior, también se determinan la madre y el hermano más cercano adentro del árbol paralelo. El procesamiento continúa en el bloque 608. En el bloque 608, se le dan instrucciones al nodo madre adentro del árbol paralelo correspondiente al elemento madre del nuevo elemento adentro del documento XML, para que adopte al nodo no emparentado. Entonces se despliega visualmente el nuevo nodo en la posición correcta adentro del árbol paralelo, sincronizando el documento XML y el árbol paralelo. El procesamiento continúa al bloque 609, en donde el procesamiento regresa al bloque 503 del proceso 500. La Figura 7 es un diagrama de flujo lógico de un proceso ejemplar para validar un documento XML de conformidad con la presente invención. El proceso 700 entra en el bloque 701 cuando el proceso 500 que se muestra en la Figura 5 introduce el bloque 506. El procesamiento continúa en el bloque 702. En el bloque 702, se copian al árbol paralelo los contenidos asociados con los elementos XML no nativos que se van a validar. En una modalidad, el contenido del documento XML no está incluido inicialmente en el árbol paralelo. Si el contenido estaba incluido en el árbol paralelo, el espacio de almacenamiento requerido para el árbol paralelo seria casi el espacio de almacenamiento requerido para el documento XML. La copia del contenido al árbol paralelo justo antes de la validación minimiza el espacio de almacenamiento requerido para el árbol paralelo. En otra modalidad, el contenido copiado al árbol paralelo está limitado al contenido asociado con los elementos XML no nativos marcados como sucios. El procesamiento continúa en el bloque 703. En el bloque 703, la máquina de validación valida el (os) nodo(s) marcado (s) como sucio (s) u su(s) contenido (s) contra el esquema XML no nativo. El esquema XML no nativo establece cuáles etiquetas y atributos se usan para describir el contenido en los elementos XML no nativos del documento XML, en dónde se permite cada etiqueta, qué contenido es aceptable, y cuáles elementos pudieran aparecer adentro de otros elementos . El árbol paralelo XML es válido cuando éste se adhiere al esquema XML no nativo. Después de la terminación de la validación, el procesamiento procede al bloque 704. En el bloque 704, se suprime del árbol paralelo el contenido incluido adentro del árbol paralelo para los propósitos de validación. La supresión del contenido del árbol paralelo además minimiza el espacio de almacenamiento que se requiere para el árbol paralelo. El procesamiento continúa al bloque 705, en donde el procesamiento regresa al bloque 507 del proceso 500 que se muestra en la Figura 5. La Figura 8 es un diagrama de flujo lógico de un proceso ejemplar para desplegar visualmente los errores en un documento XML y el árbol paralelo de conformidad con la presente invención. El proceso 800 entra en el bloque 801 cuando el proceso 500, que se muestra en la Figura 5, introduce el bloque 508 y se ha determinado que existen errores adentro de los elementos XML no nativos del documento XML. El procesamiento continúa en el bloque 802. En el bloque 802, se subraya (n) adentro del documento XML el (os) elemento (s) designado (s) por la máquina de validación como que tienen errores. Se nota que se pueden usar otros indicadores de despliegue visual (por ejemplo, poner en negritas, poner en cursivas, lineas ondulantes, etcétera) para designar los elementos adentro del documento XML como que tienen errores. El procesamiento continúa en el bloque 803. En el bloque 803, se le(s) pone(n) banderas al (os) nodo(s) del árbol paralelo que correspondan al (os) elemento (s) de error del documento XML. En una modalidad, se • coloca un icono en proximidad al nodo para indicar que el elemento que corresponde al nodo contiene un error. En una modalidad, el icono es especifico para el tipo de error que ocurrió en la asociación con el elemento de error. El procesamiento continúa en el bloque de decisión 804. En el bloque de decisión 804, se hace una determinación en cuanto a si el usuario ha hecho clic a la derecha en un error resaltado en el documento XML . Si no ocurre ningún clic a la derecha, el procesamiento procede al bloque 806. Sin embargo, si si ocurre un clic a la derecha, el procesamiento continúa en el bloque 805. En el bloque 805, se presenta un despliegue visual de error al usuario, en respuesta al clic a la derecha, que da información detallada sobre el error que ocurrió, e instrucciones para rectificar el error. En otra modalidad, se pueden usar otras entradas del usuario, en lugar de un clic a la derecha, para iniciar el despliegue visual del error. En la descripción de la Figura 4 anterior se describió adicionalmente el despliegue visual del error. El procesamiento continúa al bloque de decisión 806. En el bloque de decisión 806, se hace una determinación en cuanto a si el usuario está dando vueltas con el puntero del ratón sobre un icono en el árbol paralelo. Si el usuario decide no dar vueltas con el puntero del ratón sobre el error, el procesamiento se mueve al bloque 808, en donde el procesamiento regresa al bloque 509 del proceso 500 que se muestra en la Figura 5. Cuando el puntero del ratón da vueltas sobre un icono, el procesamiento continúa en el bloque 807. En el bloque 807, se despliega visualmente un información de la herramienta para el usuario, en respuesta a las vueltas del puntero del ratón sobre un icono en el árbol paralelo. En una modalidad, el texto del información de la herramienta proporciona una declaración simple que describe el error que ocurrió. Por ejemplo, si cierto elemento debe incluir contenido, el texto del información de la herramienta puede leer, "este elemento no puede estar vacio". En una modalidad, se pueden usar otras entradas del usuario, en lugar de dar vueltas sobre un icono con el puntero del ratón, para desplegar visualmente el información de la herramienta. En la Figura 4 se muestran un icono ejemplar y información de la herramienta. El procesamiento continúa al bloque 808, en donde el procesamiento regresa al bloque 509 del proceso 500 que se muestra en la Figura 5. 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 anexadas posteriormente en la presente.

Claims (23)

REIVINDICACIONES
1. Un método para la validación y reporte de violaciones al esquema para un documento de lenguaje de marcación extensible (XML) , en donde el documento XML incluye XML nativo y XML no nativo, el método comprendiendo: localizar un cambio a un elemento XML no nativo dentro del documento XML; marcar una porción del documento XML para significar que ha ocurrido el cambio con relación a esa porción del documento XML; marcar un nodo adentro de un árbol paralelo para significar que ha ocurrido el cambio, en donde el nodo corresponde con la porción del documento XML en donde ocurrió el cambio; validar el nodo del árbol paralelo contra un esquema XML no nativo correspondiente; determinar si existe un error en el elemento XML no nativo a partir de los datos de errores suministrados en respuesta a la validación del nodo; y desplegar visualmente una notificación de error adentro del documento XML y el árbol paralelo si ocurrió el error .
2. El método de la Reivindicación 1, en donde la localización de los cambios a los elementos XML no nativos comprende además: identificar un elemento madre para cada elemento X L no nativo en donde ha ocurrido el cambio; e identificar un elemento hermano más cercano para cada elemento XML no nativo en donde ocurrió el cambio.
3. El método de la Reivindicación 1, caracterizado porque además comprende generar un nuevo nodo adentro del árbol paralelo cuando se genera un nuevo elemento XML no nativo en el documento XML.
4. El método de la Reivindicación 3, en donde la generación de un nuevo nodo también comprende: crear un identificador que corresponda con un nuevo elemento XML no nativo, en donde se puede determinar un elemento madre y un elemento hermano del nuevo elemento XML no nativo a partir del identificador; crear un nodo no emparentado adentro del árbol paralelo; relacionar el identificador con el nodo no emparentado; e instruir a un nodo madre correspondiente al elemento madre para que adopte al nodo no emparentado.
5. El método de la Reivindicación 1, en donde la validación de los nodos del árbol paralelo comprende además : copiar el contenido al árbol paralelo, en donde el contenido esté asociado con la porción del documento XML en donde ocurrió el cambio; validar los nodos que incluyen el contenido contra un esquema XML no nativo correspondiente; y suprimir el contenido del árbol paralelo, de tal manera que se minimice el espacio de almacenamiento para el árbol paralelo.
6. El método de la Reivindicación 5, en donde la validación de los nodos que incluye el contenido contra un esquema XML no nativo correspondiente incluye examinar el árbol paralelo con una máquina de validación XML de conformidad con el esquema XML no nativo .
7. El método de la Reivindicación 1, caracterizado porque además comprende determinar cuándo ocurre una condición de interrupción o de inactividad antes de validar el árbol paralelo.
8. El método de la Reivindicación 1, en donde el despliegue visual de la notificación de un error también comprende : indicar la porción del documento XML en donde ocurrió el error, de conformidad con un primer indicador de despliegue visual; e indicar los nodos del árbol paralelo que corresponden con la porción del documento XML en donde ocurrió el error, de conformidad con un segundo indicador de despliegue visual .
9. El método de la Reivindicación 8, en donde la entrada del usuario que corresponde a cuando menos uno del primer indicador de despliegue visual y el segundo indicador de despliegue visual, produce un despliegue visual de error que proporciona información interactiva respecto al error .
10. El método de la Reivindicación 8, en donde la entrada del usuario que corresponde a cuando menos uno del primer indicador de despliegue visual y el segundo indicador de despliegue visual, produce un información de la herramienta que proporciona información textual respecto al error .
11. ün 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 un primer tipo de elementos asociados con un primer esquema X L y un segundo tipo de elementos asociados con un segundo esquema XML, los primeros componentes estando configurados para presentar un despliegue visual indicativo de que el cuando menos uno del primer tipo de elementos viola el primer esquema XML; un segundo componente para almacenar nodos, cada nodo estando asociado con un elemento correspondiente en el primer componente, el primer componente y el segundo componente estando sincronizados; y un tercer componente para validar los elementos, el tercer componente estando configurado para regresar datos de errores al primer componente, en respuesta a una violación de la validación.
12. El medio legible por computadora de la Reivindicación 11, caracterizado porque además comprende un cuarto elemento que corresponde a los datos de errores, que está configurado para generarse cuando la entrada del usuario interactúa con un indicador que se despliega visualmente adentro de cuando menos uno del documento XML y el segundo componente .
13. El medio legible por computadora de la Reivindicación 12, en donde el cuarto componente está configurado además para desplegar visualmente información respecto a un error que corresponde a los datos de errores, que incluye cuando menos uno de un tipo de error, instrucciones para rectificar el error, y una declaración del error.
14. Un medio legible por computadora codificado con estructuras de datos, que comprende: una primera estructura de datos que comprende elementos del lenguaje de marcación extensible (XML) ; una segunda estructura de datos que comprende un árbol de elementos que corresponde a los elementos de la primera estructura de datos; y un indicador de despliegue visual en proximidad a un elemento en la primera estructura de datos y un nodo correspondiente en la segunda estructura de datos, el indicador de despliegue visual significando un error de validación .
15. El medio legible por computadora de la Reivindicación 14, en donde el indicador de despliegue visual está configurado para interactuar con la entrada del usuario para iniciar adicionalmente un despliegue visual de errores que proporciona información interactiva respecto al error de validación .
16. El medio legible por computadora de la Reivindicación 14, en donde el indicador de despliegue visual está configurado para interactuar con la entrada del usuario para iniciar adicionalmente un información de la herramienta que proporciona información textual respecto al error de validación.
17. El medio legible por computadora que tiene instrucciones ejecutables por computadora para la validación y reporte de violaciones al esquema para un documento de lenguaje de marcación extensible (XML) , en donde el documento XML incluye XML nativo y XML no nativo, el método comprendiendo: localizar un cambio a un elemento XML no nativo adentro del documento XML; crear un nuevo nodo adentro de un árbol paralelo, si el cambio corresponde a la creación de un nuevo elemento XML no nativo adentro del documento XML; marcar una porción del documento XML como afectada por el cambio; marcar un nodo adentro del árbol paralelo para significar que ha ocurrido el cambio, en donde el nodo corresponde a la porción del documento XML afectada por el cambio; validar el nodo marcado del árbol paralelo contra un esquema correspondiente; determinar si existe un error en el elemento XML no nativo a partir de los datos de errores suministrados en respuesta a la validación del nodo; y si asi es, desplegar visualmente una notificación del error adentro del documento XML y el árbol paralelo.
18. El método de la Reivindicación 17, en donde la localización de 'cambios a los elementos XML no nativos comprende además : identificar un elemento madre para cada elemento XML no nativo en donde ocurrió el cambio; e identificar un elemento hermano más cercano para cada elemento XML no nativo en donde ocurrió el cambio.
19. El método de la Reivindicación 17, en donde la generación de un nuevo nodo comprende además : crear un identificador que corresponda con un nuevo elemento XML no nativo, en donde se puede determinar un elemento madre y un elemento hermano del nuevo elemento XML no nativo a partir del identificador; crear un nodo no emparentado adentro del árbol paralelo; relacionar el identificador con el nodo no emparentado; e instruir a un nodo madre correspondiente al elemento madre para que adopte al nodo no emparentado.
20. El método de la Reivindicación 17, en donde la validación de los nodos del árbol paralelo también comprende: copiar el contenido al árbol paralelo, en donde el contenido corresponde con la porción del documento XML; validar los nodos que incluyen el contenido contra un esquema XML no nativo correspondiente; y suprimir el contenido del árbol paralelo, de tal manera que se minimice el espacio de almacenamiento para el árbol paralelo.
21. El método de la Reivindicación 17, en donde el despliegue visual de la notificación de un error comprende además: indicar la porción del documento XML en donde ocurrió el error, de conformidad con un primer indicador de despliegue visual; e indicar los nodos del árbol paralelo que corresponden con la porción del documento XML en donde ocurrió el error, de conformidad con un segundo indicador de despliegue visual .
22. El método de la Reivindicación 21, en donde la entrada del usuario que corresponde a cuando menos uno del primer indicador de despliegue visual y el segundo indicador de despliegue visual, produce un despliegue visual de error que proporciona información interactiva respecto al error -
23. El método de la Reivindicación 21, en donde la entrada del usuario que corresponde a cuando menos uno del primer indicador de despliegue visual y el segundo indicador de despliegue visual, produce un información de la herramienta que proporciona información textual respecto al error .
MXPA03005875A 2002-06-27 2003-06-26 Metodo para validar un documento xml y reportar violaciones al esquema. MXPA03005875A (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/184,565 US7373595B2 (en) 2002-06-27 2002-06-27 System and method for validating an XML document and reporting schema violations

Publications (1)

Publication Number Publication Date
MXPA03005875A true MXPA03005875A (es) 2005-02-14

Family

ID=27733956

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA03005875A MXPA03005875A (es) 2002-06-27 2003-06-26 Metodo para validar un documento xml y reportar violaciones al esquema.

Country Status (15)

Country Link
US (1) US7373595B2 (es)
EP (1) EP1376389A3 (es)
JP (1) JP2004046849A (es)
KR (1) KR100833538B1 (es)
CN (1) CN1329823C (es)
AU (1) AU2003204868A1 (es)
BR (1) BR0302084A (es)
CA (1) CA2433243A1 (es)
MX (1) MXPA03005875A (es)
MY (1) MY137429A (es)
NO (1) NO20032945L (es)
PL (1) PL360865A1 (es)
RU (1) RU2328032C2 (es)
TW (1) TW200413960A (es)
ZA (1) ZA200304859B (es)

Families Citing this family (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6146979A (en) * 1997-05-12 2000-11-14 Silicon Genesis Corporation Pressurized microbubble thin film separation process using a reusable substrate
US6948135B1 (en) 2000-06-21 2005-09-20 Microsoft Corporation Method and systems of providing information to computer users
US6883168B1 (en) 2000-06-21 2005-04-19 Microsoft Corporation Methods, systems, architectures and data structures for delivering software via a network
US7000230B1 (en) 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
US7155667B1 (en) 2000-06-21 2006-12-26 Microsoft Corporation User interface for integrated spreadsheets and word processing tables
US7191394B1 (en) 2000-06-21 2007-03-13 Microsoft Corporation Authoring arbitrary XML documents using DHTML and XSLT
US7346848B1 (en) 2000-06-21 2008-03-18 Microsoft Corporation Single window navigation methods and systems
KR100511785B1 (ko) * 2002-12-20 2005-08-31 한국전자통신연구원 멀티미디어 컨텐츠 기술 메타데이터 저작 시스템 및 저작방법
US7370066B1 (en) 2003-03-24 2008-05-06 Microsoft Corporation System and method for offline editing of data files
US7275216B2 (en) 2003-03-24 2007-09-25 Microsoft Corporation System and method for designing electronic forms and hierarchical schemas
US7415672B1 (en) 2003-03-24 2008-08-19 Microsoft Corporation System and method for designing electronic forms
US6908058B2 (en) * 2003-03-28 2005-06-21 Suncast Corporation Hose reel cart with elevated crank handle
US7296017B2 (en) * 2003-03-28 2007-11-13 Microsoft Corporation Validation of XML data files
US7913159B2 (en) 2003-03-28 2011-03-22 Microsoft Corporation System and method for real-time validation of structured data files
US7251777B1 (en) 2003-04-16 2007-07-31 Hypervision, Ltd. Method and system for automated structuring of textual documents
US7409673B2 (en) * 2003-06-24 2008-08-05 Academia Sinica XML document editor
US7406660B1 (en) 2003-08-01 2008-07-29 Microsoft Corporation Mapping between structured data and a visual surface
US7334187B1 (en) 2003-08-06 2008-02-19 Microsoft Corporation Electronic form aggregation
US7657832B1 (en) * 2003-09-18 2010-02-02 Adobe Systems Incorporated Correcting validation errors in structured documents
GB2407423A (en) * 2003-10-23 2005-04-27 Matsushita Electric Ind Co Ltd Schema driven authoring tool
US8819072B1 (en) 2004-02-02 2014-08-26 Microsoft Corporation Promoting data from structured data files
US7430711B2 (en) * 2004-02-17 2008-09-30 Microsoft Corporation Systems and methods for editing XML documents
US7774620B1 (en) 2004-05-27 2010-08-10 Microsoft Corporation Executing applications at appropriate trust levels
US20060004729A1 (en) * 2004-06-30 2006-01-05 Reactivity, Inc. Accelerated schema-based validation
KR100636177B1 (ko) * 2004-09-20 2006-10-19 삼성전자주식회사 정책 기반 확장성 생성 언어 문서 출력 관리 방법 및 시스템
US7692636B2 (en) 2004-09-30 2010-04-06 Microsoft Corporation Systems and methods for handwriting to a screen
US7512840B2 (en) * 2004-10-01 2009-03-31 Diebold, Incorporated System and method for providing graphical representation and development of a processing application
US8487879B2 (en) 2004-10-29 2013-07-16 Microsoft Corporation Systems and methods for interacting with a computer through handwriting to a screen
US7836392B2 (en) * 2004-11-10 2010-11-16 Sap Aktiengesellschaft Layout information for data component
US7818342B2 (en) * 2004-11-12 2010-10-19 Sap Ag Tracking usage of data elements in electronic business communications
US7711676B2 (en) * 2004-11-12 2010-05-04 Sap Aktiengesellschaft Tracking usage of data elements in electronic business communications
US7712022B2 (en) 2004-11-15 2010-05-04 Microsoft Corporation Mutually exclusive options in electronic forms
US7721190B2 (en) * 2004-11-16 2010-05-18 Microsoft Corporation Methods and systems for server side form processing
US7865519B2 (en) * 2004-11-17 2011-01-04 Sap Aktiengesellschaft Using a controlled vocabulary library to generate business data component names
US7797673B2 (en) 2004-12-16 2010-09-14 The Mathworks, Inc. Applying coding standards in graphical programming environments
US7559020B2 (en) * 2004-12-30 2009-07-07 Microsoft Corporation Methods and systems for preserving unknown markup in a strongly typed environment
US7937651B2 (en) 2005-01-14 2011-05-03 Microsoft Corporation Structural editing operations for network forms
US7571429B2 (en) 2005-01-18 2009-08-04 Sharp Laboratories Of America, Inc. System and method for error reporting
US7500184B2 (en) 2005-02-11 2009-03-03 Fujitsu Limited Determining an acceptance status during document parsing
US8996991B2 (en) 2005-02-11 2015-03-31 Fujitsu Limited System and method for displaying an acceptance status
US7725834B2 (en) 2005-03-04 2010-05-25 Microsoft Corporation Designer-created aspect for an electronic form template
US7673228B2 (en) 2005-03-30 2010-03-02 Microsoft Corporation Data-driven actions for network forms
US8010515B2 (en) 2005-04-15 2011-08-30 Microsoft Corporation Query to an electronic form
US20070011665A1 (en) * 2005-06-21 2007-01-11 Microsoft Corporation Content syndication platform
US8200975B2 (en) 2005-06-29 2012-06-12 Microsoft Corporation Digital signatures for network forms
US7617448B2 (en) * 2005-09-06 2009-11-10 Cisco Technology, Inc. Method and system for validation of structured documents
US20070061467A1 (en) * 2005-09-15 2007-03-15 Microsoft Corporation Sessions and session states
US7774321B2 (en) * 2005-11-07 2010-08-10 Microsoft Corporation Partial XML validation
US8001459B2 (en) 2005-12-05 2011-08-16 Microsoft Corporation Enabling electronic documents for limited-capability computing devices
US8037408B2 (en) * 2005-12-22 2011-10-11 Sap Ag Systems and methods of validating templates
US7533111B2 (en) * 2005-12-30 2009-05-12 Microsoft Corporation Using soap messages for inverse query expressions
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
JPWO2007114182A1 (ja) * 2006-03-31 2009-08-13 株式会社ジャストシステム データ入力装置、方法、及びプログラム
US7992081B2 (en) * 2006-04-19 2011-08-02 Oracle International Corporation Streaming validation of XML documents
US7821667B2 (en) * 2006-08-10 2010-10-26 Microsoft Corporation Validation of print configuration documents
US9535912B2 (en) * 2006-09-15 2017-01-03 Oracle International Corporation Techniques for checking whether a complex digital object conforms to a standard
US8060620B2 (en) * 2006-10-05 2011-11-15 Microsoft Corporation Profile deployment using a generic format
US20080092037A1 (en) * 2006-10-16 2008-04-17 Oracle International Corporation Validation of XML content in a streaming fashion
US20080114797A1 (en) * 2006-11-14 2008-05-15 Microsoft Corporation Importing non-native content into a document
US7921370B1 (en) * 2006-11-29 2011-04-05 Adobe Systems Incorporated Object-level text-condition indicators
EP1933242A1 (en) * 2006-12-11 2008-06-18 Sitecore A/S A method for ensuring internet content compliance
US7716164B2 (en) * 2006-12-29 2010-05-11 Sap Ag Layout information for data element
US8341514B2 (en) * 2007-01-31 2012-12-25 Microsoft Corporation Using static data in a markup language
US7865823B2 (en) * 2007-06-28 2011-01-04 Intel Corporation Method and apparatus for schema validation
US8108768B2 (en) * 2007-07-20 2012-01-31 International Business Machines Corporation Improving efficiency of content rule checking in a content management system
CN101359497A (zh) * 2007-07-30 2009-02-04 科立尔数位科技股份有限公司 时间标记的检测及表示方法与记录其数据结构的记录媒体
US8880564B2 (en) * 2007-10-11 2014-11-04 Microsoft Corporation Generic model editing framework
JP5165998B2 (ja) * 2007-11-14 2013-03-21 日本電信電話株式会社 コンテンツ診断装置,コンテンツ診断プログラム
US8719693B2 (en) * 2008-02-22 2014-05-06 International Business Machines Corporation Method for storing localized XML document values
US8020051B2 (en) * 2008-10-20 2011-09-13 Sap Ag Message handling in a service-oriented architecture
TWI385537B (zh) * 2009-05-04 2013-02-11 Univ Nat Taiwan 標示語言文件存取的輔助方法及裝置
US8200702B2 (en) * 2009-09-30 2012-06-12 International Business Machines Corporation Independently variably scoped content rule application in a content management system
US20110314043A1 (en) * 2010-06-17 2011-12-22 Microsoft Corporation Full-fidelity representation of xml-represented objects
CA2711855A1 (en) 2010-08-25 2010-11-03 Ibm Canada Limited - Ibm Canada Limitee Secure third party scripting environment
US8281236B2 (en) * 2010-09-08 2012-10-02 Microsoft Corporation Removing style corruption from extensible markup language documents
US20120221319A1 (en) * 2011-02-28 2012-08-30 Andrew Trese Systems, Methods and Media for Translating Informational Content
US10140320B2 (en) 2011-02-28 2018-11-27 Sdl Inc. Systems, methods, and media for generating analytical data
US9984054B2 (en) 2011-08-24 2018-05-29 Sdl Inc. Web interface including the review and manipulation of a web document and utilizing permission based control
US9224010B2 (en) 2011-09-01 2015-12-29 International Business Machines Corporation Secure document creation from potentially unsecure source templates
US8739026B2 (en) 2011-09-06 2014-05-27 Hewlett-Packard Development Company, L.P. Markup language schema error correction
US20130091423A1 (en) * 2011-10-11 2013-04-11 Siemens Aktiengesellschaft Method and Apparatus for Checking a Structure Conformity for a Piece Of Development Documentation with at Least One Development Document
US9916306B2 (en) 2012-10-19 2018-03-13 Sdl Inc. Statistical linguistic analysis of source content
CN103914467B (zh) * 2012-12-31 2017-07-14 鼎捷软件股份有限公司 数据变化标记装置
US9524307B2 (en) * 2013-03-14 2016-12-20 Microsoft Technology Licensing, Llc Asynchronous error checking in structured documents
US9501456B2 (en) * 2013-03-15 2016-11-22 Altova Gmbh Automatic fix for extensible markup language errors
US10592068B1 (en) 2014-03-27 2020-03-17 Amazon Technologies, Inc. Graphic composer for service integration
US10747390B1 (en) * 2014-03-27 2020-08-18 Amazon Technologies, Inc. Graphical composer for policy management
US10552513B1 (en) * 2015-01-08 2020-02-04 Vmware, Inc. Computer system entity rendering system
CN105354020A (zh) * 2015-09-30 2016-02-24 武汉钢铁(集团)公司 一种Json格式数据解析方法及数据接收端
JP6365518B2 (ja) * 2015-11-30 2018-08-01 京セラドキュメントソリューションズ株式会社 情報処理装置、画像形成装置
US10031766B2 (en) 2016-03-08 2018-07-24 Mastercard International Incorporated Systems and methods for processing extensible markup language data during runtime
KR101903039B1 (ko) * 2016-11-21 2018-10-01 (주)솔트웍스 문서 통합 관리 시스템을 위한 동기화 장치
CN108959095B (zh) * 2018-07-12 2021-11-23 中国工程物理研究院计算机应用研究所 基于XML Schema验证XML文档的方法
WO2024092553A1 (en) * 2022-11-02 2024-05-10 Huawei Cloud Computing Technologies Co., Ltd. Methods and systems for model generation and instantiation of optimization models from markup documents

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778402A (en) 1995-06-07 1998-07-07 Microsoft Corporation Method and system for auto-formatting a document using an event-based rule engine to format a document as the user types
US5829004A (en) * 1996-05-20 1998-10-27 Au; Lawrence Device for storage and retrieval of compact contiguous tree index records
US6558431B1 (en) * 1998-09-11 2003-05-06 Macromedia, Inc. Storing valid and invalid markup language in strict and relaxed tables respectively
US6964010B1 (en) * 1998-12-14 2005-11-08 International Business Machines Corporation Formatted-item list control
US7111233B1 (en) * 2000-03-09 2006-09-19 Electronic Data Systems Corporation Method and system for applying XML schema
US6675355B1 (en) * 2000-03-16 2004-01-06 Autodesk, Inc. Redline extensible markup language (XML) schema
GB0018042D0 (en) * 2000-07-21 2000-09-13 Monsell Edm Ltd Method of and software for recordal and validation of changes to markup language files
US20010029604A1 (en) * 2001-04-27 2001-10-11 Jacob Dreyband Descriptive data construct mapping method and apparatus
WO2003019411A2 (en) * 2001-08-23 2003-03-06 Xmlcities, Inc. Method and apparatus for extensible stylesheet designs
US7281206B2 (en) * 2001-11-16 2007-10-09 Timebase Pty Limited Maintenance of a markup language document in a database
US7024626B2 (en) * 2001-11-30 2006-04-04 Apple Computer, Inc. System and method of producing user interface information messages
US6540142B1 (en) * 2001-12-17 2003-04-01 Zih Corp. Native XML printer
US7962925B2 (en) * 2002-02-22 2011-06-14 Oracle International Corporation System and method for XML data binding
US7890865B2 (en) * 2002-05-09 2011-02-15 Microsoft Corporation Methods and apparatuses for providing message information in graphical user interfaces based on user inputs
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
EP1376389A2 (en) 2004-01-02
NO20032945L (no) 2003-12-29
RU2328032C2 (ru) 2008-06-27
CN1329823C (zh) 2007-08-01
US20040006744A1 (en) 2004-01-08
CN1472645A (zh) 2004-02-04
ZA200304859B (en) 2004-05-04
PL360865A1 (en) 2003-12-29
RU2003119091A (ru) 2005-02-10
US7373595B2 (en) 2008-05-13
AU2003204868A1 (en) 2004-01-22
JP2004046849A (ja) 2004-02-12
CA2433243A1 (en) 2003-12-27
KR20040002736A (ko) 2004-01-07
NO20032945D0 (no) 2003-06-26
TW200413960A (en) 2004-08-01
EP1376389A3 (en) 2007-07-11
KR100833538B1 (ko) 2008-05-29
BR0302084A (pt) 2004-09-08
MY137429A (en) 2009-01-30

Similar Documents

Publication Publication Date Title
MXPA03005875A (es) Metodo para validar un documento xml y reportar violaciones al esquema.
US7197510B2 (en) Method, system and program for generating structure pattern candidates
US7275209B1 (en) Mixed content flexibility for XML editors
US9256698B2 (en) System for creating and editing mark up language forms and documents
US20170169000A1 (en) WYSIWYG, browser-based XML editor
US7730394B2 (en) Data binding in a word-processing application
US7991805B2 (en) System for viewing and indexing mark up language messages, forms and documents
US20040268229A1 (en) Markup language editing with an electronic form
US20060195783A1 (en) Programmability for binding data
US20080262833A1 (en) Document Processing Device and Document Processing Method
JP5072845B2 (ja) 文書用のxmlデータストアのためのプログラム可能性
US7631004B2 (en) Systems and methods for creating a template from an existing file
US20070204215A1 (en) Device for analyzing log files generated by process automation tools
US20100107048A1 (en) Document processor and document processing method
US20070258100A1 (en) Document Processing Device and Document Processing Method
US20090083300A1 (en) Document processing device and document processing method
US20070198915A1 (en) Document Processing Device And Document Processing Method
US20070208995A1 (en) Document Processing Device and Document Processing Method
US20080005662A1 (en) Server Device and Name Space Issuing Method
US20080208790A1 (en) Document Processing Device, and Document Processing Method
US20080141112A1 (en) Document Processing Device and Document Processing Method
US20080005085A1 (en) Server Device and Search Method
US20080005136A1 (en) Data Processing Device, Document Processing Device, and Document Processing Method
WO2007052680A1 (ja) 文書処理装置及び文書処理方法
US20080262832A1 (en) Document Processing Device, and Document Processing Method

Legal Events

Date Code Title Description
FA Abandonment or withdrawal