XForms TU Delft Library Digitale Productontwikkeling Egbert Gramsbergen
XForms Wat is het? Waarom bestaat het? Hoe werkt het? Waar kom je ze tegen? Orbeon Demo
Wat is XForms? “Next generation” web formulieren W3C Recommendation Als module host language (XHTML, SVG, …) Vervangt HTML formulieren in XHTML 2.0 Ook voor telefoons, PDA’s, … XForms doelen: Ontkoppelt data, logica and presentatie XML in, XML uit Vereenvoudigt ontwerp van web formulieren Minder client-side (JavaScript) code Minder server-side code Meer functionaliteit!
Wat is er mis met HTML Formulieren? Primitieve data representatie name/value paren, URL encoded Data & presentatie door elkaar Assemblage nodig voor beginwaarden Scripting nodig voor ongeveer alles… Validatie Berekeningen Dynamische formulieren (tabs, repeterende onderdelen, onderling afhankelijke drop-down lijsten, …) => Hoge kosten voor ontwikkeling en support.
Hoe het werkt Tweedeling: XForms Model Doel (onzichtbaar) Presentatie Form controls
XForms Model en instance Model bevat: Instance data XML Schema (constraints voor instance data) XForms (dynamische) constraints Submit informatie Privacy informatie (P3P) Instance: Template voor (default) data inline of ref naar extern Zorgt voor “instance DOM” “instance DOM” continu upgedeet (vgl. spreadsheet) Deel van “instance DOM” wordt serialiseerd en gesubmit
XForms Model - voorbeeld >1 instances en submissions mogelijk
Scriptloos! XML Schema: statische constraints Datatypes minimum/maximum occurrences XForms breidt dit uit met ‘computed expressions’ (runtime) Is iets relevant of verplicht? Berekende velden XPath expressies
XForms Submission definieert Wat – een deel van de “instance DOM” Waar – target URI Hoe – protocol Response – wat gebeurt er na submit Protocol: post (default), get, put kan ook direct praten met web services
XForms UI controls (1) Knoop vast aan model met xpath expressies of id Labels & hints voor gebruiker Suggesties voor presentatie CSS styling Controls: en verder…
XForms UI Controls (2) Flavour Vanilla v Strawberry s Chocolate c En verder…. XForms Actions (setvalue, setfocus, toggle, load, …) aangestuurd door XML events (DOMActivate, DOMFfocusIn, xforms- submit-error, xforms-model-construct-done, …)
Client-side XForms Web browsers Mozilla / Firefox (add-on, binnenkort geïntegreerd) Div. plugins, o.a. voor IE (FormsPlayer, FormsFaces, …) Niet-web clients Open Office IBM Lotus Forms, X-Smiles, … Vijand: Microsoft (concurrentie voor InfoPath)
Server-side XForms Huh? XForms op server Wordt op server vertaald in (x)html + javascript/AJAX Gebeurt meer dan je denkt! Onzichtbaar van de buitenkant Software Orbeon (open source) Chiba (open source)
Orbeon Server-side XForms + enkele uitbreidingen (o.a. XPath2.0, AVT’s) Afhandeling formulieren: page flow controller xml pipelines (xpl) met library van processoren (zelf uit te breiden): xslt, SQL, XML db, LDAP, , images, pdf, … -> complete apps in xml !
Orbeon (2) Versch van den persch: It’s demo time ! [2]demo time2