XML模式:XForms和客户发片
XForms
在构建表单时,我们都希望能清晰地定义其中的各种成分——无论是输入框、选项按钮还是下拉列表,最好还能自带数据验证。这就不得不提XForms这个XML标准了。它与Web开发者们早已熟悉的HTML、XHTML表单标记一脉相承,并且即将成为XHTML 2.0标准的核心组成部分。
XForms的架构其实非常直观,遵循经典的模型-视图-控制器模式。简单来说,“模型”就是表单的蓝图,它规定了有哪些字段、这些字段需要遵守什么约束条件,以及数据最后要提交到哪里。而“视图”则负责将蓝图中定义的控件和分组在页面上呈现出来。至于这些控件长什么样、如何布局,依然是交给CSS来全权打理。
如果说传统的HTML表单定义比较粗略,那么XForms标准则向前迈进了一大步。它通过对表单信息进行更细致的划分,轻松实现了以往需要依靠Ja vaScript或Ajax才能完成的动态交互效果。这就好比给表单注入了“智能”。
具体效果如何?我们来看一个简单的例子。下面的代码片段展示了一个包含文本输入框和弹出选择框的典型XForms表单。
清单 11. 简单的文本输入框和弹出选择框
XForms Sample
Title:
Mr
Mr
Mrs
Mrs
First name:
Last name:
Output:
如果想直观地体验一下,可以借助Firefox的XForms扩展来查看这个表单的实际效果。渲染出来的界面如图2所示。
图 2. 使用 Firefox XForms 扩展查看 XForms 表单

客户发片
把客户发片系统从繁琐的纸质流程升级到自动化处理,是商业领域一个老生常谈却又至关重要的课题。但要设计出合适的发片结构,背后需要的却是不小的功夫,得仔细斟酌其中各种不同的数据类型和那些会反复出现的元素。
过去的经验表明,要实现这类商业信息的顺畅交换,往往意味着必须建立一套极其庞大和复杂的结构与定义。以国际通行的发片信息交换标准为例,动辄包含数百个字段。在没有高效数据交换方法的日子里,想要共享发片、订单这些信息,其难度可想而知。
正是因为缺乏一个统一的标准,许多组织和机构不得不根据自己的需要,对核心发片标准进行各式各样的“魔改”。在这一系列探索中,由OASIS组织牵头开发的标准,或许是目前行业内认知度较高、也获得了众多公司和组织广泛认可的一套方案。
需要说明的是,这套发片结构并非独立存在,它是一个更为宏大的框架——通用商业语言的一部分。这个庞大的生态系统囊括了从下单、开具发片到最终支付的全流程模式与工作流。当然,整个体系的复杂程度远超单篇文章的讨论范围。不过,如果您的目标正是构建一个灵活且具备高度互操作性的系统,那么以UBL作为起点,无疑是一个值得考虑的方向。
