XForms
la nuova generazione delle form, più standard e flessibile, con XML,
separano i dati dalla presentazione e possono eseguire calcoli e validazioni.
Sono raccomandazioni W3C e saranno lo standard in XHTML 2.0
I dati in ingresso sono descritti in due parti: modello e interfaccia.
modello
descrive i dati con XML
<model>
<instance>
<person>
<fname/>
<lname/>
</person>
</instance>
<submission id="form1" action="submit.asp" method="get"/>
</model>
Dopo la raccolta dei dati, il documento sarà così:
<person>
<fname>John</fname>
<lname>Smith</lname>
</person>
oppure così:
fname=John;lname=Smith
user interface
visualizza e raccoglie i dati:
<input ref="fname"><label>First Name</label></input>
<input ref="lname"><label>Last Name</label></input>
<submit submission="form1"><label>Submit</label></submit>
insieme
i blocchi precedeti (modello e user interface) vanno messi insieme sequenzialmente e incapsulati:
<xforms>
...
</xforms>
i controlli
<input ref="name/fname"><label>First Name</label></input>
<secret ref="name/password"><label>Password:</label></secret>
<textarea ref="message"><label>Message</label></textarea>
<submit submission="form1"><label>Submit</label></submit>
<trigger ref="calculate"><label>Calculate!</label></trigger>
First Name: <output ref="name/fname" />
<upload bind="name">
<label>File to upload:</label>
<filename bind="file"/>
<mediatype bind="media"/>
</upload>
select
<select1 ref="status">
<label>Status:</label>
<item><label>Male</label><value>M</value></item>
<item><label>Female</label><value>F</value></item>
</select1>
<select ref="languages">
<label>Languages:</label>
<item><label>English</label><value>E</value></item>
<item><label>French</label><value>F</value></item>
<item><label>Spanish</label><value>S</value></item>
</select>
<range ref="length" start="0" end="100" step="5">
<label>Length: </label>
</range>
data types di XML Schema
<shtml
xmlns:xf="http://www.w3.org/2002/xforms"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
nuovi data types
<xf:instance>
<person xmlns="">
<fname xsi:type="xsd:string"/>
<lname xsi:type="xsd:string"/>
<born xsi:type="xsd:date>"/>
<size xsi:type="xsd:integer"/>
</person>
</xf:instance>
<xf:bind nodeset="/person/size" type="xsd:integer"/>
proprietà
calculate, constrains, p3ptype, readonly, relevant. required, type
<bind nodeset="person/lname" required="true()"/>
azioni
message, DomFocusing, ephemeral, setvalue
<message level="ephemeral" event="DOMFocusIn">
Input Your First Name
</message>
<setvalue value="50" event="xforms-ready"/>
il tutorial W3Schools
il reference W3Schools