XForms es un formato XML que se utiliza para recopilar datos de formularios web . XForms fue diseñado para ser la próxima generación de formularios HTML / XHTML , pero es lo suficientemente genérico como para que también se pueda utilizar de forma independiente o con lenguajes de presentación distintos de XHTML para describir una interfaz de usuario y un conjunto de tareas comunes de manipulación de datos .
XForms 1.0 (tercera edición) se publicó el 29 de octubre de 2007. La especificación original de XForms se convirtió en una recomendación oficial del W3C el 14 de octubre de 2003, mientras que XForms 1.1, que introdujo una serie de mejoras, alcanzó el mismo estatus el 20 de octubre de 2009.
Diferencias con los formularios web
A diferencia de los formularios web originales (definidos originalmente en HTML), los creadores de XForms han utilizado un enfoque modelo-vista-controlador (MVC). El modelo consta de uno o más modelos XForms que describen los datos del formulario, las restricciones sobre esos datos y los envíos. La vista describe qué controles aparecen en el formulario, cómo se agrupan y a qué datos están vinculados. Se pueden utilizar CSS para describir la apariencia de un formulario.
Un documento XForms puede ser tan simple como un formulario web (especificando únicamente el elemento de envío en la sección del modelo y colocando los controles en el cuerpo), pero XForms incluye muchas funciones avanzadas. Por ejemplo, se pueden solicitar nuevos datos y utilizarlos para actualizar el formulario mientras se está ejecutando, de forma muy similar a usar XMLHttpRequest / AJAX, pero sin scripts. El autor del formulario puede validar los datos del usuario con los tipos de datos del esquema XML , requerir determinados datos, deshabilitar los controles de entrada o cambiar secciones del formulario según las circunstancias, aplicar relaciones particulares entre los datos, introducir matrices de datos de longitud variable, generar valores calculados derivados de los datos del formulario, rellenar previamente las entradas utilizando un documento XML, responder a las acciones en tiempo real (en lugar de en el momento del envío) y modificar el estilo de cada control según el dispositivo en el que se muestren (navegador de escritorio en lugar de móvil en lugar de solo texto, etc.). A menudo no es necesario ningún script con lenguajes como JavaScript. Sin embargo, XForms incluye un modelo de eventos y acciones para implementar comportamientos de formulario más complejos. [1] Las acciones y el manejo de eventos se especifican utilizando el dialecto XML XForms en lugar de lenguajes de scripting más comunes como JavaScript.
Al igual que los formularios web, XForms puede utilizar varios protocolos de envío que no sean XML ( multipart/form-data , application/x-www-form-urlencoded ), pero una característica nueva es que XForms puede enviar datos a un servidor en formato XML. Los documentos XML también se pueden utilizar para rellenar previamente los datos en el formulario. Debido a que XML es un estándar, existen muchas herramientas que pueden analizar y modificar los datos al enviarlos. También existen herramientas similares para formularios heredados. XForms es en sí mismo un dialecto XML y, por lo tanto, puede crear y ser creado a partir de otros documentos XML utilizando XSLT . Mediante transformaciones, XForms se pueden crear automáticamente a partir de esquemas XML y XForms se pueden convertir a formularios XHTML.
Soporte de software
En el momento de redactar este artículo, ningún navegador web de uso generalizado admite XForms de forma nativa. Sin embargo, existen varios complementos de navegador, extensiones del lado del cliente y soluciones de servidor/cliente. A continuación, se enumeran algunas implementaciones:
- La extensión XForms de Firefox era parte del Proyecto Mozilla. [2] La compatibilidad con XForms 1.0 SE no está completa pero cubre la mayor parte de la especificación con una notable excepción de la repetición basada en atributos utilizada en tablas HTML. La extensión estaba disponible tanto para Firefox 2 como para Firefox 3, pero no se actualizó para admitir Firefox 4 y versiones posteriores. En julio de 2011, el desarrollador principal escribió que la compatibilidad con XForms ya no se actualizaría. [3] La compatibilidad con XForms finalmente quedó obsoleta en Firefox 19. [4]
- IBM Lotus Forms admite el desarrollo y la implementación de formularios XML puros basados en XForms. Hay disponibles descargas de prueba de un entorno de diseño visual basado en Eclipse y un visualizador del lado del cliente que puede ejecutar formularios basados en XForms tanto en el navegador web como en una aplicación de escritorio independiente.
- Las versiones 2.0 y posteriores de OpenOffice.org y LibreOffice admiten XForms. [5] [6]
Comparación de tecnologías de implementación
FormFaces , AJAXForms, XSLTForms, betterFORM, Chiba, Orbeon y Smartsite Forms se basan en la tecnología Ajax. La cantidad de procesamiento del lado del servidor y del lado del cliente varía entre estas implementaciones. Por ejemplo, Ubiquity XForms, FormFaces y XSLTForms proporcionan un procesamiento del lado del cliente 100 % XForms y actualizaciones del modelo de datos mediante procesamiento Ajax puro en el estándar XForms. Los demás utilizan la transcodificación del procesamiento XForms Java/.NET del lado del servidor a marcado Ajax antes de entregar el contenido al navegador. Ambas técnicas pueden funcionar en todos los navegadores. Cada implementación es significativamente diferente con respecto a las dependencias, la escalabilidad, el rendimiento, las licencias, la madurez, el tráfico de red, la capacidad sin conexión y la compatibilidad entre navegadores. Los arquitectos de sistemas deben evaluar estas limitaciones en función de sus necesidades para determinar los posibles riesgos y objetivos.
Los complementos como FormsPlayer y otras tecnologías del lado del cliente también pueden tener algunos beneficios: debido a que se integran en el navegador, funcionarán con arquitecturas de servidor existentes, pueden responder mejor y requieren menos búsquedas del servidor.
La solución intermedia entre las soluciones de complemento del lado del servidor y del cliente es el mantenimiento del software; cada cliente debe instalar el complemento necesario o la arquitectura del servidor debe cambiar para adaptarse a la tecnología de lenguaje del motor de transcodificación de XForms. En teoría, es posible combinar ambas soluciones, por ejemplo, probar el navegador para una implementación de XForms del lado del cliente y ofrecer XForms nativos en ese caso, y utilizar una solución de servidor de forma predeterminada en otros casos.
Ubiquity XForms, FormFaces y XSLTForms proporcionan una solución de "software cero" tanto en el cliente como en el servidor: no es necesario instalar software nuevo en el cliente y la solución se puede utilizar junto con cualquier arquitectura del lado del servidor. Esto es posible porque FormFaces y Ubiquity XForms están escritos 100% en Ajax y porque XSLTForms está escrito en XSLT y en Ajax. La desventaja es que, en comparación con otras soluciones, inicialmente se descarga más código en el cliente (el código se puede almacenar en caché en el cliente) y FormFaces aún no admite la validación de esquemas XML. Además, los envíos de XForms con el comportamiento de reemplazar "todo" normalmente no darán como resultado reemplazos de páginas reales y, por lo tanto, romperán el comportamiento normal del botón Atrás.
Arquitectura de la aplicación XRX
Debido a que XForms facilita la edición de datos XML complejos, existen muchas ventajas al utilizar XForms con bases de datos XML nativas que frecuentemente utilizan interfaces REST . La combinación de tres tecnologías (XForms en el cliente, interfaces REST y XQuery en el servidor) se conoce colectivamente como desarrollo de aplicaciones XRX . XRX es conocido por su arquitectura simple que utiliza XML tanto en el cliente como en la base de datos y evita las transformaciones a estructuras de datos relacionales o de objetos. Consulte "XRX: simple, elegante, disruptivo".
XForms para dispositivos móviles
Beneficios
XForms ofrece beneficios específicos cuando se utiliza en dispositivos móviles:
- Las interfaces de usuario que utilizan XForms requieren menos viajes de ida y vuelta con el servidor y, en ese sentido, son más autónomas que las interfaces de usuario que utilizan formularios HTML 4.
- Las capacidades de los dispositivos móviles varían enormemente; por lo tanto, la cantidad de trabajo que implica generar diferentes interfaces de usuario para distintos dispositivos es de especial importancia en el mundo móvil. XForms se diseñó desde cero para permitir que los formularios se describan independientemente del dispositivo, lo que reduce la cantidad de trabajo necesario para abordar múltiples dispositivos.
- XForms reduce la necesidad de JavaScript, lo que resulta especialmente interesante ya que la compatibilidad con JavaScript varía mucho en los dispositivos móviles y no se puede confiar en él en todos los casos. Esto también permite que los sistemas en los que JavaScript está deshabilitado por cuestiones de seguridad sigan funcionando sin problemas.
Implementaciones
Por favor, dime
ODK [7] es una plataforma de recopilación de datos móviles de código abierto que utiliza un subconjunto de W3C XForms 1.0 llamado ODK XForms. [8] ODK proporciona bibliotecas de procesamiento ODK XForms en Java (JavaRosa) y JavaScript (enketo-core).
Xfolita
Xfolite es un cliente XForms liviano para la plataforma J2ME. Fue creado originalmente en el Centro de Investigación de Nokia e incluye una implementación de DOM y XPath 1.0, así como un motor XForms que implementa la especificación XForms 1.1 casi por completo. XFolite fue lanzado como software beta y no debe considerarse listo para su uso en producción como tal. Sin embargo, contiene un motor XForms maduro que ha sido diseñado para funcionar con diferentes implementaciones de UI. Sin embargo, los esquemas XML y CSS están fuera del alcance del proyecto. Xfolite es de código abierto y tiene licencia LGPL, pero no se está desarrollando más activamente.
Véase también
Referencias
- ^ Pemberton, Steven (junio de 2014). "Datos XML en vivo". XML London 2014 : 96–102. doi : 10.14337/XMLLondon14.Pemberton01 . ISBN 978-0-9926471-1-7.
- ^ Mozilla: Proyecto Mozilla XForms - Descargar. Consultado el 12 de marzo de 2013.
- ^ Philipp Wagner: El futuro de Mozilla XForms, 13 de julio de 2011
- ^ Red de desarrolladores de Mozilla (MDN): XForms. Consultado el 12 de marzo de 2013.
- ^ Apache OpenOffice: [1]. Consultado el 24 de mayo de 2020.
- ^ The Document Foundation: Documentos de formulario XML (XForms). Consultado el 12 de marzo de 2013.
- ^ "ODK: recopile datos en cualquier lugar". getodk.org .
- ^ "Especificación ODK XForms".
- XForms 1.1 - Recomendación del W3C del 20 de octubre de 2009.
- Raman, TV (2004). XForms: Formularios web basados en XML . Boston: Addison-Wesley . ISBN. 0-321-15499-1.
- Dubinko, Micah (2003). XForms Essentials. Sebastopol, CA; Farnham: O'Reilly & Associates . ISBN 0-596-00369-2Archivado desde el original el 15 de septiembre de 2008. Consultado el 24 de abril de 2005 .
Enlaces externos
- Recursos de XForms en el W3C
- El grupo de usuarios de XForms
- Preguntas frecuentes sobre XForms 1.0
- XForms 1.1 fue una recomendación del W3C el 20 de octubre de 2009
- Borrador de trabajo de XForms 2.0
- XForms 2.0: Módulo de expresiones XPath
- Una breve introducción a XForms para autores HTML por Steven Pemberton
- Referencia rápida de XForms 1.1
- Implementaciones de XForms
- El Grupo de Trabajo de Formularios (interés histórico)
- XForms 1.0 (tercera edición) fue una recomendación del W3C el 29 de octubre de 2007
- Formularios XSLT
- Formularios X de Smartsite