XML works like language because it can take complex structural relationships and reduce them to a comprehensible and portable format. The rules for defining structure are simple. What can be done with that structure is very broad and can encompass highly complex systems and ideas.
For the last six months or so I have been working with a technology that Allaire developer Simeon Simeonov invented to solve a very simple problem: How to move recordsets created by ColdFusion applications to other ColdFusion applications. At first this seems fairly simple, since it involves the same application server with the same recordset format.
But, of course, it's not that simple at all. The taxonomy used for a database underlying each of the applications is built according to the whims of a DBA. Where one person might name the title of a recordset describing a person as "title", another might call that "salutation". Having to manually dig through every possible application that might want to share data is impossible, and establishing cross-industry "customer profile" standards would only solve one instance of the problem. Our big, messy, language-proficient brains can map the relationship between the two concepts easily. Computers, of course, are a little more brittle. In fact, they're stupid.
The Web rewards stupid solutions to complex problems because they can be re-used easily and with great flexibility across all of the different platforms, operating systems and applications that connect to it. HTTP, for instance, is not elegant, but it works.
Sim solved the problem by thinking intelligently about the stupidity of the system. If you couldn't move a recordset around in its native format, maybe you could create a generic description of recordsets that could provide enough contextual information about what the recordset contains so that the receiving application could decode it and work with it. Sim's solution was to use XML to describe recordsetsand any other data structureusing some generic properties that they all share. When he was done, he realized that he had something much more useful than a system for moving recordsets between different ColdFusion applications. He had a way to move data between any application framework anywhere on the Internet. Allaire named it WDDX for Web Distributed Data eXchange.