理解XForm——学习IBM DW的资料 (3)

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

1、XForm灵活的客户端数据校验功能

数据验证一般包括三种类型:

完整性(Completeness):用户必须填充所有要求的字段。有时候,某个字段是否必须填充依赖于另一个字段的值。比如,只有当用户使用信用卡支付时才需要信用卡号。

数据类型(Data types): 数字必须是数字、日期必须是日期,依次类推。

合理性(Appropriateness):电话号码应该只包含数字,或者还可以包含与区号有关的短线和括号。邮政编码必须有 5 个数字组成,还可以带有短线和“加四”号码。

XForm提供Model中数据节点的类型绑定机制,如:

<xforms:model id=“payinfo“>

<xforms:submission action="http://www.example.com/orderform.php"

method="post"/>

<xforms:instance xmlns="">

<paymentinfo>

<method></method>

<cardtype></cardtype>

<cardnumber></cardnumber>

<expdate></expdate>

</paymentinfo>

</xforms:instance>

<xforms:bind ref="paymentinfo" type="ccnumber"/>

<xsd:schema>

<xsd:simpleType name="ccnumber">

<xsd:restriction base="xsd:string">

<xsd:pattern value="\d{14,18}"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:schema>

</xforms:model>

2、强制输入

...

</xsd:schema>

<xforms:bind ref="paymentinfo/cardnumber"

required="true()"

type="ccnumber"/>

</xforms:model>

...

3、带条件的强制输入

如只有当用户选择信用卡支付时才要求输入信用卡号:

...

</xsd:schema>

<xforms:bind ref="paymentinfo/cardnumber"

relevant="paymentinfo/method = 'cc'"

required="true()"

type="ccnumber"/>

</xforms:model>

4、只读字段

如“单价”字段不允许修改

...

</order>

</xforms:instance>

<xforms:bind ref="order/soaps/item/unitprice"

readonly="true()"/>

</xforms:model>

...

5、计算字段

如“总价”=数量 * 单价:

...

</order>

</xforms:instance>

<xforms:bind ref="order/soaps/item/unitprice" readOnly="true()"/>

<xforms:bind ref="order/soaps/item/totalprice"

calculate="../qty * ../unitprice"/>

</xforms:model>

...

6、bind元素的其它属性

constraint:该属性设置任意的约束。比如,开发人员可以限制某个节点比另一个小。

maxOccurs 和 minOccurs:这两个属性确定表单中可以出现多少个项。

p3ptype:该属性把一个节点绑定到用户私有工作文件中的信息。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航