XForms en XPath

Aanbevolen cursus:

XForms gebruikt XPath om gegevens direct te adresseren. Dit proces wordt binding genoemd.

XForms-koppeling

XForms-model is een XML-sjabloon (voorbeeld) voor gegevens, terwijl de XForms-gebruikersinterface een beschrijving is van de invoer en weergave van gegevens.

XForms gebruikt XPath om de verbinding tussen deze twee delen te definiëren. Dit wordt genoemdKoppeling (binding).

XPath

XPath wordt gebruikt om de W3C-standaardgrammatica voor de verschillende delen van een XML-document te definiëren.

XPath gebruikt padexpressies om knopen in een XML-document te identificeren. Deze expressies zijn zeer vergelijkbaar met de padexpressies die u in computerbesturingssystemen ziet.

XPath Expressie:

/person/fname

Adresseren van de fname-knoop in het XML-document:

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

In onze XPath Handleiding Meer te leren over XPath.

Binden met Ref

XForms modellen zijn zo:

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

De XForms gebruikersinterface kan gebruiken ref eigenschappen omkoppeling <input> Element:

<input ref="name/fname">
<label>Voornaam </label>
</input>
<input ref="name/lname">
<label> Achternaam </label>
</input>

De ref="name/fname"-eigenschap in het voorbeeld is een XPath-expressie die verwijst naar het <fname>-element in het voorbeeldmodel. Het kan de invoerveldenkoppelingnaar de XML-document (voorbeeld) die gegevens van het formulier verzamelt (voorbeeld).

XForms gebruikersinterface kan ook referenties gebruiken:

<input ref="/person/name/fname">
<label>Voornaam </label>
</input>
<input ref="/person/name/lname">
<label> Achternaam </label>
</input>

In het bovenstaande voorbeeld geeft de XPath expressie met het rechte streepje (/) aan dat de schuin streepje (/) de wortel van het XML-document aangeeft.

Gebruik Bind voor binding

XForms modellen zijn zo:

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

De XForms gebruikersinterface kan gebruiken bind eigenschappen omkoppeling <input> Element:

<input bind="firstname">
<label>Voornaam </label>
</input>
<input bind="lastname">
<label> Achternaam </label>
</input>

Waarom zijn er twee manieren om invoer controle elementen te binden aan instantie gegevens?

Wat te zeggen is, wanneer je begint met het gebruiken van XForms in complexe toepassingen, merk je dat het binden van bind een flexibelere manier is om meervoudige formulieren en meervoudige instantie modellen te verwerken.