XForms with Linux
description
Transcript of XForms with Linux
![Page 1: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/1.jpg)
Matt Zumwalt
MediaShelf, LLC
http://www.yourmediashelf.com
XForms and FedoraSimplifying Fedora Frontends with XForms and Fedora Disseminators
![Page 2: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/2.jpg)
RequirementsWhat MediaShelf aims accomplish with its UIs
![Page 3: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/3.jpg)
User Experience
One feature set, Many Interfaces
Minimize Learning Curve
UX Must match Use Cases & User Requirements
![Page 4: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/4.jpg)
Diverse XML Metadata
Task-specific taxonomies– Ex. Descriptive Metadata
Aggregate taxonomies
Cross-pollination
![Page 5: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/5.jpg)
Users’ Vocabularies
Groups of users inevitably talk about their work in distinct ways. An effective UI has to reflect that vocabulary
![Page 6: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/6.jpg)
Lexicon for UIs
Finite Vocabulary
One description, many renditions
![Page 7: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/7.jpg)
Separation of Concerns
Binding XML to UI
Binding UI to user vocabularies
Finding that balance
![Page 8: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/8.jpg)
XFormsA Look at the pertinent features of XForms and how they satisfy our requirements
![Page 9: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/9.jpg)
Using Forms to Edit XML
Anywhere an HTML Form would be used, XForms can be used
Best example: Descriptive Metadata
![Page 10: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/10.jpg)
XForms Strengths
Codify Intentions for UI
Separation of Concerns with MVC
Pure XML & XSL
Service Oriented
Standardized
![Page 11: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/11.jpg)
Codify Intentions
XForms enables creators to codify the intended components and functionality for a form rather than defining the form itself
![Page 12: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/12.jpg)
Separation of Concernswith MVC
![Page 13: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/13.jpg)
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
![Page 14: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/14.jpg)
Explicitly Aware of XML
![Page 15: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/15.jpg)
Describe the UI
An XForms View is a standards-compliant description of a form and all of the actions it should perform
![Page 16: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/16.jpg)
XForms Elements
![Page 17: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/17.jpg)
![Page 18: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/18.jpg)
Pure XML & XSL
Relatively simple markup
Mature technologies
Store as datastreams in Fedora
– Inline or Reference– Use disseminators– Versionable UI!
![Page 19: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/19.jpg)
Service Oriented
Submit XML to any service
Easy to change target URL
Multiple submissions
![Page 20: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/20.jpg)
Standardized
A single XForms Model/View pair can be displayed by any XForms compliant tool
Automatically switch between XHTML, Flash, Swing, etc.
![Page 21: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/21.jpg)
Codify intentions for UI
Separation of Concerns with MVC
Pure XML & XSL
Service Oriented
Standardized
Discuss XForms
![Page 22: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/22.jpg)
The Perfect MatchHow we integrated XForms with Fedora
![Page 23: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/23.jpg)
Overlap with CMDA
Simplified subset of same concerns
Deals only with datastreams that contain (XML) metadata
Easily translate when/if CMDA is ready
![Page 24: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/24.jpg)
![Page 25: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/25.jpg)
![Page 26: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/26.jpg)
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
![Page 27: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/27.jpg)
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
![Page 28: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/28.jpg)
The Views Follow…
Any number of Xforms Views can be created that manipulate your XML by means of its XForms Model
![Page 29: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/29.jpg)
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
![Page 30: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/30.jpg)
Transitive Qualities
An XForms model/view pair can be applied to any object that conforms to the content model
(CMDA aims to support this)
![Page 31: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/31.jpg)
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
![Page 32: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/32.jpg)
ExposureGetting from XML/XForms to a UI
![Page 33: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/33.jpg)
Renderer: OrbeonForms
Server Side XForms
XHTML templates & CSS
Supports custom javascript
XPL processing
![Page 34: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/34.jpg)
XForms Renderers
Server Side vs Client Side
Firefox Extension
Eclipse/SWT Component
Growing list on Wikipedia…
![Page 35: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/35.jpg)
XForms in Context
Editing XML datastreams is only a part of our users’ concerns
Must create complete UIs
![Page 36: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/36.jpg)
Tapestry Approach
Full UI from many parts
AJAX Tricks
Integrated at service level
![Page 37: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/37.jpg)
![Page 38: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/38.jpg)
![Page 39: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/39.jpg)
ObservationsSome technical observations/speculations about XForms and Fedora
![Page 40: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/40.jpg)
The RESTful Approach
Ruby on Rails
“Being a good web citizen”
SOA done right (and easily)
![Page 41: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/41.jpg)
REST and HTTP Verbs
Example URL: …/fedora/service/manage/demo:77/DC
PUT: Create Datastream
POST: Update Datastream
GET: Get Datastream
DELETE: Delete Datastream
![Page 42: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/42.jpg)
XForms, REST & Fedora
REST, HTTP and CRUD
XForms Actions & Methods
Minimize code between User and Fedora
![Page 43: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/43.jpg)
XForms in CMDA?
What stage of development?
Is XForms a good fit?
How to move forward?
![Page 44: XForms with Linux](https://reader037.fdocuments.in/reader037/viewer/2022103007/54b4caac4a79597a528b45f0/html5/thumbnails/44.jpg)
Matt Zumwalt
MediaShelf, LLC
http://www.yourmediashelf.com
Thank You.For more information and code samples, visit http://www.yourmediashelf.com/reference/xforms