XForms et XPath

Recommandation de cours :

XForms utilise XPath pour adresser les données de manière acute. Ce processus s'appelle le liage.

Liage XForms

Le modèle XForms est un modèle XML pour les données (instance), et l'interface utilisateur XForms est une description de l'entrée et de l'affichage des données.

XForms utilise XPath pour définir la connexion entre ces deux parties. Cela s'appelleLiage (binding).

XPath

XPath est utilisé pour définir la syntaxe W3C standard des différentes parties d'un document XML.

XPath utilise des expressions de chemin pour identifier les nœuds dans un document XML. Ces expressions sont très similaires aux expressions de chemin que vous voyez dans les systèmes informatiques.

Expression XPath :

/person/fname

Pour adresser le nœud fname dans le document XML :

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

dans notre Tutoriel XPath Pour en apprendre davantage sur XPath, consultez notre

Utilisation de Ref pour le liage

Le modèle XForms est ainsi :

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

L'interface utilisateur XForms peut utiliser ref l'attributlier Élément <input> :

<input ref="name/fname">
<label>Nom</label>
</input>
<input ref="name/lname">
<label>Nom de famille</label>
</input>

Dans l'exemple ci-dessus, l'attribut ref="name/fname" est une expression XPath pointant vers l'élément <fname> du modèle d'instance. Il peut accéder au champlierà l'élément <fname> du document XML (instance) collectant les données du formulaire (par exemple).

L'interface utilisateur des XForms peut également utiliser des références :

<input ref="/person/name/fname">
<label>Nom</label>
</input>
<input ref="/person/name/lname">
<label>Nom de famille</label>
</input>

Dans l'exemple ci-dessus, le slash oblique (/) en début d'expression XPath indique la racine du document XML.

Lier avec Bind

Le modèle XForms est ainsi :

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

L'interface utilisateur XForms peut utiliser bind l'attributlier Élément <input> :

<input bind="firstname">
<label>Nom</label>
</input>
<input bind="lastname">
<label>Nom de famille</label>
</input>

Pourquoi y a-t-il deux méthodes pour lier les éléments de contrôle d'entrée aux données d'instance?

Pour être honnête, lorsque vous commencez à utiliser XForms dans des applications complexes, vous découvrirez que l'utilisation de bind pour lier est une méthode plus flexible pour gérer les modèles de multiples formulaires et multiples instances.