XForms 使用 XPath 對數據急性尋址。這個過程被稱為綁定。
XForms 和 XPath
XForms 綁定
XForms 使用兩個部分來定義數據:XForms 模型和 XForms 用戶界面。
XForms 模型是針對數據的一個 XML 模板(實例),而 XForms 用戶界面是對數據輸入和顯示的描述。
XForms 使用 XPath來定義這個兩個部分的連接。這被稱為綁定(binding)。
XPath
XPath 用于定義 XML 文檔的各部分的 W3C 標準語法。
XPath 使用路徑表達式來標示 XML 文檔中的節點。這些表達式與您在計算機系統中看到的文件路徑表達式非常類似。
XPath 表達式:
/person/fname
對 XML 文檔中的 fname 節點進行尋址:
<person> <fname>David</fname> <lname>Smith</lname> </person>
在我們的 XPath 教程 中學習更多有關 XPath 的知識。
使用 Ref 進行綁定
XForms 模型是這樣的:
<instance> <person> <name><fname/>
<lname/>
</name> </person> </instance>
XForms 用戶界面可使用 ref屬性來捆綁<input> 元素:
<input ref="name/fname"
> <label>First Name</label> </input> <input ref="name/lname"
> <label>Last Name</label> </input>
上面例子中的 ref="name/fname" 屬性是一個指向實例模型中 <fname> 元素的 XPath 表達式。它可將輸入域捆綁到正從表單收集數據的 XML 文檔(實例)中的 <fname> 元素。
XForms 用戶界面也可以使用引用:
<input ref="/person/name/fname"
> <label>First Name</label> </input>
<input ref="/person/name/lname"
> <label>Last Name</label> </input>
在上面的例子中,XPath 表達式起始部位的正斜杠 (/) 指示 XML 文檔的根。
使用 Bind 進行綁定
XForms 模型是這樣的:
<model> <instance> <person> <name><fname/>
<lname/>
</name> </person> </instance> <bind nodeset="/person/name/fname" id="firstname"/> <bind nodeset="/person/name/lname" id="lastname"/> </model>
XForms 用戶界面可使用 bind屬性來捆綁<input> 元素:
<input bind="firstname"
> <label>First Name</label> </input> <input bind="lastname"
> <label>Last Name</label> </input>
為什么會有兩種將輸入控件元素捆綁到實例數據的方法呢?
怎么說呢,當您在復雜的應用程序中開始使用 XForms 時,您會發現,使用 bind 進行綁定是一種更靈活的處理多重表單和多重實例模型的方法。
上一篇: XML DOM - XPathExpression 對象 下一篇: XML DOM 解析器錯誤(Parser Errors)