It is. I don't say that it is not. I just say it is not a good one. By good one I define one that would be efficient in describing the datastructures we encounter most frequently in our programming practice - a general
one. XML is well suited for describing structure in text document's not general programming datastructures.
The issue is quite subtle - but look at XML::Simple. It tries to make a tree datastructure from XML file, but to do it it needs to make so many gueses that for quite uncomplicated structures you get anomalies - for instance when you save the structure build from XML and get some entirely different XML.