Back in the day, XML was easy.
Today? Hmmm… Not-so-much,
XML is one of those things that looks really easy, but is actually full of nasty surprises that don’t show up until either the week before you ship (or worse.., a few weeks after). Things like character encoding issues, XML Namespaces, XSD Wildcards. It is really hard for your average developer (who makes no pretenses at XML guru-hood) to write good XML serialization/hydration code. Everything is stacked against him: XML APIs, XML -Lang itself, XSD.
That is why so many developers (especially in the Java world) just use XML Binding layers.
Solution? Give them a good XML API. Not one designed for XML Gurus, who understand every nuance of the spec. Give them an API that makes using XML easy, and relatively efficient. This ain’t easy, or it would already be there. XLinq is C#’s answer to exactly this issue. Java needs something similar. An XML API that isn’t designed primarily for XML as text markup, but an XML API that is designed for data serialization.