XForms with Linux


Published on

XForms, with Linux ,Mobile computing,XHTML

Published in: Education, Technology
1 Comment
  • Books for XForms:
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

XForms with Linux

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