XForms e XPath

O XForms usa XPath para endereçar dados de forma aguda. Este processo é chamado de ligação.

Ligação XForms

O XForms usa duas partes para definir dados: o modelo XForms e a interface do usuário XForms.

O modelo XForms é um template XML (instância) para dados, enquanto a interface do usuário XForms é uma descrição da entrada e exibição de dados.

O XForms usa XPath para definir a conexão dessas duas partes. Isso é chamado deLigação (binding).

XPath

O XPath é usado para definir a sintaxe padrão W3C das partes do documento XML.

O XPath usa expressões de caminho para identificar os nós do documento XML. Essas expressões são muito semelhantes às expressões de caminho que você vê em sistemas de computador.

Expressão XPath:

/person/fname

Endereçar o nó <fname> do documento XML:

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

Em nosso Tutorial de XPath para aprender mais sobre XPath.

Usar Ref para Bind

O modelo XForms é assim:

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

A interface do usuário XForms pode usar ref propriedadeligar Elemento <input>:

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

O atributo ref="name/fname" do exemplo acima é uma expressão XPath que aponta para o elemento <fname> do modelo de instância. Ele pode direcionar o campoligaraté o documento XML (instância) do formulário que coleta dados <fname>.

A interface do usuário de XForms também pode usar referências:

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

No exemplo acima, o caractere de barra invertida (/) no início da expressão XPath indica a raiz do documento XML.

Usar Bind para Ligação

O modelo XForms é assim:

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

A interface do usuário XForms pode usar bind propriedadeligar Elemento <input>:

<input bind="nome">
<label>Nome</label>
</input>
<input bind="sobrenome">
<label>Sobrenome</label>
</input>

Por que há dois métodos para ligar elementos de controle de entrada ao dados da instância?

Que dizer, quando você começa a usar XForms em aplicações complexas, você descobrirá que usar bind para ligação é uma maneira mais flexível de lidar com múltiplos formulários e múltiplos modelos de instância.