Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
XForms: A case study Rajiv Shivane & Pavitar Singh Building a generic Web-Service client • Problem statement: Need to build HTML forms for invoking operations on any web-service given it’s WSDL – Web services defined using WSDL – Operations are declared in WSDL • Why XForms – Single Servlet to generate HTML for invoking any webservice – Generates dynamic forms for Collection data types – Ease of invoking web-service as submitted data is in XML format – Built in validation framework Implementation overview WebService 1 Described By Invokes 6 Operation 7 Response WSDL Enters 5 User Data Parses Browser 4 Renders 2 Servlet Builds 3 XFORM Chiba Sample input-form for an operation Form populated with web-service response How Easy it is XForms: An introduction What is XForms ? – Next generation web forms from W3C – W3C Recommendation since October 2003 – Aims at replacing HTML forms – But supports any host language XForms Goals • Make Web form design easier – Less client-side (JavaScript) code – Less server-side code – More functionality! • Capture data from end-user in XML Problems with HTML Forms • Dependence on Scripting Languages Like Java Script and VB Script to do common tasks – – – – – Marking Required Controls Validations Calculations Error Messages Conditional Layout • Difficulty of Initializing Form • Can Represent Only Flat Data (Name Value Pairs) • Reintrepreting Data Format at every stage of workflow Conceptual Structure of XForms Sample XForm Model Section • Model Element in Xforms Document • Contain Child Elements – Instance – Bind – Submit Bind Model Section • • • • • • Encapsulates Data Aspects of a Form Uses XML Schema to Define Constraints Uses Xpath to Define Model Properties Captures What, How and Where to submit Enable Reactive User Interfaces Encourage declarative authoring UI Controls UI Controls • Connects User Interface to the Model • Uses Xpath to address nodes in the instance • UI controls collects user input • Bind to underlying model • Controls are designed for accessibility • Abstract Controls encourage Device Independence UI Controls UI Controls UI Controls UI Controls UI Controls UI Controls Complex User Interfaces • Aggregation construct <group> – Group logically related user – Enables Refactoring Complex User Interfaces • Dynamic User Interaction with <switch> – Enables any of logically groups to be selectively displayed to the User – Use declarative Event Handler <toggle> Complex User Interfaces • Repeating structures with repeat – Very powerful construct Event Handlers Events • • • • Bring User Interface to life Give access to eventing via XML Events Attach Dynamic Behavior Obviate common use of scripts via declarative actions Events Categories • Initialization – Events raised as various Xform components are initialized • Interaction – Raised by user interaction • e.g Request for a Help • Notification – Raised by Xforms processing model – To trigger different steps in Xforms processing • Errors – Raised when specific type of error conditions are encountered Native Xform Support in Web Browsers • Microsoft doesnt want to support it – Competing with InfoPath • Mozilla/Firefox Support – In the works but not yet deployed – But still market share under 10% • But is That a Problem if we want to implement XForm ?????? The Solution • Server-side emulation layer A/K/A server-side XForms • Developer writes XHTML and XForms, as he would with an XForms-aware web browser • Server-side XForms engine translates this into (X)HTML, CSS, and lightweight JavaScript • Uses AJAX to achieve asynchronous validation Implementations for Server Side XForm • Orbeon PresentationServer (OPS) • Chiba → Both are open source Thanks Q&A