XForms e XPath

Raccomandazioni di corso:

XForms utilizza XPath per indirizzare i dati in modo esplicito. Questo processo viene chiamato binding.

Binding XForms

Il modello XForms è un template XML per i dati (istanza), mentre l'interfaccia utente XForms è una descrizione dell'inserimento e della visualizzazione dei dati.

XForms utilizza XPath per definire la connessione tra queste due parti. Questo viene chiamatoBinding (bindaggio).

XPath

XPath è utilizzato per definire la grammatica standard W3C delle parti di un documento XML.

XPath utilizza espressioni di percorso per identificare i nodi nel documento XML. Queste espressioni sono molto simili alle espressioni di percorso dei file che vedete nei sistemi informatici.

Espressione XPath:

/person/fname

Individuazione del nodo <fname> nel documento XML:

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

Nel nostro Guida XPath Per saperne di più sull'XPath, consultare la guida.

Utilizzo di Ref per il Binding

Il modello XForms è così:

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

L'interfaccia utente di XForms può utilizzare ref attrlegare Elemento <input>:

<input ref="name/fname">
<label>Nome</label>
</input>
<input ref="name/lname">
<label>Cognome</label>
</input>

L'attributo ref="name/fname" nell'esempio sopra è un'espressione XPath che punta all'elemento <fname> del modello di istanza.legareai documenti XML (esempi) che raccolgono dati dai moduli (es. <fname> elemento).

L'interfaccia utente XForms può anche utilizzare riferimenti:

<input ref="/person/name/fname">
<label>Nome</label>
</input>
<input ref="/person/name/lname">
<label>Cognome</label>
</input>

Nell'esempio sopra, la barra obliqua (/) iniziale dell'espressione XPath indica la radice del documento XML.

Utilizzo di Bind per il binding

Il modello XForms è così:

<model>
<instance>
  <person>
    <name>
      <fname/>
      <lname/>
    </name>
  </person>
</instance>
<bind nodeset="/person/name/fname" id="nome"/>
<bind nodeset="/person/name/lname" id="cognome"/>
</model>

L'interfaccia utente di XForms può utilizzare bind attrlegare Elemento <input>:

<input bind="nome">
<label>Nome</label>
</input>
<input bind="cognome">
<label>Cognome</label>
</input>

Perché ci sono due metodi per legare elementi di controllo di input ai dati dell'istanza?

Che dire, quando si inizia a utilizzare XForms in applicazioni complesse, si scopre che utilizzare bind per il binding è un metodo più flessibile per gestire modelli multipli di form e istanze multipli.