Modello XForms

Il modello XForms definisce un modello per i dati concentrati nel modulo.

Frammento XForms

Il ruolo del modulo HTML è raccogliere dati. Lo stesso vale per XForms.

Attraverso XForms, i dati di input vengono descritti in due parti diverse:

  • Modello XForms (descrizione dei dati e della logica)
  • Interfaccia utente XForms (visualizzazione e input dei dati)

Modello XFormsDefinisce cosa è un modulo, i dati che contiene e cosa dovrebbe fare.

Interfaccia utente di XFormsDefinisce i campi di input e come vengono visualizzati.

Modello XForms

XForms ModelloUsati perDescrizioneDati.

Il modello di dati è un'istanza di documento XML (un modello).

XForms modello definisce un modello di dati all'interno di un elemento <model>:

<model>
<instance>
  <person>
    <fname/>
    <lname/>
  </person>
</instance>
<submission id="form1" action="submit.asp" method="get"/>
</model>

Dall'esempio sopra, si può vedere che il modello XForms utilizza un <instance> L'elemento per definire il modello XML dei dati da raccogliere e utilizzare un <submission> elementi per descrivere come inviare i dati.

Modello <submission>NessunoEsprimere informazioni su parti visibili del modulo (interfaccia utente).

Namespace XForms

Se avete trascurato questi esempi di spazio dei nomi XForms o se non conoscete il concetto di spazio dei nomi, esploreremo questo argomento nella sezione successiva.

L'elemento <instance>

Modello XForms <instance> elementi per definire i dati da raccogliere.

XForms èRaccogliere dati per un documento XMLIn questo modello XForms, l'elemento <instance> definisce questo documento XML.

Negli esempi precedenti, l'istanza di dati del modulo che raccoglie i dati (documento XML) potrebbe apparire così:

<person>
  <fname/>
  <lname/>
</person>

Dopo la raccolta dei dati, questo documento XML potrebbe apparire così:

<person>
  <fname>John</fname>
  <lname>Smith</lname>
</person>

L'elemento <submission>

Il modello XForms utilizza <submission> elementi per descrivere come inviare i dati.

L'elemento <submission> può definire il modulo e come inviarlo. Negli esempi precedenti,id="form1" Usato per identificare questo modulo,action="submit.asp" L'attributo definisce l'URL a cui viene inviato il modulo, mentre method="get" L'attributo definisce il metodo utilizzato durante il processo di invio del modulo.

Interfaccia utente di XForms

XForms Interfaccia utenteUsati perVisualizzazione e inputDati.

Gli elementi dell'interfaccia utente di XForms vengono chiamatiControlliO controlli di input:

<input ref="fname"><label>Nome</label></input>
<input ref="lname"><label>Cognome</label></input>
<submit submission="form1"><label>Invia</label></submit>

Negli esempi precedenti, due elementi <input> definiscono due campi di input. Le proprietà ref="fname" e ref="lname" puntano agli elementi <fname> e <lname> del modello XForms.

L'attributo submission="form1" dell'elemento <submit> può fare riferimento all'elemento <submission> del modello XForms. L'elemento submit viene solitamente visualizzato come pulsante.

Attenzione all'elemento <label> nell'esempio. Con XForms, ogni elemento di controllo di input deve avere un elemento <label>.

Avrete bisogno di un contenitore

XForms non è stato progettato per funzionare in modo indipendente. Non esiste nemmeno un documento XForms.

XForms deve funzionare in un altro documento XML. Può eseguire in XHTML 1.0 e lavorerà anche in XHTML 2.0.

Ora combiniamo tutto

Se li combiniamo, il documento sarà così:

<xforms>
<model>
<instance>
  <person>
    <fname/>
    <lname/>
  </person>
</instance>
<submission id="form1" action="submit.asp" method="get"/>
</model>
<input ref="fname"><label>Nome</label></input>
<input ref="lname"><label>Cognome</label></input>
<submit submission="form1"><label>Invia</label></submit>
</xforms>

La pagina sarà visualizzata così:

xforms_example

Processore XForms

Integrato nel browser Processore XFormssarà responsabile dell'invoio dei dati XForms al destinatario.

I dati possono essere inviati come XML, simile a questo:

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

O come testo da inviare, simile a questo:

fname=David;lname=Smith