[
Lists Home |
Date Index |
Thread Index
]
"Simon St.Laurent" wrote:
>
> ...
>
> We're stuck with namespaces tacked on to XML 1.0, along with a lack of
> understanding on how best to work with namespaces and URIs.
I put the blame squarely on namespaces, not URIs.
When namepaces where invented there were two duelling philosophies, just
as there were when XML was invented. One was that namespaces are just a
syntactic trick for uniquifying names and they don't "mean anything",
(just as XML was just syntax and it didn't "mean anything"). The other
view was that namespaces are, in and of themselves, things with identity
and thus some meaning and internal structure. (and that XML had a latent
data model that roughly corresponded to SGML's ESIS)
In both cases it was decided to ignore the semantics and concentrate on
the syntax. In both cases it came back to bite us in the end. XML APIs
and query languages could not get away without thinking about semantics
so they ran off in different, sometimes incompatible directions, for
both XML and namespaces.
The XSLT view of namespaces is that they are purely labels that have no
intrinsic meaning. They can therefore be used as a short-form for
literal result elements. Sure, the original namespace designer may not
have intended them to be used that way but nobody owns the "meaning" of
punctuation!
The RDDL view is that they DO have identity, meaning and structure and
can thus have schemas and stylesheets associated with them. It's a
little bit weird to associate stuff with them without describing their
internal structure but that's just part of the confusion. Maybe the
internal structure of namespaces can be described as a 1-tuple where the
only member is the namespace name.
One view or the other needs to be standardized.
If namespaces are NOT things with identity and internal structure (i.e.
they are just punctuation) then we should never have used URIs to refer
to them. Obviously most people DO think of them as "things." If this
view is to be standardized then we need to formally define the internal
structure of namespaces and their interactions.
Part of the reason for avoiding this was so that it would be possible to
process documents with multiple namespaces without doing a network fetch
to find out anything about the internal structure of those namespaces.
But it only makes sense to process a namespace without one of
a) some a priori knowledge of it (in which case the web hit is not
necessary) or
b) some kind configuration file
*IF* you presume that the internal structure of namespaces is irrelevant
to processing -- which brings us back to the punctuation view.
Right now we are trying to have our cake and eat it too and this is the
root of the confusion. On days ending in a Y they are just punctuation.
On days where someone in Seattle drinks coffee they are things with
identity.
Paul Prescod
|