1 / 22

XForms: The Perfect Front-End to Your Composite Application

XForms: The Perfect Front-End to Your Composite Application. Doug Tidwell, IBM dtidwell@us.ibm.com. 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.

ceri
Download Presentation

XForms: The Perfect Front-End to Your Composite Application

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XForms: The Perfect Front-End to Your Composite Application Doug Tidwell, IBM dtidwell@us.ibm.com

  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="1" image="images/sca-sdo.jpg"> 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="1" firstSeed="1" secondSeed="16" winnerSeed="1"/> • 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="1" firstSeed="1" secondSeed="16" winnerSeed="1"/> <result round="1" firstSeed="8" secondSeed="9" winnerSeed="9"/> . . . <result round="2" firstSeed="1"secondSeed="9" winnerSeed=""/> • 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 developerWorks • 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 dtidwell@us.ibm.com

More Related