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,可省略一般应用程序中的物件,需要与相关联数据结构的转换步骤。

XForms移动设备

优势

实作

启动

Xfolite

JavaRosa

ODKCollect

组完成

另见

参考文献

外部链接