XForms入门

2 XForms入门

本章简单描述XForms,但并未全部描述Xforms的所有功能。 For XForms完整标准的描述, 请参考后续文档。以下小节提供了嵌入XHTML文档的XForms应用程序的完整实例,实例在E.1 XForms In XHTML

2.1 从表述中分离目的或意图

典型的表单由意图(或目的)等与数据集合组成,意图通过创建允许用户提供必需信息的交互式表述实例化, 完成表单返回结果数据。

意图

表述

数据

数据集合

表单控件的布局

注册信息

工作时间列表

收集工作时间的用户界面

工作天数、小时数

购物应用程序

购物的用户界面

订单、 运输、 支付信息

信息采集

WWW页面集成表单界面

用户联系信息

HTML表单不能从表述中分离意图,而且,只能提供由表单捕获的有限的数据,下面列举了XForms的主要优点:

更强的输入

提交的数据是通过由输入验证规则自动生成的代码验证的、有效的数据,使用输入验证规则将有助于客户端验证。

现有架构重用

使用XForms应用程序可以消除副本, 并确保业务逻辑定义内的变更导致的更新验证规则可以无需重新创建验证规则。

外部架构添加

使得XForms创作者能够在基本约束集合之外提供附加约束,并作为 XForms模型的一部分,同时将增强Web应用程序结果的全局可用性。

XML提交

将消除为争利提交数据而自定义服务器端逻辑的需求,接收到的XML实例文档能够直接被应用程序后端验证和处理。

国际化

应用XML 1.0的实例数据确保提交的数据国际化。

增强的可用性

XForms分离内容和表述,用户界面控件封装了所有相关媒体数据(如:标签),,将增强不同形式应用程序的可用性。 XForms用户界面控件是一般的、平台独立的。

多设备支持

高级用户界面控件以及基于意向的用户界面创作使得用户在不同设备间交互成为可能。

公布的事件句柄

与现在用交互脚本进行事件处理不同,通过定义适合于一般事务的基于XML的公布的事件句柄(如:setFocus, message, and setValue),多数XForms文档能被静态分析。

2.2 当前方法:HTML

假设简单的基于HTMLs电子商务表单被创建如下:

实例:HTML 表单

 

<html>

  <head>

    <title>eCommerce Form</title>

  </head>

  <body>

    <form action="http://example.com/submit" method="post">

      <table summary="Payment method selector">

      <tr>

      <td><p>Select Payment Method:</p></td>

      <td><label><input type="radio" name="as" value="cash"/>Cash</label>

      <label><input type="radio" name="as" value="credit"/>Credit</label></td>

      </tr>

      <tr>

      <td><label for="cc">Credit Card Number:</label></td>

      <td><input type="text" name="cc" id="cc"/></td>

      </tr>

      <tr>

      <td><label for="exp">Expiration Date:</label></td>

      <td><input type="text" name="exp" id="exp"/></td>

      </tr>

      <tr>

      <td colspan="2"><input type="submit"/></td>

      </tr>

      </table>

    </form>

  </body>

</html>

某个用户代理可能显示如下:

这个表单未能从表述(表单控件input )中分离意图(数据集合),无法控制获得的一系列名称和值对应的结果,XForms则不同, XForms极大丰富了电子表单的内涵。

2.3 转变到XForms

       XForms语法表述中, 表单由描述表单行为的单元(称为:XForms模型)和描述表单如何表现的单元组成。 XForms 1.0 定义的XForms用户界面, which is a 设备独立的, 平台独立的适合普遍用途的表单控件集合,通过XForms绑定机制,XForms模型实现对用户界面的约束,这种结构允许用户将自己的用户界面添加到XForms表述中,结构形式如下:

最简单的形式允许用户创建新的XForms表单控件而无需实现表单的其他单元, HTML表单转换到Xforms表单,需要在文档的head 单元内定义 model元素:

 

<xforms:model>

  <xforms:submitInfo action="http://examples.com/submit" id="submit"/>

</xforms:model>

通过这种转换,前一个例子可以写成:(这个例子假定缺省的XForms命名空间前缀):

 

<selectOne ref="as">

  <caption>Select Payment Method</caption>

  <choices>

    <item>

      <caption>Cash</caption>

      <value>cash</value>

    </item>

    <item>

      <caption>Credit</caption>

      <value>credit</value>

    </item>

  </choices>

</selectOne>

 

<input ref="cc">

  <caption>Credit Card Number</caption>

</input>

 

<input ref="exp">

  <caption>Expiration Date</caption>

</input>

 

<submit submitInfo="submit">

  <caption>Submit</caption>

</submit>

这个设计具有以下的特性:

  • 单选按钮不难编码实现,因此可以以适当方式在不同设备(如:voice browser)上实现单选("selectOne")。
  • 表单控件通常具有相关联的标题子元素(caption),这是为实现易用性而设计的关键功能。
  • HTML语言中相似,form元素是不能嵌套使用的。 (关于创作多表单文档的详细信息可以参照 2.6 多表单文档 )
  • 简化了表单控件的定义。
  • 可以将数据以XML形式提交。

经过上述变更, XForms处理器 就能够直接提交XML实例数据(instance data). XML实例数据的子节点名由表单控件属性ref定义,本例中表单提交的数据可能如下所示:

<instanceData>

  <as>Credit</as>

  <cc>1235467789012345</cc>

  <exp>2001-08</exp>

</instanceData>

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
FlowPortal BPM 流程管理 FlowPortal采用微软.net技术,能进行可视化免编程的业务流程管理(BPM)平台,经上海易正信息技术有限公司经过10年研发而成。 现该系统已广泛应用于政府、制造、零售、服务、地产等行业领域。 一、能自实施的BPM系统平台 借助内置的微软asp. net规格的表单设计器XForm Designer及其附带的丰富的表单控件元素,IT人员无需编程就可以快速实现表单的电子化迁移,并且制作出来的电子表单使用友好,功能丰富具有专业水准。 一体化完整的BPM解决方案,彻底的免编程设计,从拖拉式流程设计器、表单设计器、报表设计器均符合免编程设计原则,并且,所有产品包括组织结构管理,电子表单、流程设计、报表设计全部符合微软产品用户已有的使用习惯。 基于为广大IT人员熟悉的通用标准,流程描述语言使用微软C#标准,表单使用微软asp. net标准。 二、充分整合现有资源 FlowPortal. net开放的体系架构允许将企业现有IT系统中的组织架构、用户信息,整合到BPM系统使用,不管他们是位于AD、HR还是位于特有的IT系统内。 业务流转时,可以集合存储在不同系统中的数据建立复合业务实体,比如:存储在ERP中的客户、产品信息,存储在HR系统中的人事信息等等 自动化不同系统中业务数据的处理,比如:采购审批通过时,自动在ERP中生成PR单,人事入职流程中,自动在各个系统中建立用户信息。 借助可插拔的体系架构,通过第三方开发,实现对现有信息和系统的利用,比如利用企业特有业务系统存储在InfoSys数据库内的信息。 通过可嵌入的组件,将BPM集成到SharePoint、企业现有IT系统的框架内。 三、实现无限可能 流程定义时,赋予企业用户使用微软C#扩展流程功能的能力,比如用C#表达逻辑实现一个会签表决规则,又如:流程提交时使用HR系统中的数据验证申请合法性。 表单设计上,借助微软asp. net技术,扩展表单功能,由于表单设计器生成的是标准的asp. net表单,使得企业可以借助微软asp. net的强大功能实现复杂的需求。 可插拔的体系架构,允许企业将BPM体统和企业现有业务系统整合到一起,比如:利用企业现有的弹出式消息系统发送BPM通知消息。 四、有效保障流程管理工作持续、深入开展 可靠、稳定、高效的系统使得BPM系统深入人心 快速实施能力、良好的最终用户使用体验让IT部门轻松,使用者满意,会促使更多的流程需求被建议并实施优异的可扩展能力,为确保IT部门始终有能力满足最终用户的各种需求提供保障。 FlowPortal. net的客户都在持续深入得使用BPM系统,新的流程需求被持续提出并实施上线,不断拓展到新的工厂、事业部门、甚至拓展到集团内其它国家和地区的工厂、企业。 五、随时随地获得所需信息 企业可以使用内置的报表工具按需定制报表,实时查看企业关键业务数据。 FlowPortal. net的报表可以执行数据的钻取,渐入式分析,查询,图形化展示。 FlowPortal. net的报表可以跟据流程的权限定义,使得每个部门的领导只看到各自管辖部门内员工所发起业务的统计数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FlySpace

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值