Except where the database is used to index a collection of XML data. E.g. we store dependency graphs (the output of a natural language parser) in an XML database (Berkeley DB XML), which allows us to quickly select a subset of interesting parses using XPath queries.
Sure, we could use a different storage format and query language. But there are good XML databases and XPath is well-known and standardized. The actual XML is normally only touched by machines.
Some warped sense of ease from using Java and .NET libraries to read / write XML?
XML is also very ubiquitous in library support, having been around for over 15 years.
I think the most negative reaction to XML is the extreme overuse for things like component configuration, where there's no defaults, and every property and class name must be specified. Also, the misguided tag closing (<tag>content</> would have sufficed) adds to the verbosity.
1: https://plus.google.com/118095276221607585885/posts/RK8qyGVa...
Urgh... maybe the data I have had the misfortune of working with are not exercising the proper options. The ratio of metadata to data always seems too high.
Overuse is likely the cause of my dislike.
For me, it was either use an off the shelf parser or write my own. The config files at the time were all like apache's config - various combinations of weird syntax.
XML came with parsers off the shelf and gave you some validation up front. If there were other tools at the time available, I probably hadn't found them, and XML had a lot of buzz so it was easy to find.
These days all the libraries have parsers for a variety of easy to use data formats, from JSON and YAML to Protobufs and ini files.
One of my favorite sayings is still "XML is like violence. If it does not solve the problem, you are not using enough."