XForms
XForms是用于从 Web表单收集输入的XML格式,是 HTML/XHTML 表单下一代的继承者;XForms 1.0(第三版)于2007年10月29日发布。最初的 XForms规范于 2003年10月14日成为 W3C官方推荐标准,而引入了若干改进的XForms 1.1在 2009年10月20日达到了相同的状态。它采用了 XML的格式。XForms被设计为具有足够的通用性,可以独立的方式使用,也可用 XHTML以外的表示语言来描述用户界面和一组常用的数据操作任务。
与一般表单的差异
与一般的网页表单(最初以 HTML定义)相反,XForms 的设计使用了模型-视图-控制器(MVC)方法。该模型包含一或多个描述表单数据的XForms模型,对这些数据的约束和提交。该视图描述了表单中显示的控件,如何将它们组合在一起以及它们所绑定的数据。CSS则用于描绘表单的外观呈现。
XForms文档可如同网页表单一样简单(只需指定模型部分中的提交元素,并将控件放置在主体中),但 XForms包含许多高级功能。例如,要求最新的数据并在运行时更新表单,这和使用 XMLHttpRequest/AJAX(除非脚本除外)非常相似。表单的作者若根据 XML模型:需验证用户数据的类型、需要某些数据,禁用输入控件或根据情况修改部份表单、强制数据之间的特定关系、输入可变长度的数据数组、输出从表单数据导出的计算值、使用 XML文档预填条目,回应(与提交时相比),并根据所显示的设备(桌面浏览器与移动设备与纯文本等)修改每个控件的样式。通常不需要使用 JavaScript等语言编写脚本。但是,XForms确实包含一个事件模型,以及用于实现更复杂表单行为的操作。XForms 的操作和事件处理是使用 XML方言,而不以 JavaScript脚本语言来控制。
与网页表单一样,XForms可以用各种非 XML提交协议(multipart/form-data,application/x-www-form-urlencoded),但是一个新特性是XForms能将数据以 XML格式发送到服务器。XML文档也可用于在表单中预填数据。由于 XML是一种标准,因此具备了很多提交时解析和修改数据的工具;传统形式的类似工具也存在。XForms本身即是一种 XML方言,因此可以使用 XSLT 从其它 XML文档创建和创建。XML模型纲要(schema)可使用转换从而自动产生 XForms,并可将 XForms转换为 XHTML表单。
软体支援
在撰写本文时,现在流行的网页浏览器均无原生支援 XForms。但是有各种浏览器插件存在,客户端扩展和伺服器/客户端的解决方案。以下列出了一些实现的软体技术:
- 在 Firefox 的 XForms扩展是 Mozilla项目的一部分。XForms 1.0 SE 的支援并不完整,但涵盖了大部分规范,但 HTML表格中使用基于重复属性的明显例外。该扩展可用于 Firefox 2和Firefox 3,但未升级能支援 Firefox 4及更高版本。2011年7月首席开发人员写道,XForms支援将不再更新;最后在 Firefox 19 放弃了对 XForms 的支援。
- IBM Lotus Forms支援基于 XForms的纯 XML表单的开发和部署。有建立在 Eclipse 可视化设计环境和客户端查看器上的试用版,这些查看器可在网页浏览器中运行 XForms,也可作为独立的桌面应用程序运行。
- OpenOffice.org 版本2.0 和 LibreOffice 支援 XForms。
实作技术比较
XRX 架构
由于 XForms可轻易地编辑复杂的 XML数据,因此将 XForms 与利用 REST介面的 XML资料库结合使用有很多优势。三种技术的组合(客户端上 XForms,伺服务器上 REST介面和 XQuery编程)统称为 XRX 应用程序开发。XRX 架构以其简单性而闻名,在客户端和资料库中都使用 XML,可省略一般应用程序中的物件,需要与相关联资料结构的转换步骤。