xforms with linux
DESCRIPTION
XForms, with Linux ,Mobile computing,XHTMLTRANSCRIPT
Matt Zumwalt
MediaShelf, LLC
http://www.yourmediashelf.com
XForms and FedoraSimplifying Fedora Frontends with XForms and Fedora Disseminators
RequirementsWhat MediaShelf aims accomplish with its UIs
User Experience
One feature set, Many Interfaces
Minimize Learning Curve
UX Must match Use Cases & User Requirements
Diverse XML Metadata
Task-specific taxonomies– Ex. Descriptive Metadata
Aggregate taxonomies
Cross-pollination
Users’ Vocabularies
Groups of users inevitably talk about their work in distinct ways. An effective UI has to reflect that vocabulary
Lexicon for UIs
Finite Vocabulary
One description, many renditions
Separation of Concerns
Binding XML to UI
Binding UI to user vocabularies
Finding that balance
XFormsA Look at the pertinent features of XForms and how they satisfy our requirements
Using Forms to Edit XML
Anywhere an HTML Form would be used, XForms can be used
Best example: Descriptive Metadata
XForms Strengths
Codify Intentions for UI
Separation of Concerns with MVC
Pure XML & XSL
Service Oriented
Standardized
Codify Intentions
XForms enables creators to codify the intended components and functionality for a form rather than defining the form itself
Separation of Concernswith MVC
Define the Model
An XForms Model defines the data that you want to operate on and the targets you want to submit that data to
Explicitly Aware of XML
Describe the UI
An XForms View is a standards-compliant description of a form and all of the actions it should perform
XForms Elements
Pure XML & XSL
Relatively simple markup
Mature technologies
Store as datastreams in Fedora
– Inline or Reference– Use disseminators– Versionable UI!
Service Oriented
Submit XML to any service
Easy to change target URL
Multiple submissions
Standardized
A single XForms Model/View pair can be displayed by any XForms compliant tool
Automatically switch between XHTML, Flash, Swing, etc.
Codify intentions for UI
Separation of Concerns with MVC
Pure XML & XSL
Service Oriented
Standardized
Discuss XForms
The Perfect MatchHow we integrated XForms with Fedora
Overlap with CMDA
Simplified subset of same concerns
Deals only with datastreams that contain (XML) metadata
Easily translate when/if CMDA is ready
Inherited Datastreams
Define what metadata you’re tracking for a given set of objects
Define how you store that metadata
– URL of datastreams– Schema or template of XML
One model to another…
XForms model can be derived from content model
Primary Concerns– Location of XML to edit – URL of service for submitting
edited XML
The Views Follow…
Any number of Xforms Views can be created that manipulate your XML by means of its XForms Model
XForms Disseminators
For a simple context, XForms model and view can be hard coded as datastreams
For a more dynamic system, both can be generated on the fly using disseminators
Transitive Qualities
An XForms model/view pair can be applied to any object that conforms to the content model
(CMDA aims to support this)
Summary
We apply a simple content model to objects, dictating that certain XML datastreams must exist
XForms model and view can be exposed for those objects using disseminators
ExposureGetting from XML/XForms to a UI
Renderer: OrbeonForms
Server Side XForms
XHTML templates & CSS
Supports custom javascript
XPL processing
XForms Renderers
Server Side vs Client Side
Firefox Extension
Eclipse/SWT Component
Growing list on Wikipedia…
XForms in Context
Editing XML datastreams is only a part of our users’ concerns
Must create complete UIs
Tapestry Approach
Full UI from many parts
AJAX Tricks
Integrated at service level
ObservationsSome technical observations/speculations about XForms and Fedora
The RESTful Approach
Ruby on Rails
“Being a good web citizen”
SOA done right (and easily)
REST and HTTP Verbs
Example URL: …/fedora/service/manage/demo:77/DC
PUT: Create Datastream
POST: Update Datastream
GET: Get Datastream
DELETE: Delete Datastream
XForms, REST & Fedora
REST, HTTP and CRUD
XForms Actions & Methods
Minimize code between User and Fedora
XForms in CMDA?
What stage of development?
Is XForms a good fit?
How to move forward?
Matt Zumwalt
MediaShelf, LLC
http://www.yourmediashelf.com
Thank You.For more information and code samples, visit http://www.yourmediashelf.com/reference/xforms