Editor de Documentos XML Usando Plantillas y Transformaciones
Tesis
Open/ Download
Publication date
2011Metadata
Show full item record
Cómo citar
Gutiérrez Gallardo, Claudio
Cómo citar
Editor de Documentos XML Usando Plantillas y Transformaciones
Professor Advisor
Abstract
La edición de datos semi-estructurados, en particular de documentos XML, es habitualmente abordada con formularios e interfaces de edición para tablas (scaffolds), herramientas diseñadas para trabajar con datos estructurados. Otras herramientas que sí pueden abordar modelos semi-estructurados (como XForms y XTiger) no poseen un lenguaje completamente declarativo y están limitadas a modelos no recursivos. Estas limitaciones implican un mayor costo en el desarrollo de aplicaciones que trabajan con datos semi-estructurados.
En esta memoria se propone un lenguaje de plantillas, que bautizamos Queule, basado en XTiger, para la edición de datos semi-estructurados. Queule reduce los costos de implementar interfaces de edición al permitir la definición declarativa de interfaces para los modelos y al incluir el soporte a modelos recursivos. Las plantillas, al igual que los esquemas de datos (DTD, XML Schema, Schematron, RELAX NG, etc.), permiten delimitar el universo de las instancias que satisfacen un modelo. A diferencia de los esquemas, en los que se habitualmente se provee de algoritmos para decidir si se satisface un esquema, las plantillas proveen mecanismos para editar los datos definiendo de manera constructiva las restricciones del modelo.
La idea de usar transformaciones, unidireccionales o bidireccionales, mencionada en el título de esta memoria, estaba motivada por el almacenamiento de los datos en un documento distinto al usado como plantilla. Al inicio del desarrollo de esta memoria, las transformaciones cumplían un rol central en el sistema que, no obstante, perdió relevancia cuando se descubrió la posibilidad, y conveniencia, de que una plantilla no estuviera reflejada necesariamente en un sólo documento de una base documental, si no más bien, en una vista de una base de datos cualquiera. De este modo, los cambios no esperarían al término de la edición para ser enviados en la forma del documento editado, sino que podrían enviarse de manera asíncrona a medida que se edita.
En el desarrollo de esta memoria se implementó un intérprete para la versión 1.0 del lenguaje Queule que se limita a la definición de estructuras de árbol que consideran el orden entre los nodos hermanos. Futuras versiones de Queule, podrían extender la edición a un modelo de grafos más general.
El funcionamiento de Queule 1.0 es ejemplificado con varias plantillas que pueden ser editadas usando los navegadores Web más populares debido a que el intérprete fue programado como una biblioteca JavaScript.
Identifier
URI: https://repositorio.uchile.cl/handle/2250/104034
Collections