[
Lists Home |
Date Index |
Thread Index
]
I've been away from this list for a few days, and a bit thankful for
that! I'm not going to try to sort out who said what, and perhaps
it's all my fault for using the term "self-describing" in a post the
other day. Here's my "why XML is a Good Thing, warts and all"
elevator speech for your consideration:
At the most basic level, XML is simply a standardized syntax, or
metalanguage for builging languages, for describing labelled trees.
But such a definition understates the potential of XML just as badly
as the statement "XML is the silver bullet for interoperability"
overstates it. "XML" provides not only this rather abstract
metalanguage, but also a community of experts, tools, examples, and
associated specifications that provide a substantial percentage of
the infrastructure that underlies Web-based applications and business
integration efforts.
If silver bullets do indeed kill werewolves, XML won't give you one.
XML is about providing the infrastructure to produce, buy, and sell
the silver and bullet molds. If you've got werewolves in your local
haunted forest, you are a lot better off if you can buy silver and
bullet molds at quickly and economically than if you have to prospect
for the silver, mine it, refine it, and mold it into bullets all by
yourself.
Let's look at the definition of XML more closely to see why it
provides this infrastructure: XML is about standardized syntax,
labels, and trees.
-- The "standardized syntax" means that you usually don't have to
write your own grammars and parsers, you can leverage XML. XML is
not a perfect or optimal syntax, but it's good enough for most
purposes, and its limitations for any particular problem are
generally overwhelmed by the benefits provided by the network effect.
-- The "labels" make it much easier for human readers and simple
programs to associate a value with a description of what it is all
about. This is not a general solution to the (probably insolveable)
problem of representing the "meaning" of data, but it is a very
practical solution to real world information exchange problems. C'mon
folks, there's no "standard" for paper invoices, and they are written
up using different languages, formats, currencies, and private
vocabularies for centuries. I submit that human accounting clerks in
bureaucratic organizations are not all that much better at pattern
recognition than modern specialized software can be, and if "labels"
have taken the world of business as far as it has, that's something
worth taking seriously. If formal type systems and ontologies can do
better, fine ... but I'll believe that when I see it working well in
widespread practice.
-- "Trees" mean that an XML document can describe a hierarchical
package of inter-related information. This lets XML easily represent
"documents" and "messages" of the sort that have enabled human and
organization communication since the invention of paper.
As individual components, standardized syntax, labels, and trees are
useful but a bit boring. For that matter, as individual components,
HTTP, HTML, and URIs are useful, but a bit boring. But just as
putting HTTP, HTML, and URIs together in a single system gave us the
far-from-boring World Wide Web, XML 1.0 (or even Common XML) is much
more than the sum of its component parts and can indeed -- salted
with a bit of hype to get the network effect started, and combined
with the Web technologies -- provide an awful lot of infrastructure
for communication and business even without GUI tools, standards for
every business document, and ever-higher levels of complexity built
on top of the XML core.
|