XForms y XPath

XForms utiliza XPath para la búsqueda rápida de datos. Este proceso se llama enlazado.

XForms Binding

XForms utiliza dos partes para definir datos: el modelo de XForms y la interfaz de usuario de XForms.

El modelo de XForms es una plantilla XML (instancia) para datos, mientras que la interfaz de usuario de XForms es una descripción de la entrada y visualización de datos.

XForms utiliza XPath para definir la conexión entre estas dos partes. Esto se llamaEnlazado (binding).

XPath

XPath se utiliza para definir la sintaxis estándar W3C de las partes de un documento XML.

XPath utiliza expresiones de ruta para identificar nodos en un documento XML. Estas expresiones son muy similares a las expresiones de ruta de archivos que ve en su sistema informático.

Expresión XPath:

/person/fname

Para encontrar el nodo <fname> en el documento XML:

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

En nuestro Tutoriales de XPath para aprender más sobre XPath.

Usar Ref para enlazar

El modelo de XForms es así:

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

La interfaz de usuario de XForms puede usar ref usar el atributovincular Elemento <input>:

<input ref="name/fname">
<label>Nombre</label>
</input>
<input ref="name/lname">
<label>Apellido</label>
</input>

La propiedad ref="name/fname" del ejemplo anterior es una expresión XPath que apunta al elemento <fname> del modelo de instancia. Puede usar el campovincularal elemento <fname> del documento XML (instancia) que recoge datos del formulario.

La interfaz de usuario de XForms también puede usar referencias:

<input ref="/person/name/fname">
<label>Nombre</label>
</input>
<input ref="/person/name/lname">
<label>Apellido</label>
</input>

En el ejemplo anterior, la barra oblicua (/) al inicio de la expresión XPath indica la raíz del documento XML.

Vinculación con Bind

El modelo de XForms es así:

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

La interfaz de usuario de XForms puede usar bind usar el atributovincular Elemento <input>:

<input bind="firstname">
<label>Nombre</label>
</input>
<input bind="apellido">
<label>Apellido</label>
</input>

¿Por qué hay dos métodos para enlazar elementos de control de entrada a datos de instancias?

Qué decir, cuando comienza a usar XForms en aplicaciones complejas, encontrará que usar bind para la vinculación es un método más flexible para manejar múltiples formularios y múltiples modelos de instancias.