[xmppwg] Namespace with fixed prefix issues
jer at jabber.org
Fri Oct 25 17:50:09 CDT 2002
The usage of namespaces in jabber, in particular the stream part, began
about the same time that namespaces themselves originated (1999), and
this is an unfortunate relic of the inexperience of those times. There
are two comments on this usage though, one that makes it not as bad as
you describe, and one that can lead us in the right direction.
Although the ideology of XML Namespaces is one where you can mix
different elements, our usage of it as a stream header on a tcp socket
is one where no other namespace or element could show up and conflict.
The spec requires that when you open up a tcp socket to 5222, you
initiate it with a stream element in the stream namespace, so there can
be no potential conflict (as defined in the current spec and
implementations) with any other element. The usage of any other prefix
or element produces the same stream initialization error/failure.
So it's part of our legacy, and I don't like it either :) Couldn't the
spec require that the namespaces and prefixes are actually handled
properly, but for compatibility reasons the "stream:" prefix should be
used? If so, is it worth it?
On Friday, October 25, 2002, at 02:01 PM, Lisa Dusseault wrote:
> I've seen a bit of discussion relating to the "stream" namespace, but
> none considering the dangers of fixing the prefix to a specific string.
> It's my understanding of the XML Namespace specification that the
> purpose of a namespace is to avoid colliding element identifiers. The
> purpose of prefixes is to reduce the cost of using namespaces, and a
> prefix should have only local significance. However, it seems that
> fixing prefixes to a specific short string significantly reduces the
> collision-avoidance benefit from namespaces. The problem is that some
> other group defining XML elements or attributes could decided to fix
> their prefix to "stream" as well.
> To see why, imagine that a geology data XML schema defined the schema
> "http://www.geology.org/water/running/stream" to have the prefix
> "stream". It would be impossible to put data from the geology schema
> a XMPP stream (either as a body, or as attributes or elements extending
> the stream itself) or vice versa because the prefixes would conflict.
> An algorithm constructing an XML document should normally be able to
> assign prefixes arbitrarily. So, it should be able to assign the prefix
> "stream" to the geology data, then if there is a need to embed xmpp
> schema data inside that, the algorithm could assign the prefix
> or "foo" to the xmpp streams namespace. Alternatively, the algorithm
> should be able to assign the prefix "1" to the xmpp stream namespace,
> and the prefix "2" to the geology stream namespace.
> xmppwg mailing list
> xmppwg at jabber.org
More information about the xmppwg