• 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.