[
Lists Home |
Date Index |
Thread Index
]
Mike Champion wrote:
> In my worldview -- which admittedly is not XML 1.x's -- elements are
> first class "objects" in "XML" (along with attributes and text, and not
> much else). Every thing is is just syntax -- entities, CDATA sections,
> comments [not sure about PIs ..], namespace declarations and prefixes
> [just a funny syntax for creating unique names]. XML 1.x is merely a
> widely adopted and semi-standardized syntax for serializing these labeled,
> attributed tree thingies.
What if we re-phrase that as 'elements, attributes and text are first class
objects in XML *documents*'. In the aggregate, the instance possibilities
manifest in your corpus of documents limn your XML worldview. Likewise, my
incrementally different view of the boundaries of the XML universe is
dictated by a different collection of instance documents, and so on for each
of us as our respective experiences differ. Following the classic premises
of SGML we might each implement our respective worldview in running code as
a profile customized for our own unique situation. In fact, I argue that in
building processing nodes (call them web services if you will) that is still
precisely what we should do: build to the specific requirements of our
unique processing rather than trying for some more-embracing common
denominator which inevitably vitiates the value which an idiosyncratic
implementation of our particular expertise might afford.
XML, however, is fundamentally different because its impetus is to realize
SGML on the Web and the first of its ten cardinal goals is that XML be
straightforwardly usable over the Internet. The 'straightforwardly' is the
killer. The most simple-mindedly obvious straightforward networking of
markup probably is, in fact, to propound a worldview, an object model, a
vocabulary, a profile which offers, at the semantic level, the union of all
reasonable and worthwhile subsets of that model, profile, vocabulary, etc.,
and then to press for its acceptance. Of course, that is not XML: for one
thing, it constrains the intended extensibility in a manner antithetical to
XML's design premises. It is also an approach which is hopelessly at odds
with the Internet. The Internet is not a network, but an internetwork, and
new subnets are not incorporated into it by restructuring them to a common
object model, but by providing them access to a universal addressing syntax.
The Internet is characterized by the diversity of its nodes in both
structure and capability, given the fundamental constraint that each is
addressable by particular syntax of bits on the wire. At a higher level, the
Web is another such internetwork, where a different addressing syntax--the
URL scheme--is the requisite common denominator.
It turns out that the only straightforward application of XML to the
Internet (or the Web) is realized with idiosyncratic nodes, each of which
utilizes the full extensibility of XML to implement its unique object model,
but each of which also is prepared to traffic on the wire with syntax
emanating from, and conditioned by, very different object models. In baldest
terms, the extensibility intended in XML and the interoperability designed
into the internetwork are best realized when each node is open at least to
the possibility of receiving and acting upon arbitrary XML. We do much
better designing (and the resulting design is more straightforward) from
that premise than from the converse notion that we need only that syntax
which is required to serialize a pre-agreed common denominator object model.
As a practical matter, a given node will of course need to reject or to
ignore or perhaps re-route documents addressed to it which it is not
intended top handle: e.g. an invoice processor is not intended to deal with
resource scheduling. There will also be cases where the object model from
which a document issues, and inevitably therefore the chosen syntax of that
document, is incomprehensible to the object model of a receiving node, even
though both of those nodes might, in semantic terms, process orders, or
invoices, or otherwise have an inherent potential interoperability. Such
instance failures to process are expected by the internetwork worldview,
precisely because the power of universal addressing and of universal
comprehensibility at a syntactic level ignore *by design* the possible
semantic mismatch which might result. That syntactic universality--that
standardization--is the fundamental strength of XML, just as it is of the
Internet and of the Web.
Outside of an homogenous enterprise network we will not reach the semantic
agreement which allows the object to have precedence over the syntax. The
recognition of that truth is why the first design goal of XML is
straightforward applicability to the Internet, and all that implies of the
standardization of syntax at the expense of agreed object models.
Respectfully,
Walter Perry
|