| XML
is a markup language used for storing and describing data using
a tagging system. It is a plain text document making it easy to
transport and removing any platform dependencies. Data has been
stored and transported for some time using formats such as CSV (comma
separated values), tab delimited, Microsoft Excel spreadsheets etc.
However, each of these suffers from serious limitations. For example,
an Excel spreadsheet is written in a proprietory format and is therefore
poor when the situation dictates that it must be consumed on a non-Microsoft
machine. CSV files on the ther hand are plain text and not tied
to a particular platform. However, a CSV has other limitations,
some minor but others can be major. Line endings are typically used
to indicate a new record, but line endings differ on Microsft and
Unix machines. The order of the data fields in the document is important,
an application will almost certainly brake if extra data fields
are added by the data provider without the knowedge of the data
consumer. Lastly, how would you describe hierarchical, or relational
data in a flaf file such as a CSV?
XML helps to overcome these problems. Its self describing nature,
using tags to indicate where fields and records start and finish,
removes the ambiguity of relying on line endings. It no longer matters
if a data field in a CSV contains a comma. The order of the fields
is not important since they are referenced explicitly by the name
of the tag describing them. Lastly, XML is capable representing
relationships in data, just as a relational database can.
In addition XML has a variety of supporting technologies that make
it extremely powerful. Schemas enable developers to check the validity
of data. XSLT provides a way for devlopers to tranform one XML document
in to another document, supporting plenty of functionaity that is
analogous to SQL queries.
As you can see, XML provides solutions to many problems encountered
when trying to share data between parties. The fact that XML can
be transported over HTTP (the same as standard web pages) has led
to its widespread use in many of todays web applications, both enterprise
level and much smaller.
|