XML (eXtensible Markup Language) is a standard for representing structured information. It is, in the words of Software Magazine, “a standard, simple, self-describing way of encoding both text and data so that content can be processed with relatively little human intervention and exchanged across diverse hardware, operating systems, and applications. Information formatted in XML can be exchanged across platforms, languages, and applications, and can be used with a wide range of development tools and utilities.”
XML, though similar to HTML (HyperText Markup Language), is actually derived from SGML (Standard Generalized Markup Language). HTML is the language in which web pages are written. However, there are 2 key differences between XML and HTML. Firstly, XML does not describe presentation of the information, unlike the HTML tags; it only focuses on the structure and content of the data. Secondly, XML, as is evident in its name, is extensible. Tags can be defined by anyone or any group, unlike HTML whose tags are laid down by the World Wide Web Consortium (W3C).
This extensibility along with the separation of form and content is making XML the universal choice for exchanging data between applications. Writes Kevin Werbach in Release 1.0, “The great thing about XML for Web services is that its attributes are self-defining. If Sam builds a stock-quote application and defines fields for price and volume, he can enclose them with and tags, making it easy for Ethel (or a system she builds) to parse what he was trying to do.”
Just as the use of HTML made web publishing easy and made Web publishing easy, XML too holds out the promise of making communications between applications easier. This facet makes it the building block for Web Services. Writes Chad Dickerson in InfoWorld:
XML is a markup specification language and XML files are data: They just sit there until you run a program which displays them (like a browser), or does some work with them (like a converter which writes the data in another format, or a database which reads the data), or modifies them (like an editor).
In other words, as much as we all love it, XML alone is more or less useless. Although XML can be wonderful for trading data among applications, applications do not magically appear around XML documents. XML does, however, function as a great point of leverage for applications, which leads us to Web services.
So, XML by itself is not the solution. But it is a good start. Writes Clay Shirky in XML.com, “XML makes it possible for businesses or developer groups to share data, provided they agree on the semantics of that data in advance. This is not to say XML is not an enormous advance. It plainly is. However, its advance lies in aiding data interoperability where shared semantics can be assumed. It does nothing at all to create semantic interoperability.”