XML - So What?
What is XML? XML stands for eXtensible Mark-up Language. Thus XML is purely a mark-up language which allows the developer to define their own elements, attributes and document structure. This is done through something called a DTD - Document Type Definition. Of course the world of XML is more than this, incorporating other acronyms such as XSLT, XPath and XPointer and a few more. All of these are useful for displaying, manipulating and extracting data from an XML document.
So, if XML is "just" another mark-up language, which can be adapted to suit your own needs - why is there all this fuss about XML? Well, following on from what was said about standards below, XML is undoubtedly an important development. For it is a standard for creating your own mark-up standard. Thus XML has produced off shoots such as MathML (used to mark-up up mathematical content) and WML (used to mark-up wireless content). I created my own standard to mark-up my guest book entries. On the one hand, XML is great for business since there is at last a standard for creating your own proprietary mark-up language. On the other hand, though, it is nothing new. XML is based on SGML, which has been around for a couple of decades and also enables this. SGML, however, is very complicated, whereas XML can be developed by people with little technical knowledge. Possibly this is where it's real strength lies, since the XML structure could in principal be developed at boardroom level, leaving it's implementation using XSLT and suchlike to the developer.
Mark-up in essence, is a way of applying meaning to content. Thus the HTML element <P> tells the browser that its contents are to be displayed as a paragraph. And all systems that understand HTML will know this. However business has been exchanging information for years without the need for XML. Thus whilst XML is undoubtedly very useful for business, it is essentially nothing new or at least not that revolutionary. A company could come up with its own format for defining content and happily use this instead of XML. Of course if interacting with other companies it would have to explain its format, but with XML businesses also have to agree on the structure of their XML document, before information can be reliably exchanged.
If you have read this far you may well get the impression that I am a little skeptical about XML. This is not quite true. I believe XML is a very powerful tool for making business interactions a lot easier and more standardized. What I am skeptical about, though, is much of the hype I have read about XML, the worst of which is along the lines of "XML will empower computers to do business by themselves". Let's get one thing straight, XML cannot and never will do such a thing. Either I am completely missing the point or there's a lot of rubbish being written about XML by people who should know better. The problem which this creates is that people who have no reason to know better believe the hype and expect XML to do things it cannot do.
In XML, the program interpreting the XML code, whilst being able to determine whether the XML is correct through the DTD and how to display the content using XSLT, can have no idea about the actual meaning of the information it is handling. Thus, whilst an XML interpreter may be able to correctly display a tag such as <ADDRESS> and will be able to determine that the an element of type ADDRESS can contain other elements such as <POSTCODE>, <STREET> and <CITY>, it has no way of knowing that an address is the location of someone's home or office. Of course it may well know what to do with the data because the businesses exchanging the data have previously agreed what these tags are for. However, the sort of thing described above implies that I can write my own XML file, say about aerodynamics, and send it to any XML interpreter. This will, upon processing the file, know that my <LIFT> tag refers to the aerodynamic upward force generated by a suitably shaped wing, and not to a cabin enabling vertical movement in a large building. This is what I understand by the claim, "XML will empower computers to do business by themselves". XML cannot and never will be able to this.