XForms and XPath

XForms 使用 XPath 对数据急性寻址。这个过程被称为绑定。

XForms 绑定

XForms 使用两个部分来定义数据:XForms 模型和 XForms 用户界面。

XForms 模型是针对数据的一个 XML 模板(实例),而 XForms 用户界面是对数据输入和显示的描述。

XForms 使用 XPath 来定义这个两个部分的连接。这被称为绑定(binding)

XPath

XPath 用于定义 XML 文档的各部分的 W3C 标准语法。

XPath 使用路径表达式来标示 XML 文档中的节点。这些表达式与您在计算机系统中看到的文件路径表达式非常类似。

XPath ɗan ɗauɗi:

/person/fname

ka ɗauɗi ɗan ɗauɗi ɗan ɗauɗi XML ɗan ɗauɗi ɗan ɗauɗi <fname> ɗan ɗauɗi:

<person>
   <fname>David</fname>
   <lname>Smith</lname>
</person>

Na XPath ɗan ɗauɗi ka ɗauɗi ɗauɗi ɗan ɗauɗi XPath ɗan ɗauɗi ɗan ɗauɗi.

Ayya Ref domin girmama

The XForms model is like this:

<instance>
  <person>
    <name>
      <fname/>
      <lname/>
    </name>
  </person>
</instance>

The XForms user interface can be used ref Attribute toBinding <input> Element:

<input ref="name/fname">
<label>First Name</label>
</input>
<input ref="name/lname">
<label>Last Name</label>
</input>

Hanyar tsohon ɗan ɗauɗi, attibuti ref="name/fname" wani ɗan ɗauɗi XPath ɗan ɗauɗi ɗan ɗauɗi ɗan ɗauɗi <fname> ɗan ɗauɗi ɗan ɗauɗi. Wannan ɗan ɗauɗi zai iya ɗan ɗauɗi gida ɗan ɗauɗiBindingsannan daga ɗan yiwa XML ɗan ɗauɗi ɗan ɗauɗi ɗan ɗauɗi (ɗan ɗauɗi) dake ɗauɗi <fname> ɗan ɗauɗi.

XForms ɗauɗiɗa ɗa iya ɗauɗi ɗan yiwa:

<input ref="/person/name/fname">
<label>First Name</label>
</input>
<input ref="/person/name/lname">
<label>Last Name</label>
</input>

In the above example, the forward slash (/) at the beginning of the XPath expression indicates the root of the XML document.

Binding with Bind

The XForms model is like this:

<model>
<instance>
  <person>
    <name>
      <fname/>
      <lname/>
    </name>
  </person>
</instance>
<bind nodeset="/person/name/fname" id="firstname"/>
<bind nodeset="/person/name/lname" id="lastname"/>
</model>

The XForms user interface can be used bind Attribute toBinding <input> Element:

<input bind="firstname">
<label>First Name</label>
</input>
<input bind="lastname">
<label>Last Name</label>
</input>

Why are there two ways to bind input control elements to instance data?

What can I say, when you start using XForms in complex applications, you will find that using bind for binding is a more flexible way to handle multiple form and multiple instance models.