• I think David has nailed the key point here.

    >Because an XML document is usually a text file it can be read by almost any OS.

    >>Yes, other formats are faster but that limits cross platform compatibility.

    XML has been offered up a standard format for presenting data. This being the case, the most important decider of its success is that the standard is widely -- dare I hope universally - adopted. In the case of XML, the major players have got behind this particular standard and, as far as I am aware, co-operated in a really positive way. In fact, it's about the only thing I see Microsoft/IBM and Sun all in agreement about. Microsoft gave support to the standards effort, releasing good neta parsers and documentation for free before the standard was ratified -- and then immediately made their release parsers compliant to the final published W3C standard -- removing some proprietary gizmos they had put in there before the standard was fixed.

    I use XML a lot and I like it. It's excellent for messaging, I am continually surprised at how powerful and versatile XSL-T is, and I consider it a very useful tool for a wide range of development problems. Sometimes there is an elegance you can't get in procedural programming.

    Human readibility of data documents *is* useful when you are a developer, even if the end-consumer (a computer) doesn't care, someone still has to make and debug the thing. The repeated tags in an XML document lend themselves very well to current compression techniques, and through schemas we have a *standard* way of validating data documents/messages that we don't have for flatfiles.

    Sure XML is just not useful for high volume/long term storage and retrieval -- but we have databases for that. It's a bit like writing off SQL Server because the games aren't as good as on the playstation.