It is not that the technology on top of XML failed.
XML itself failed miserably:
1. Namespaces (and 4 ways to use them) & Namespace-Prefixes
2. Element-repetition "</element>"
3. Attributes -> just not enough added value
4. Angle Brackets (Markup) "<", ">"
5. xsd (just not needed)
6. All on top: xslt, xpath, WS-x, SOAP
If you subtract the bad, then there is nothing left...
For what I do ((fast) message transformation) you require a (message) tree (and nothing else). That would be:
"XML-Elements only"... but still with angle brackets & repetition (of the element name): Both bad ;)
What am I missing / am I missing anything ?
Can we consider XML to only be a choice in rare circumstances?
But, any form of structured communication that works for humans (and this is a mark-up language that is supposed to work in the human as well as machine spheres) has to include a degree of apparent redundancy that actually applies clarity - well at least avoids ambiguity.
My preference is always JSON but XML is cool when it flows and has available tools.