No Wonder XML Databases Haven’t Taken Off
By Adrian Sutton
XML databases and the standards to work with them (primarily XUpdate and XQuery) are just plain crap. Why is it that I need to learn two completely different languages which utilize two completely different programming styles to work with a database? Why is it that I can’t seem to convert between a String and XML nodes in either of those languages? I mean, wouldn’t seem obvious that when working with an XML database someone might have some XML coming in as a parameter and want to deal with it as XML instead of as a String – say to put it into the database? Isn’t it obvious that someone might want to get a part of the XML file they’re processing using XSLT as a string instead of a node-set? I don’t mean get the text nodes within the XML fragment, I mean all the element declarations and namespaces etc, etc. Sure they’re more than just random text but if you wanted to output it so it could be edited it would be nice to be able to without jumping through hoops.
And don’t even get me started on Cocoon serializers…. I know I don’t fully understand the technology I’m working with here and maybe I’m missing something obvious but the documentation definitely doesn’t help make it clear. eXist has the barest of documentation (Xindice failed to compile) and Cocoon has wonderfully comprehensive documentation which provides all the building blocks of information you could ever want with practically no hints on how to put it together effectively.
There’s some really awesome technology in all this stuff but it absolutely drives you nuts trying to work out how to use it. Someone really should take Cocoon and build a GUI-based building blocks tool out of it. Most of the required components are already there (though database access seems to need some work), just put a clean, effective UI on it and you’ve got a wonder product. Make sure you sort out the nightmare of configuring URL prefixes between Cocoon, Tomcat, Exist and whatever else winds up in the stack. Just make it work without the swearing and cursing.