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

类别:.NET开发 点击:0 评论:0 推荐:

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:该属性设置任意的约束。比如,开发人员可以限制某个节点比另一个小。
  • maxOccursminOccurs:这两个属性确定表单中可以出现多少个项。
  • p3ptype:该属性把一个节点绑定到用户私有工作文件中的信息。

本文地址:http://com.8s8s.com/it/it44085.htm