Title: X6:%20neXt%20pleX%20Xml%20fleXibility%20eXperience:%20Xforms
1X6 neXt pleX Xml fleXibility eXperience Xforms
Session No. 10C
- Willem de Vries, Remia
- Simon Jasperse, Kiboko
2Agenda
- Introduction
- Background Flexibility and XML
- XForms positioning and concepts
- Application within Remias architecture
- XForms inside the models
- Demo
- QA
3Introduction
- Remia Manufacturer of Sauces and Margarine
- Kiboko Independent software consultancy
- Software development in 2E and Plex
- Strategic choice for model based development
- Development speed
- Reduced maintenance
- Pattern-advantage main reason for Plex
4Flexibility in applications
- Application Customer Relationship Management
- Requirement high level of configurability
- For fast adaptation to business-requirements
- To empower users
- Example User Definable Data pattern
- Example Document management module
5User definable data pattern and XML
- Two level (Feature / Feature aspect)
representations of flexible data-structure - XML as a tool to provide single screen layout
- XML-pattern for creation of data-document
- XSLT for user-definable HTML-generation
- Use of XML extended beyond HTML- presentation
- Short DEMO
6Document Management
- Business documents like contracts, letters,
invitations, resumes, product-specification-s
heet - User defines functional types
- Creation of actual Docs from Plex-application
- Handling of external application (e.g. MS-Word)
- Interfacing application-data to document
- Support for external applications programmed
individually
7Document-management
Technical Concept
MS-Word MS-Excel
Functional Concept
8Flexibility results
- Results of Flexible data structure
- Specific layouts for specific purposes
- Users like single-screen overview
- Results of Document system
- Fast configuration of forms
- General available competence office-templates
- Documents managed within applications
9Flexibility more to wish ?
- Drawbacks of Document system
- Information inside not retrievable
- Storage / transfer too costly
- Too little guidance / validation for users User
- Single-screen output
- Users ask for Single-screen input instead of
wizards and tabs
10Some requirements for documents
- Form-like interface to offer guidance and
validation - Easily configurable (as Word / Excel templates)
- Integration with Plex-application based upon
data-interface - Structured (XML-) document to support
- searchability
- Integration-facilities in back-office
11Possible directions
- Altovas Authentic
- Microsofts Infopath
- Scripting a generalized HTML-solution
- XForms W3C next generation HTML-forms
- Promise of open standard
- Ambitious requirements
- Growing support by implementors
12Global features of XForms
- Events, Actions and Validation declarative
- Full support for XPath for calculations and
validations - Schema-support for data-types and validation
- Clean separation of data logic and presentation
- Highly regular XML structure
- Abstract controls for device-independence
- Processor decides the actual presentation
- E.g. Full browser, Mobile phone, Voice
13Flexibility more to wish ?
- ltfpmodel id"rm_model" gt
- ltfpinstance id"rm_doc"gt
- ltContract xmlns""gt
- ltRelatie NodeID"1"gt
- ltRelatienaamgtEurodisneylt/Relatienaamgt
- lt/Relatiegt
- ltCurrencygtEURlt/Currencygt
- ltContractDategtlt/ContractDategt
- ltContractDetailsgt
- ltDetailLinegt
- ltSubtotal /gt
- lt/DetailLinegt
- lt/ContractDetailsgt
- lt/Contractgt
- lt/fpinstancegt
- ltfpbind id"conDate" nodeset"/Contract/Contract
Date" required"true()" type"xsddate" /gt - ltfpbind id"relNaam" nodeset"/Contract/Relatie/
Relatienaam" required"true()" /gt - ltfpbind nodeset"/Contract/ContractDetails/Detai
lLine/Subtotal" calculate"../Quantity
../Price" readonly"true()" /gt - ltfpsubmission id"rm_submit1" replace"none"
action"url" method"post" ref"instance('rm_doc')
" /gt
14Main elements model
ltbodygt ltfpinput bind"conDate"gt ltfplabelgtCont
ract Datelt/fplabelgt ltfpalertgtPlease enter a
valuelt/fpalertgt lt/fpinputgt ltfpselect1
bind"conCurrency" style"displayinline"gt ltfpl
abelgtCurrencylt/fplabelgt ltfpitem style"width
200px"gt ltfplabelgtEurolt/fplabelgt ltfpvalue
gtEURlt/fpvaluegt lt/fpitem/gt lt/fpselect1gt ltfp
repeat id"r1" nodeset"/Contract/ContractDetails/
DetailLine"gt ltfpoutput ref"Subtotal"gt ltfpl
abelgtSubtotallt/fplabelgt lt/fpoutputgt lt/fprepe
atgt ltfpsubmit submission"rm_submit1"gt ltfplab
elgt Ready lt/fplabelgt lt/fpsubmitgt lt/bodygt
15Main elements result
16Implementations (examples)
- Client-side
- Mozquito DENG (Flash)
- Supported in every browser
- X-Smiles (Java)
- Strong device-independence
- X-port Formsplayer (IE 6 plug-in)
- Currently most complete implementation
- Server-side
- Chiba (open source)
- Novells exteNd (Silverstream) ? Mozilla
- IBMs Xforms Package (Alphaworks) ? Mozilla
17The pilot XForms-Documents
- Development of a new DocProgramma
- Resulting document is .XML
- Interfacing from application-data
- Form based on XForms
- Enables
- Smaller documents (storage / transfer)
- Validation
- Processing by back-office applications
18Xforms Demo Document Flow
- Document travels through organisation workflow
- Approval / Edit / Distribution / Function
19Xforms Demo Documentflow
- Configuration determines document flow / status
- Steps allocated by user function
- Todo list
20Xforms Demo Documentflow
- User can start document types based on user
function - Select a style refers to programme (word /
xForms)
21Xforms Demo The Application
22Xforms Demo Create xForm Document
- Xform Pattern
- Write Relation data to C/temp/naw.xml
- uses Remia XML pattern
- Get contract.xhtml location on file system (on
database/registry info) - Load contract.xhtml into XMLDOM
- Load naw.xml into XMLDOM(2)
- Parse naw.xml data into contract.xhtml.Model.insta
nce - Save as C/temp/myForm.xhtml
- Display myForm.xhtml in Shdocvw
- Save instance XML as 7315.999
23Xforms Demo Create xForm Document
24Xforms Demo Saved XML
- Contract XML saved on file system as 7568.45
25Xforms Demo Edit xForm Document
26Xforms Demo xForm Functionality
Data Typing
No Scripting!
Repeat
27Xforms Demo Documents
28Xforms Demo Plex Integration
Plex
Translate to Logical Event
29Xforms Demo Register Event
WebBrowser1.Navigate FileName
Function RegisterForEvent(evtSource,evtName,Handl
erName) ' get a pointer to the function with the
given name dim fpHandler set fpHandler
getRef(HandlerName) 'bind it to the requested
event name evtSource.attachEvent
evtName,fpHandler End Function
Sub WebBrowser1_DocumentComplete(pDisp, URL)
Set g_document WebBrowser1.Document RegisterFor
Event g_document.getElementById(submitID),
"xforms-submit-done","getAddr_Submit_Done" End
Sub
Function getAddr_Submit_Done(e) Ad.LogicalEvent(
"xfSubmit") End Function
30Xforms Demo Save Instance
At LogicalEvent("xfSubmit") set g_document
WebBrowser1.Document set model
g_document.getElementById(ModelID) set formDoc
model.getInstanceDocument(InstanceID) formDoc.sav
e (FileName) go sub terminate
31Xforms Demo Experiences
- xForms is promising, maturing
- Integration with Plex simple
- Better document handling Size / Data retrieval
- Layout xForms in css needs practice!
32Ideas for extension
- Physical separation of Model and Layout
- Layout as pure user-responsibility
- Extending the pattern around documents
- Support for database-lookups
- Coupling of printing/export facilities
- ..
- Model-controlled structure for User-defined data
- Processing XML-results to database
- Meta-programming for panel-alternative
33References
- W3C
- www.w3.org/MarkUp/Forms/
- Micah Dubinko Xforms essentials
- http//xformsinstitute.com/essentials/
- x-port.net Ltd
- www.formsplayer.com
- DSTC University of Queensland
- xforms.dstc.edu.au/index.html
- Novell
- developer.novell.com/xforms/
34Xforms Demo Discussion
- devries_at_remia.nl
- simon_at_kiboko.nl
- ppt at www.kiboko.nl