Extensible Markup Language (XML) allows you to describe data using human readable text. In the following example, note how each data value is encapsulated in an opening and closing element tag pair that names the data field:
Those familiar with Hypertext Markup Language (HTML) will recognize the similarities. It looks like HTML except that I have created my own element names such as "book" and "title". HTML already defines the element "title" but here I have given it a new semantic, or meaning, that differs within the context of my "book" definition. Indeed, this ability to define new elements is why XML is considered "extensible".<book> <isbn>0764506927</isbn> <title>Learning Java through Game Programming</title> <author>David Wallace Croft</author> <publisher>Hungry Minds, Inc.</publisher> <publication-date>2001</publication-date> </book>
Despite the flexibility in being able to define new element names, there are enough constraints in the XML format that parsers do not need to be uniquely customized for each definition. Such restrictions include a strict hierarchical nesting of elements. For example, the following XML syntax with overlapping tag boundaries would generate a parsing error:
While the above may be valid in HTML, the proper way to nest the elements in XHTML -- a definition of XML which replaces HTML -- would be as follows:<b><i>Illegal XML</b></i>
<i><b>Legal XML</b></i>
There are now hundreds, perhaps thousands, of XML definitions covering everything from genealogy to electronic commerce. Wherever data needs to be exchanged in a transparent manner using standard parsers that are readily available in all of the major programming languages, XML provides a solution.
Further information on the subject of XML is easily accessible from a large number
of sources as XML has rapidly become a widely adopted technology. As a quickly
digestible introduction and handy reference book, I recommend the