XML facilitates blame.
When you're trying to exchange data in the corporate world, where data = money, and your data exchange doesn't work, XML saves the day.
With JSON or binary data, you better have a solid, unambiguous document describing what elements and data types go where, capitalization and all. I've spent hours hunting down issues, even when I wrote both the sender and the recipient. Multi-language debugathons are a great way to spend an afternoon.
With XML, if the data validates against the agreed-upon schema, it's the recipient's fault. If it doesn't, it's the sender's fault.
And knowing [who to blame] is half the battle.