XForms/Bind
外觀
< XForms
在構建 XForms 應用程式時,您將學習三個核心概念
- 模型是資料元素的樹
- 演示是資料元素的樹
- 為了構建您的表單,這兩棵樹需要連線在一起 - 這稱為“繫結”
本食譜中的許多練習都提供了此繫結的示例。此過程是這種工作方式的一個小例子。在實踐中,有很多方法可以將使用者介面繫結到模型。
螢幕影像類似於之前示例中的輸入程式。此示例有兩個輸入欄位用於輸入人員的姓和名,以及兩個輸出控制元件。

<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 中啟用類似電子表格的計算