XML, Data, and the Web
XML is a specification for adding semantic meaning to data by allowing users to define their own vocabularies in the form of descriptive tags. The combination of tags and content comprise an XML document. For example, Listing 1 illustrates the use of XML to describe invoice data.
Listing 1 An XML Invoice
<invoice> <date>January 8, 2001</date> <to>Zandaro Tool Works</to> <from>Silicon Industries, LTD</from> <item>Laser Knife</item> <amount>239.45</amount> </invoice>
Listing 1 demonstrates several aspects of XML:
Tags describe the data they encompass.
XML is hierarchical, with elements nested within each other.
There is one beginning element that encompasses all other elements.
XML's simplicity of designthe ability to describe data with tagshas been a significant impetus to the creation of data vocabularies for B2B e-commerce. For example, XML-based data descriptions now provide an alternative to EDI (Electronic Data Interchange), a widely used specification for exchanging information between business partners, suppliers, and distributors. However, EDI's cost makes it prohibitive for small to medium-sized organizations, while those able to afford EDI find that it locks them into data formats that are difficult to change and expensive to evolve. Companies migrating to XML from EDI not only gain the advantage of basing their data descriptions on a globally recognized W3C standard, but acquire the immediate ability to transport their data over the web using well-established globally-recognizable protocols such as HTTP and TCP/IP.
In many ways, this technological combination of XML and HTTP is at the heart of a revolution that's upsetting the balance of power in distributed computing. XML's growing role in distributed computing derives primarily from its simplicity, which allows it to combine with other technologies and acquire new synergies and capabilities.
For example, there are three key design elements that by omission contribute to XML's success:
No display is assumed. XML makes no assumptions about how it will be displayed. Auxiliary technologies such as style sheets provide this capability.
There is no innate support for data typing. DTDs and XML schema provide support for defining the structure and data types associated with an XML document.
No transport is assumed. The XML specification makes no assumption about how XML moves from one place to another across the Internet.
This latter aspect of XMLno assumptions about transporthas opened the door to new ideas about delivering XML over HTTP. It's also the basis for two important XML technologies: XML-RPC and SOAP.