Remember XForms (the next generation of HTML Forms)? How about XMLForm? From their homepage:
This is a standalone servlet toolkit inspired by Apache Struts / JavaServer Faces and W3C XForms.
The toolkit is derived from Apache Cocoon and a best effort will be made to maintain the features in sync with the Cocoon module.
For an introduction to the concepts, see:
XML Forms, Web Services and Apache Cocoon
XMLForm uses W3C XForms based markup and automated server-side binding to
JavaBeans,
XML/DOM,
JDOM and
DynaBeans
data models.
It also allows easy deployment of
REST style
Web Services,
with maximum code reuse between human facing and machine interfaces.
Wow! Sounds very cool. Thanks to Vic for the link.
I'm dialed in and listening to Don Brown presenting on Struts and XML/XSL. Don is a lucky guy - he's presenting from Hawaii this morning, where I'm assuming he lives. The bad part for him - it's 5:30 in the morning there. Don is one of the developers of Stxx and has also developed a Cocoon plugin for Struts. He works for DigitalNet and currently is working on a contract for the Navy. Hmmm, wonder if they're hiring - I'm willing to bet that Julie would consider moving to Hawaii! Enough dreaming - onto the presentation.
The following are types of XML/XSL Extensions for Struts:
- XSL-based
- stxx
- StrutsCX
- XML pipeline-based
- Cocoon Plugin
stxx: features
- replaces JSP with XSL
- in action, create XML manually, or get it from another source
- stylesheet selection based on criteria like browser type
- automatic serialization of ActionErrors, resources, and request objects
- extendable to support any object serialization or XML transformation technology
- supports both Struts 1.0 and Struts 1.1
Pretty cool - for Struts 1.1, there's a Stxx plugin, and you use a .dox
extension to indicate it needs transformations. In a stxx-transformations.xml, you define "transformations" that define XSL stylesheets, where to run at (client|server), and mimeTypes (html|xml|pdf). Sweet - maybe I can use this sucker for struts-resume! I wonder how Stxx compares with StrutsCX. Since Stxx can be plugged-in and can co-exist with JSPs, it might be the right path for me.
Advantages of Stxx: Simple, use of caching makes tranformations quick, can be used with Velocity or Cocoon, lighweight, very extendable.
Disadvantages: XML pipeline very limited, poor scaling of message resources (if ApplicationResources.properties in huge - i.e. > 1MB), requires all data to be gathered in Action (MVC-push).
Compared to StrutsCX - Don says that it's very similar, except that StrutsCX supports the Validator. As for the Cocoon Plugin, it supports all the features of Cocoon. Describing the features of this plugin seems pointless as I would just be describing features of Cocoon. For the Cocoon PlugIn, you define it the same as a regular plugin, and then change your path to point to an XHTML-compliant JSP. Apparently, Don has modified the struts-example app to use the Cocoon PlugIn, so hopefully I can provide a link to the download.
Here are some resource links from Don's presentation that might interested you:
As for my presentation on Remember Me and XDoclet, you can find those slides here. The slides (and lab) uses a simple JSTL-based app I whipped up last weekend. I'm planning on
hooking it into a database eventually to allow online editing of a presentation,
but I probably won't do that until I give another presentation.
I'm still experiencing issues with my Internet Connection, and I'm still blaming my ISP. Especially since I went out and bought a
new router and everything. Now I have internet access, but it's intermittent and flaky. It's so flaky, in fact, that anytime I've needed to ssh into this site's server or check in to CVS at SourceForge, I've had to dial-up. However, an ingenious idea hit me this morning. Since the original problem was a bad cable between my ISP's
bridge and my router, maybe more cables could be bad. So I stuck one of my wireless cards in my box, and Voila! I'm surfing like the wind again. I guess I'll have to stop at a store and see if they have an "ethernet cable tester".
I'm off to work. I'll be broadcasting my presentation (via WebEx) from there today since I didn't trust this connection up until now.