XForms/背景
XForms标准的出现源于许多人希望将网络用于超越文档链接的更多用途。万维网标准的最初设计引入了许多创新概念,包括URL、HTML标记语言和HTTP协议。
但除了创新之外,优雅的表单处理并非初始HTML语言的设计目标之一。事实上,许多高级输入字段是在HTML变得流行之后才添加到HTML规范中的。
有一点很明确:干净的MVC概念的引入从未成为最初HTML规范的一部分。人们曾多次尝试将更好的控件引入浏览器和HTML语言,但这些尝试大多都失败了,原因有四点
- 它们要么是针对特定问题的浏览器或供应商特定的解决方案
- 它们没有整合XML Schema、XPath和CSS的主流发展
- 它们没有考虑到对清晰关注点分离的需求
- 它们没有满足了解MVC架构优势的应用程序架构师的严格需求
因此,许多此类点解决方案已被丢弃,或者仅被某些供应商小范围使用。
大约1997年,W3C开始解决这些用户的担忧,并研究如何以更好的方式处理Web表单。他们意识到数据元素验证是一个主要问题,并且重新发明XML Schema中已有的验证工具只会重复工作。
第一个XForms草案规范于2000年4月6日发布。从那时起,它经历了多次修订,最新版本(1.1)于2006年3月发布。
如今,XForms标准解决了几个Web表单开发问题
- 模型-视图-绑定架构
- 高级功能
- 所有浏览器集成的精确规范
- 无需依赖JavaScript编程即可扩展
- 关于表单元素如何更新的内置假设
每个XForms应用程序都嵌入了当表单元素发生变化时自动重新计算值的功能。如果您的表单很复杂,并且包含计算规则,那么此功能对于避免编写手动重新计算代码至关重要。大多数JavaScript表单库要求作者不仅指定表单规则,还指定这些规则必须执行的顺序。XForms中通过一种自动化方法来确定重新计算的顺序,取代了这种缓慢且痛苦的表单作者指定的重新计算顺序。
XForms应用程序实现此功能的方式是基于最佳图算法自动确定重新计算顺序。
关于XForms设计的最重要的论文之一来自以下论文
如果您的表单很简单,只有几个元素并且没有计算规则,那么HTML表单可能是您的一个好选择。如果您的表单包含规则,例如采购订单中的求和和总计计算,那么XForms可能是您的Web表单的理想选择。
有关XForms规范的当前工作草案,您可以访问w3网站