xml haskell zipper

Cremallera para crear solicitudes xml



haskell zipper (3)

¿Cómo se puede crear una solicitud XML conforme a un XSD tal que la solicitud sea válida?

Una forma sería crear toda la solicitud y luego verificarla en el XSD . ¿Hay alguna manera de crear una solicitud mientras recorre el esquema?

El primer pensamiento que me vino a la mente fue de Zipper, pero realmente no estoy seguro si se pueden usar aquí.

Tal vez no lo he entendido bien, pero parece que Zipper es genial si ya hay alguna estructura definida y las cosas necesitan ser cambiadas en esa estructura. ¿Se puede usar Zipper para una estructura cambiante? (Por ejemplo, agregar una secuencia a una matriz de secuencia?)


Como dijo Tomalak en un comment ,

Eso es como tratar de crear cadenas significativas al caminar con la expresión regular. No funciona de esa manera.

Una cremallera te ayuda a dar un paseo sinuoso a través de una estructura, inspeccionando partes y opcionalmente modificándolas; al final, tiene la opción de "cerrar con cremallera" la cremallera para obtener una versión modificada del original. Hay al menos dos problemas principales con su idea:

  1. La estructura de un XSD no es lo mismo, o incluso terriblemente similar a, la estructura de los documentos que codifica. Si tuviera que usar una cremallera para modificar un XSD para producir XML válido de acuerdo con ese XSD, terminará por reestructurarlo por completo, y el sistema de tipos no lo ayudará a hacerlo bien.

  2. Una cremallera es una forma de enfocarse en parte de alguna estructura de datos. Antes de pensar demasiado sobre la cremallera, debe pensar en qué estructura de datos está descomprimiendo. Dependiendo de lo que esté haciendo, puede o no puede serle útil usar una cremallera, pero la cremallera y sus invariantes siempre se relacionarán con la estructura y sus invariantes.


Crear un objeto XMLHttpRequest

Todos los navegadores modernos (IE7 +, Firefox, Chrome, Safari y Opera) tienen incorporado un objeto XMLHttpRequest.

Sintaxis para crear un objeto XMLHttpRequest: xmlhttp = new XMLHttpRequest ();


Una vez tuve la oportunidad de probar esta herramienta: camprocessor Realmente funcionó y produjo archivos XML válidos que se podían personalizar con datos de bases de datos.

Hay alguna orientación sobre esto en OASIS