I have a pedantic point - XML is not a language, per se.
It is a standard for specifying how to put data into a text file.
XML is not any kind of a replacement for HTML - it is, instead, a standard that can be used for creating a specification for (for example) a version of HTML (and is currently being used for that very purpose).
HTML code can then be checked against the XML-based specification in an automated manner, without ambiguity.
The confusion comes from XML's unfortunate name (XMS would have made things clearer, I think), and the fact that it operates at a higher level of abstraction than most people typically work at.