跳转到内容

XForms/Bind

来自维基教科书,开放世界中的开放书籍

在构建 XForms 应用程序时,您将学习三个核心概念

  1. 模型是数据元素的树
  2. 演示是数据元素的树
  3. 为了构建您的表单,这两棵树需要连接在一起 - 这称为“绑定”

本食谱中的许多练习都提供了此绑定的示例。此过程是这种工作方式的一个小例子。在实践中,有很多方法可以将用户界面绑定到模型。

屏幕图像

[编辑 | 编辑源代码]

屏幕图像类似于之前示例中的输入程序。此示例有两个输入字段用于输入人员的姓和名,以及两个输出控件。

示例程序

[编辑 | 编辑源代码]
<html
   xmlns="http://www.w3.org/1999/xhtml"
   xmlns:xf="http://www.w3.org/2002/xforms" 
   xmlns:xs="http://www.w3.org/2001/XMLSchema" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <head>
      <title>Your Title Here</title>
      <xf:model>
         <xf:instance xmlns="">
            <data>
               <PersonGivenName/>
               <PersonSurName/>
            </data>
         </xf:instance>
         <xf:bind id="PersonGivenName" nodeset="/data/PersonGivenName"/>
         <xf:bind id="PersonSurName" nodeset="/data/PersonSurName"/>
      </xf:model>
   </head>
   <body>
       <xf:input bind="PersonGivenName" incremental="true">
          <xf:label>Input First Name:</xf:label>
       </xf:input>
       <br/>
       <xf:input bind="PersonSurName" incremental="true">
          <xf:label>Input Last Name:</xf:label>
       </xf:input>
       <br/>
       <xf:output bind="PersonGivenName">
          <xf:label>Output First Name:</xf:label>
       </xf:output>
       <br/>
       <xf:output bind="PersonSurName">
          <xf:label>Output Last Name:</xf:label>
       </xf:output>
   </body>
</html>

以下是模型中绑定数据元素路径到标识符的两行

   <xf:bind id="PersonGivenName" nodeset="/data/PersonGivenName"/>
   <xf:bind id="PersonSurName" nodeset="/data/PersonSurName"/>

请注意,bind 使用 nodeset,而不是 ref 来指定实例文档中叶元素的路径名。

完成此操作后,每个输入或输出数据元素的用户界面元素只需添加 bind 属性

  <xf:input <b>bind="PersonGivenName"</b>>

我们还应该注意到,在本例中,每个数据元素只有一个输入和一个输出。这并不一定是必须的。一个输入可以绑定到多个输出,一个输出也可以依赖于多个输入。一个例子就是使用 bind 语句的“calculate”属性。

绑定属性

[编辑 | 编辑源代码]

以下是 bind 元素的属性及其使用说明

类型

  • 将实例变量与特定的 XML 架构数据类型关联
  • 扩展或限制架构类型定义

相关

  • 根据模型中数据元素的值启用或禁用控件

必需

  • 根据模型中数据元素的值有条件地使字段必填

只读

  • 根据模型数据元素(例如角色)禁用字段编辑

约束

  • 在两个或多个数据元素之间创建复杂的架构约束
  • 设置节点集的最小值或最大值的限制

计算

  • 在数据元素之间创建计算依赖关系
  • 根据其他数据元素计算新数据元素的值
  • 在 XForms 中启用类似电子表格的计算
下一页: 加法器 | 上一页: 类似电子表格的更新
首页: XForms
华夏公益教科书