I just finished writing last month's Extreme XML column* entitled The XML Litmus Test: Understanding When and Why to Use XML. The article is a more formal write up from my weblog post The XML Litmus Test expanded to contain examples of appropriate and inappropriate uses of XML as well as with some of the criteria for choosing XML fleshed out. Below is an excerpt from the article which contains the core bits that I hope everyone who reads it remembers
XML is the appropriate tool for the job if the following criteria are satisfied by choosing XML as the data representation format for a given application.
1. there is a need to interoperate across multiple software platforms
2. one or more of the off-the-shelf tools for dealing with XML can be leveraged when producing or consuming the data
3. parsing performance is not critical
4. the content is not primarily binary content such as a music or image file
5. the content does not contain control characters or any other characters that are illegal in XML
If the expected usage scenario does not satisfy most or all of the above criteria then it doesn't make much sense to use XML as the data representation format for the situation in question.
As the program manager responsible for XML programming models and schema validation in the .NET Framework I've seen lots and lots of inappropriate usage of XML both from internal teams and our customers. Hopefully once this article is published I can stop repeating myself and just send people links to it next time I see someone asking how to escape control characters in XML or see another online discussion of "binary" XML.
* Yes, it's late