Sylvain Wallez - Flowscript and Woody: forms and web applications made easy.

Given the amount of energy that Sylvain has put into Woody recently, this is a much anticipated talk. Historical?

Sylvain is the "Grandfather of the Interpreted Sitemap Engine"

Hey, I'm not that old: "father" is enough (wink) --SylvainWallez

Was going to talk about Flowscript and Woody but thinks he has too much material has been presented already - will concentrate on Woody. Questions about Flowscript are ok though.

Sylvain's Company uses Cocoon for everything:

He's currently concentrating on Woody.

Woody Intro

Previous forms modules: Precept, XMLForm have died due to lack of community support. XMLForms: XPath injection problem requires writing a shielding bean.

Woody was started by Outerthought: Bruno, Marc, Steven.

Woody principles

Nice slide on "the big picture" (historians trace it to Bruno Dumon). Me loves grafix (wink)

(Diagram, sample of Form Definition)

(Diagram, sample of Form Template)

Form template contains Woody template tags that refer to widgets in the Form Object Model Add your woody tags to whatever XML you want, transform it with the WoodyTransformer to access the properties in your view

Woody Widgets

Available widgets

Typically an "add row" button will be action, "OK" will be submit They're all defined in cocoon.xconf, add your own if needed

Widgets take care of their own parsing, you get high-level typed data without effort.

Defining a datatype

Converter: component that can read, parse and format a data type. Formatting and parsing can be dependent on locale.

Validation

Selection lists

Repeater Widget

The View

The Woody template Transformer takes the Woody form definition and a Form Template, which can come from any Generator.

(Diagram of woody template before and after transformation by the WoodyTransformer)

Role of the Woody transformer

Expands widget definitions into the form template. Widgets are responsible for their own xml representation

Resulting output contains all you need to present the form, but in a presentation-independent way.

"wt" Woody Template elements are expanded into "wi" Woody Instance elements. Output goes to styling You can provide styling hints

Repeater-widget automatically numbers generated elements, so that they can be identified when the form is submitted.

Higher-level styling

Event handling

Has been added to Woody about two weeks ago.

Shows the "car selector" example from the current Woody samples.

Woody Binding: Linking the Form to Application data

Woody Action

For simple forms that have no complex logic, Woody can be used without flowscript.

Integration with FlowScript

Load the form definition into the form Add the Binding document to the form Load the data

(network downtime - SubEthaEdit connection lost here)

Putting it all together

Question

A: Not compatible due to Woody working Server-side and XForms being client-side

A: Because you can transform your form after the WoodyTransformer does it's job, any type of XML can be output.