• Like
SLIDES
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Published

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
782
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. XForms: The Perfect Front-End to Your Composite Application Doug Tidwell, IBM [email_address]
  • 2. The problem
    • We need interfaces to create, edit and update XML documents.
      • XML documents are at the heart of tens of thousands of Web services applications.
      • XML documents are at the heart of every human interaction with a business process (BPEL).
      • It’s easier to create XML than it is to create some other document format and then convert it to XML.
    • We need some way to create interfaces for XML documents.
  • 3. Some approaches to this problem
    • We could edit the XML by hand in emacs , vi , Notepad, or some equally unfriendly tool.
      • Very error-prone, particularly for complicated XML document types
      • Acceptable to geeks only
    • We could write a graphical application that used various kinds of controls to edit the XML behind the scenes.
      • Very high cost of development
      • We still have to write the code to map values selected in each control to something in the XML document
      • Difficult to maintain as the XML document structure changes
  • 4. Some approaches to this problem
    • We could write an HTML page with our favorite AJAX library.
      • Faster than building a graphical application, but…
      • We still have to write the code to map values selected in each control to something in the XML document
      • Difficult to maintain as the XML document structure changes
    • We could use XForms.
      • Similar development time compared to AJAX
      • XForms has a built-in data model (unlike everything else we’ve mentioned)
      • Interface controls are tied directly to the XML
      • Much easier to maintain as the XML structure changes.
  • 5. The paradigm When you need to create a user interface for XML data, use XForms.
  • 6. Our Sample Application: Bracketology
  • 7. Bracketology
    • Our XML document represents a sixteen-team, single-elimination tournament.
    • We’ll choose between competitors until only one is left.
    • We’ll use XForms to display the competitors, update the XML data and generate the matchups for the later rounds of the tournament.
  • 8. The XML document structure
    • <bracket>
    • <title>The Santa Clara Smackdown</title>
    • <contestants>
    • <contestant> <!-- 16 contestants -->
    • </contestants>
    • . . .
    • <results>
    • <result> <!-- 15 results -->
    • </results>
    • </bracket>
  • 9. A contestant
    • <contestant
    • seed=&quot;1&quot;
    • image=&quot;images/sca-sdo.jpg&quot;>
    • SCA-SDO
    • </contestant>
    • The seed determines the matchups in the first round.
    • The image attribute is used as a URL.
    • The text of the element is what appears in the bracket.
  • 10. A result
    • <result
    • round=&quot;1&quot;
    • firstSeed=&quot;1&quot;
    • secondSeed=&quot;16&quot;
    • winnerSeed=&quot;1&quot;/>
    • The round attribute indicates in which of the four rounds this result occurred.
    • The firstSeed and secondSeed attributes indicate which contestants faced each other.
    • The winnerSeed attribute indicates who won. They move on to the next round.
  • 11. Complications
    • The seedings of the contestants determine the matchups for the first round.
    • We don’t know who’s involved in the second round until the first round is completed.
    • It’s confusing. For example:
      • The winner of the first matchup in the first round is the first contestant in the first matchup of the second round.
      • The winner of the second matchup in the first round is the second contestant in the first matchup of the second round.
  • 12. Assembly with SCA
    • <result round=&quot;1&quot; firstSeed=&quot;1&quot; secondSeed=&quot;16&quot; winnerSeed=&quot;1&quot; />
    • <result round=&quot;1&quot; firstSeed=&quot;8&quot; secondSeed=&quot;9&quot; winnerSeed=&quot;9&quot; />
    • . . .
    • <result round=&quot;2&quot; firstSeed=&quot;1&quot; secondSeed=&quot;9&quot; winnerSeed=&quot;&quot;/>
    • We can define these relationships in XForms. When we move from one round to the next, we’ll use <xf:setvalue> to update the results correctly.
  • 13. Choosing between contestants
  • 14. XHTML page layout
  • 15. The bracket display
  • 16. Demo time Let the games begin!
  • 17. Summary
  • 18. Summary
    • We’ve used an XForms document to display and manipulate a complicated XML document format.
    • All of the data manipulation is done in XForms, yet we get nice AJAX-like effects as we move between rounds, panels, etc.
    • The result is a sophisticated interface that is built around our XML document type, generates valid XML data and is easily maintained.
  • 19. Bracketology articles at developer Works
    • Using XSLT to generate the bracket from the XML:
      • Uses new features from XSLT 2.0/XPath 2.0: The to operator, sequences and <xsl:function>
      • ibm.com/developerworks/xml/library/ x-xslt20xpath20/
    • Use an XForms document as a custom XML editor:
      • Covers the entire XForms document we’ve demonstrated here
      • Uses XSLT 2.0 to refactor the XForms code, leaving a 70% smaller document to maintain
      • ibm.com/developerworks/library/x-xformsxslt/
    Host your own tournament!
  • 20. One more time When you need to create a user interface for XML data, use XForms.
  • 21. oasis-opencsa.org/sca-roadshow/
  • 22. Thanks! Doug Tidwell, IBM [email_address]