A web app project has asked for suggestions on their HIGH Level Design of a Wizard-like data collection application. Their goal, is to create an easy to maintain app that is not tied into the legacy application they are feeding. They also see the possibility that the number of forms and the content of those forms could be changing often in the near future, so easy maintenance of the forms and the mapping of the form data to the legacy API data structure are also priorities. They are going to be developing a webapp using Struts 1.1 They convert their Form Beans to XML and the form entry is 16 forms long. They store the XML in one BIG column in an Oracle table for session persistence. Each attribute of the Form Bean is converted to XML. The DB varchar XML column will contain 16 Form Nodes with each form containing the form attributes. Once all of the data is collected and submittal occurs at the end, the entire string is matched to a DTD via XSLT (all of the attribute mapping rules are stored in a property file). The property file uses the "NameOfTheForm_" as a prefix qualifier. The transformed XML is then sent to a legacy system via a Java API. Oracle 9i is being used. ======== Feedback: ======== The Team would like to know if anyone has experience with or would be willing to provide some feedback regarding the pros and cons of an application design like this. I have conducted some research and have come across numerous items to consider, but we could use some feedback from other Java Developers to put these into perspective. I have summarized some findings / concerns below: Persisting (temporarily) ALL Form data (in XML) to one DB table column - concerned about the size of the column, speed of parsing. Perhaps consider the Oracle 9i XML DB and XML DataTypes? Struts Features, Extensions, etc. - that might be worth considering ==================================================================== Struts 1.1 DynaActionForm - possibly use DynaActionForms if forms are fairly simple, forms can be defined via config files Boost Struts with XSLT and XML (article link) VelocityStruts - The VelocityStruts sub-project integrates Velocity with the Jakarta Struts Web application framework and enables the use of velocity templates interchangeably with JSP pages for the view layer. stxx - Struts for transforming XML with XSL (stxx) is an extension of the struts framework to support XML and and XML transforming technologies like XSL without changing the functionality of struts. stxx sits on top of Struts, extending its existing functionality to allow Action classes to return XML that will be transformed by technologies like XSL. StrutsCX - Struts with XSLT Cocoon Plug-In for Struts - seems a bit heavy for this app, possible performance concerns Bean / XML Tools =================== Apache Betwixt : turning beans into XML JOX Article - JavaBean-XML mapping component - JOX (JavaWorld) Article (JDK 1.4) - XMLEncoder / Decoder - Future Java / XML Binding =================== JAXB Castor Zeus JaxMe Article - Use XML data binding to do your laundry - JaxB and Castor (JavaWorld) [ November 03, 2003: Message edited by: Jeff Bradford ]
Sounds to me like you need a consultant which would make this post a Job Offer. Unless there are legitimate arguments against this post being a Job Offer, I am going to request it be moved their promptly.