
I would think different XML APIs can co-exist (possibly sharing implementation). Some use cases really only require XML streaming / parsing, and such users shouldn't be forced to see a full DOM API. I think the way the XML specs are defined allows us to make such APIs rather modular / orthogonal.
I agree that those who do not need DOM support shouldn't work with complex functionality, but I in my opinion the API would be much more powerful if the two "functionalities" were implemented into a single library/module/whatever providing separate functions for those who need just basic XML support and separate for those who want to go wild. What I'm trying to point out here is that maintaining two separate APIs isn't really the best solution... instead I would suggest one module with "simple" + "expert" methods... and everyone can use what they prefer the most (even mixing the two). So internally it could use a DOM representation, but if the user chooses to stick with the basics, then there are the methods for it and he will never know about the DOM. If on the other hand he wants full control, then he can have access to everything as well.