- 浏览: 467146 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
alvin198761:
renzhengzhi 写道我参与过12306余票查询系统的开 ...
别给12306 辩解了 -
renzhengzhi:
我参与过12306余票查询系统的开发,用户请求被前面3层缓存拦 ...
别给12306 辩解了 -
renzhengzhi:
写的很好。
JAVA线程dump的分析 -
liyonghui160com:
说好的附件呢
分布式服务框架 Zookeeper -- 管理分布式环境中的数据 -
ghpaas:
orbeon作为xforms标准的实现,不论其设计器还是运行时 ...
XForms 1.1 中文翻译—第1章 关于XForms标准
2 XForms导论 XForms是在多年HTML表单经验的基础上设计的。HTML表单组成了电子商务革命的支柱,表现了它们的价值,也显示了许多值得改进的地方。 对比XForms与HTML表单,除了XForms是XML格式之外,其主要区别是分离了收集的数据和收集这些值的控件标记(markup)。通过这样,不仅使得XForms更加容易管理(什么数据提交到哪里一目了然),也更易于表单的重用,因为表单的底层基础部分(数据部分)不再与使用它的页面强制性的绑定。 第二个重要的区别是XForms虽然设计成与XHTML集成,但不再局限与仅是XHTML语言的一部分,而可以集成进其他合适的标记语言。 XForms努力改进了表单的创建、重用、国际化、易用性、可用性和设备无关性。下面对使用XForms的主要优点进行了总结: 强数据类型 提交的数据是强数据类型的,可以使用现有的工具进行检查。这减少了对往返于服务器间的确认的需求而加速了表单填充。 XML提交 这消除了通过定制服务器端逻辑来整合提交的数据到后台应用的需求。接收到的XML实例文档可以被后台应用直接验证和处理。 重用已有的模式(schema) 这消除了重复,并且保证是底层的业务逻辑改变导致的验证(validation)规则更新,不需要在XForms应用中重新创建验证约束 增加外部规则 这使得XForms表单设计者可以超出后台提供的基本约束集。提供额外的约束作为XForms模型的一部分增强了生成的Web应用的整体可用性。 国际化 实例数据使用XML1.0从而确保提交的数据是国际化的。 增强的易用性 XForms分离了内容和表现。用户界面控件包装了所有相关的元数据(例如标签),因此增强了使用不同表现形式(modalities)时应用的易用性。XForms用户界面控件是通用的和设备无关的。 多设备支持 用户界面控件的高层次本质和随之产生的基于目的的用户界面创建方式使得可以是用户交互应用到不同的设备。 脚本的更少使用 通过定义基于XML声明的事件处理器(event handlers)(覆盖了普通用例),大部分XForms文档的大部分可以静态分析,减少了事件处理器对必要的脚本的需求。 2.1 例子 在XForms方式中,表单由两部分组成:一部分描述了表单做什么,称为XForms Model,另一部分描述了如何显示表单。 一个简单的电子商务表单可能显示如下: 很明显,我们要收集代表使用现金或信用卡的一个值,以及如果使用信用卡,卡号和过期日期的值。 这可以在XForms model元素中表示,它通常被包含在XHTML中的head部分。 <xforms:model> <xforms:instance> <ecommerce xmlns=”"> <method/> <number/> <expiry/> </ecommerce> </xforms:instance> <xforms:submission action=”http://example.com/submit” method=”post” id=”submit” includenamespaceprefixes=”"/> </xforms:model> 这只是说明了我们要收集三部分信息(注意,我们还没有谈及他们的类型),并使用action属性中的URL提交这些信息。 XForms定义了一个设备无关、平台无关的表单控件集合,这个集合适用于通用的目的。这些控件通过XForms绑定机制绑定到XForms Model上。在这个简单的例子中是使用控件的ref属性。在XHTML中,这个标记通常出现在body部分(注意,我们在这故意漏掉XForms的名称空间前缀): <select1 ref=”method”> <label>Select Payment Method:</label> <item> <label>Cash</label> <value>cash</value> </item> <item> <label>Credit</label> <value>cc</value> </item> </select1> <input ref=”number”> <label>Credit Card Number:</label> </input> <input ref=”expiry”> <label>Expiration Date:</label> </input> <submit submission=”submit”> <label>Submit</label> </submit> 注意这个设计的如下特征: 可以绑定表单控件到模型的能力使得把XForms集成到其他宿主语言(host language)简单化了,因为可以使用任何表单控件的标记绑定到模型。 2.2 提供XML实例数据 XForms Processor可以直接提交XML格式的数据,在这个例子中,提交的数据如下所示: <ecommerce> <method>cc</method> <number>1235467789012345</number> <expiry>2001-08</expiry> </ecommerce> XForms处理器通过这个实例数据跟踪部分完成的表单的状态。如例子所示,实例数据的初始值可以提供或为空。instance元素本质上保存了当用户填写表单时更新的XML文档。这使得表单设计者可以完全控制提交的XML数据的结构,包括名字空间信息。当表单被提交时,实例数据被序列化成XML文档。下面是前面的例子的另一个版本: Model <xforms:model> <xforms:instance> <payment method=”cc” xmlns=”http://commerce.example.com/payment”> <number/> <expiry/> </payment> </xforms:instance> <xforms:submission action=”http://example.com/submit” method=”post” includenamespaceprefixes=”#default”/> </xforms:model> 在这个例子中,提交的数据如下所示: Submitted Data <payment method=”cc” xmlns=”http://commerce.example.com/payment”> <number>1235467789012345</number> <expiry>2001-08</expiry> </payment> 这个设计有如下特性: 为了连接实例数据和表单控件,需要改变表单控件的ref属性来指向实例数据中的正确部分,使用如下绑定表达式(binding expression): Binding Form Controls to Instance Nodes with ref … xmlns:my=”http://commerce.example.com/payment” … <xforms:select1 ref=”@method”>…</xforms:select1> … <xforms:input ref=”my:number”>…</xforms:input> … <xforms:input ref=”/my:payment/my:expiry”>…</xforms:input> 绑定表达式是基于Xpath[XPath1.0]的,包括使用@符号来指向属性,如上所示。注意,为了展示的目的,前两个表达式使用了XPath上下文节点,这个节点默认是最高层元素(在这是my:payment)。第三个表达式显示了绝对路径。 2.3 值约束 XForms允许在表单填充时检查数据的有效性。在没有明确指定收集到的数据的类型信息的情况下,所有的值都以字符串形式返回,但是,可以在实例数据中设置值的类型。在这个例子中,number应该只接受14到18位之间的数字,expiry只接受有效的月/日期组合。 另外,number和expiry的信用卡信息表单控件只有在method中的”cc”选项被选中时是相关的(relevant),而且在这种情况下是必需的。 通过指定一个另外的XForms组成部分—模型条目特性(model item properties),表达设计者可以在表单中包含丰富的的有效性验证信息。这些信息可以从XML Schemas或者另外的XForms专有的补充(specific additions),如relevant中获得。这些特性(应该指relevant)出现在bind元素中,而Schema约束(应该指type)在XML Schema段中表达,可以在内部或外部,例如: Declarative Validation with Model Item Properties … xmlns:my=”http://commerce.example.com/payment”… <xforms:model> … <xforms:bind nodeset=”/my:payment/my:number” relevant=”/my:payment/@method = ‘cc’” required=”true()” type=”my:ccnumber”/> <xforms:bind nodeset=”/my:payment/my:expiry” relevant=”/my:payment/@method = ‘cc’” required=”true()” type=”xsd:gYearMonth”/> <xs:schema …> … <xs:simpleType name=”ccnumber”> <xs:restriction base=”xsd:string”> <xs:pattern value=”\d{14,18}”/> </xs:restriction> </xs:simpleType> … </xs:schema> </xforms:model> 注意: 在上面的例子中,因为计算表达式(computed expression)的求值上下文节点是通过绑定表达式(参见 7.2求值上下文)决定的,所以relevant表达式使用了绝对路径XPath符号(以/开始),因此,在上面的第一个bind relevant中的相对节点路径应该是相对于 2.4 一个文档中包含多个表单 XForms处理对一个单独的文档中可以包含的独立表单的数量没有限制。当一个单独的文档包含多个表单时,每个表单需要一个独立的model元素,并有一个id属性,以此可以在包含它的文档中的别处引用它。 另外,表单控件应该指定哪个model元素包含了它们绑定的实例数据。这通过作为绑定属性一部分的model属性来实现。如果没有对绑定元素指定model属性,则使用最近祖先绑定元素的model属性,如果没有,则使用文档中的第一个XForms Model。这个技术叫做’范围解析’(scoped resolution),在XForms中频繁的使用。 下面的例子对电子商务表单添加了一个民意测验。 Adding a poll model <xforms:model> <xforms:instance> …payment instance data… </xforms:instance> <xforms:submission action=”http://example.com/submit” method=”post”/> </xforms:model> <xforms:model id=”poll”> <xforms:instance> <helpful/> </xforms:instance> <xforms:submission id=”pollsubmit” …/> </xforms:model> 另外,下面的标记将在出现在文档的body部分: Form Controls for poll model <xforms:select1 ref=”/helpful” model=”poll”> <xforms:label>How useful is this page to you?</xforms:label> <xforms:item> <xforms:label>Not at all helpful</xforms:label> <xforms:value>0</xforms:value> </xforms:item> <xforms:item> <xforms:label>Barely helpful</xforms:label> <xforms:value>1</xforms:value> </xforms:item> <xforms:item> <xforms:label>Somewhat helpful</xforms:label> <xforms:value>2</xforms:value> </xforms:item> <xforms:item> <xforms:label>Very helpful</xforms:label> <xforms:value>3</xforms:value> </xforms:item> </xforms:select1> <xforms:submit submission=”pollsubmit”> <xforms:label>Submit</xforms:label> </xforms:submit> 这里的主要区别是使用了model=”poll”来指定实例。注意,submit通过ID指向了submission元素,不需要绑定属性。 更多的Xforms的例子可以在 附录H 完整的XForms例子中找到。
/my:payment/my:number
的。
评论
设计器:仅仅是提供一个简单的工具,其实更加复杂的功能还需要开发人员手动编码。
并且需要花费大量的时间去熟悉、学习orbeon自身的功能。
运行时:提供的运行时开发人员几乎不能随便修改,造成不够灵活,譬如需要提供一个进度条、定制展现样式、定制对话框等,非常的复杂。
在此向博主及各位推荐使用GForms开发平台http://blog.csdn.net/ghpaas/article/details/30222989,GForms开发平台让开发人员甚至非技术人员在短短几分钟内创建全功能的展现服务,让开发团队更加适应客户和市场的需求,从而提高客户服务和速度实现收益。该开发平台提供可视化的设计器、运行时,设计器基于eclipse开发,非常的简单,完全实现xforms1.1标准,并且支持开发人员编写样式、javascript处理函数等。
GForms开发平台百度上有大量资料,且有iaas云管理平台Demo例子: http://yun.baidu.com/s/1bnznec3#dir/path=%2Fghorse
发表评论
-
京东云疑似关闭3款产品,大洗牌开始?
2015-02-11 11:02 1500云计算市场的洗牌开 ... -
.NET开源核心运行时,且行且珍惜
2014-12-25 15:39 1823背景 2014年11月12日,ASP.NET之父、微软云 ... -
IT人的良好阅读习惯
2014-01-23 09:52 1385一、学会挑剔只看经典 人的精力是十分有限的,只能有 ... -
程序员,你幸福吗?
2013-12-25 09:45 2641科学家们喜欢标新立 ... -
你是一个努力工作的程序员,还是一个懒惰的程序员?
2013-12-24 11:40 2866当一个人在完成一件 ... -
关于程序员的59条搞笑但却真实无比的编程语录
2013-12-19 12:53 1813我收集了很多编程语录,基本上都跟程序员的生活有关。这些语录涉 ... -
博客标题
2011-11-16 17:19 751博客内容博客内容 -
Unicode编码表
2011-09-05 14:12 22501 Unicode编码表 Unic ... -
用VC实现将CView自绘图形输出为bmp文件
2011-01-19 10:48 1296void CTrainView::SaveAsBmp(CStr ... -
市场上还有多少沈昌宇 揭秘庄家操盘手法
2010-10-21 13:29 809近日,再三在股市兴 ... -
如何判断某只股票有无庄家
2010-10-21 13:08 1134面对1700多只股票,哪 ... -
庄家出货前兆的五种情况
2010-10-21 13:04 681第一,目标达到。什么叫目标达到?神光公司有一个加倍取整的理 ... -
块设备
2010-09-03 15:10 728I/O设备大致分为两类:块设备和字符设备。块设备将信息存储在固 ... -
UNIX 网络协议的深度分析
2010-07-15 21:49 982引言 网络已经是无处不在,很多时候我们都会利用网络与不同 ... -
三部委发文规范“第二套房”的认定标准(全文)
2010-06-05 11:58 676中新网6月5日电 住房和 ... -
你是个软件架构师吗?
2010-05-10 13:16 653开发和架构的界限难 ... -
攻击Google的Jarlsberg,学习安全漏洞知识
2010-05-10 10:52 836很多人都想知道黑客是如何攻击并进入到系统的,为了帮助他们, ... -
Http协议的Delete和Put方法是做什么的?怎么用?
2010-04-23 15:13 1977一般来说,Web服务器默认的只支持Post和Get这两种 ... -
Git 中文教程
2010-04-13 11:32 940感谢http://www.bitsun.com/documen ... -
x3650 - BIOS升级程序
2010-04-08 16:10 1873适用机型: 所有System x3650 ...
相关推荐
官方XForms入门文档教程
XForms用schema(xsd)验证的一个简单的例子
使用 XForms 和 Ajax 创建自动建议表单字段(这个版本稍微有点BUG,大家要下的下我后来发布的那个版本,删不掉,不好意思!)
讲述用XML来开发网页表单的电子图书.
欢迎使用XPath下一页 这是W3C XPath Next Community Group的github项目: : XPath Next是一个收集来自以下方面的XPath标准演进需求的地方: ... XForms: XForms 1.0 , XForms 1.1 , XForms 2.0 XProc: XProc
XForms 是下一代的 HTML 表单。 在我们的 XForms 教程中,您将学习如何在应用程序中开始应用 XForms。
本文阐释了创建 XForms 表单的基础知识,包括表单自身的结构、基本控件或字段以及最常用的提交选项。Web 表单已经存在很长时间,但是只能完成屈指可数的几种功能。XForms 提供了很多新的功能,包括改进的交互性和更...
使用 XForms 和 Ajax 创建自动建议表单字段
XForms客户端处理器的研究与实现.pdf
Praekelt XForms 服务 使用和构建的 RESTful XForms 处理服务。配置该服务的配置当前位于example_conf.yml 。 要将其替换为您自己的,只需将文件路径指定为运行时参数(见下文) Dropwizard 还提供有效应用程序配置...
第2章 良构的XML文档 第3章 XML名称空间 第Ⅱ部分 验证 第4章 文档类型定义 第5章 XML Schema 第6章 RELAX NG 第Ⅲ部分 处理过程 第7章 XPath 第8章 XSLT 第Ⅳ部分 数据库 第9章 XML查询语言——XQuery 第10章 XML与...
xforms 技术在RIA中的应用,内容与表现的分离,内容数据模型的建立和维护。
Addison.Wesley.XForms.XML.Powered.Web.Forms.eBook-LiB.chm Addison.Wesley.XForms.XML.Powered.Web.Forms.eBook-LiB.chm
基于Xforms的可视化智能表单系统,宋全旺,张超林,信息化的不断发展对表单技术提出了更高的要求。首先,表单需求量的不断增加,要求根据业务的需求变化,快速、灵活的定制表单。其
XForms后端允许编辑Web表单中的XML文档,并且自动维护源实体和目标实体之间的关系。 也就是说,当CPF关系被添加到指向同一系统内另一个实体的源文档中时,目标文档将被更新以将CPF关系插入回源中。 这些CPF关系的...
用于快速XML和Web应用程序开发的工具包,包括完整的XForms 1.1实现以及丰富的小部件和布局容器集。 用于集成自定义控件,功能和数据连接器的可扩展接口。
xslt2xforms 项目不再维护。 现在你应该看看 Concentré --- xslt2XForms 是一个“W3C XFORMS”跨浏览器处理器,使用带有 JAVASCRIPT 和 CSS 的 XSL 样式表到 r
WSDL2XForms为给定的WSDL文件的操作生成XForms。 该工具是使用Java和XSLT实现的。
可以使用 XSLT 为大多数 XML 应用程序生成 XForms。 该项目提供了这样的 XSLT 样式表,作为基于给定 XML 示例文件的一些基本输入和输出 XForms 的起点。
第2章 Canvas API 22 2.1 HTML5 Canvas概述 22 2.1.1 历史 22 2.1.2 canvas是什么 23 2.1.3 canvas坐标 23 2.1.4 什么情况下不用canvas 23 2.1.5 替代内容 24 2.1.6 CSS和canvas 25 2.1.7 浏览器对...