XForms og XPath

Anbefalet kursus:

XForms bruger XPath til at adressere data akut. Dette proces kaldes binding.

XForms binding

XForms model er en XML-skabelon (eksempel) for data, og XForms brugergrænseflade er en beskrivelse af datainput og visning.

XForms bruger XPath for at definere forbindelsen mellem disse to dele. Dette kaldesBinding (binding).

XPath

XPath bruges til at definere W3C-standardgrammatik for XML-dokumentets forskellige dele.

XPath bruger stipluksemål for at identificere noder i XML-dokumenter. Disse udtryk ligner meget de filstipluksemål, du ser i computer_systemer.

XPath udtryk:

/person/fname

Adresse <fname>-knuden i XML-dokumentet:

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

i vores XPath tutorial for at lære mere om XPath.

Brug Ref til at binde

XForms modellen er sådan:

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

XForms brugergrænseflade kan bruge ref egenskab tilbinde <input> element:

<input ref="name/fname">
<label>Fornavn</label>
</input>
<input ref="name/lname">
<label>Afternavn</label>
</input>

I eksemplet er attributten ref="name/fname" en XPath-udtryk, der peger på <fname>-elementet i eksemplar-modelet. Det kan bruges til atbindetil at samle data fra en XML-dokument (eksempel) med <fname>-elementet.

XForms brugergrænseflade kan også bruge referencer:

<input ref="/person/name/fname">
<label>Fornavn</label>
</input>
<input ref="/person/name/lname">
<label>Afternavn</label>
</input>

I det ovenstående eksempel indikerer den positive skråstreg (/) i XPath udtrykket XML-dokumentets rod.

Brug Bind til binding

XForms modellen er sådan:

<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 brugergrænseflade kan bruge bind egenskab tilbinde <input> element:

<input bind="firstname">
<label>Fornavn</label>
</input>
<input bind="lastname">
<label>Afternavn</label>
</input>

Hvorfor er der to metoder til at binde input kontrol elementer til instans data?

Hvad skal jeg sige, når du begynder at bruge XForms i komplekse applikationer, opdager du, at brug af bind til binding er en mere fleksibel måde at håndtere flere formulær og flere instanser modeller på.