The first issue with whitespace is that sometimes whitespace text nodes are significant and sometimes not, and there's no simple way of deciding which. So applications sometimes get presented with whitespace they don't want, leading to messiness like incorrect numbering of nodes, and sometimes they don't get presented with whitespace that they do want, leading to data corruption.
Taking these issues in order, maybe I can ask a few questions?
Whitespace: surely if default whitespace normalisation is an issue, then that can be solved by CDATA sections (which are used extensively by GMail I just noticed)?
Namespaces account for a very significant chunk of user difficulties with XML, a great deal of the complexity of specifications like XSD and XSLT, a similar proportion of the complexity of APIs, and a vast amount of the code in implementations of these specs. And they aren't necessary! The world could have managed perfectly well with a convention where the element name <org.w3c.svg> means "in this subtree, I'm using SVG element names".
Namespaces: Without them XML wouldn't have a reason for being surely, I cannot understand this being considered a problem, other than perhaps browsers support them in different ways?
The alternatives exist, but too late to make a difference. XSD was too successful to enable us either to ignore it or replace it.
XSD: This is a big one, maybe time to have another W3C recommendation alongside XSD?
Again, the alternatives exist, but the damage is done. Most newcomers to Java/XML use DOM because it's there and they think its the standard, and we can't stop this, because we can't take stuff away and we can't rewrite the books that we wrote 15 years ago.
DOM API: For the norms of the times probably a good effort. jQuery etc. has made that API somewhat redundant in the browser, so maybe just recognise jQuery as a DOM DSL (but adding XPath support would be cool). You have to admit that D3.js is quite marvelous (which uses the jQuery approach), now that we finally have SVG support cross browser.
There's no doubt things we could design something much better, the problem is transition. Most attempts to improve the situation in the last 10 years haven't caught on, for several reasons: you can't get rid of complexity by adding things, and you can't take users with you if you do something completely different. FtanML (presented at Balisage 2013) shows one attempt to create a better XML by throwing everything away and starting again, but people have too much investment in the current technology stack for that kind of approach to have a realistic chance of success.But my main issue is this: If things can be improved then do so,