[JDEV] Namespaces

Kriggs kriggs at rebirth-rpg.com
Mon Jul 8 05:05:40 CDT 2002


I'd like some confirmation on something right now. Can someone tell me if I'm 
right in the following examples:

<a:b/>
<a b="value"/>
<tag a:b="value"/>
<a><b/></a>
<a xmlns="r">

where a is b's parent, and r is root? And am I forgetting anything?

OK, now to talk about a part of the Programmer's Guide that lost me:

"[...] The Jabber DTD is referenced from other XML documents and streams with 
the identifier jabber:client.

<?xml version="1.0" encoding="UTF-8" ?>

<!-- The root of it all. -->

<!ELEMENT jabber ((
  presence | 
  iq | 
  message
)*)>"

So the jabber element contains presence, iq and message. Where did x and 
error go? And does the jabber here mean jabber:client:jabber? Which would 
mean that for those tags, (presence, iq, message, ...) the jabber:... is 
implied? Maybe it means stream:stream:jabber, with jabber:... still implied, 
in which case the xmlns... just confuses me... Or maybe it's an error in the 
documentation? Or maybe I'm not seeing something?

The clearest idea I have so far is that stream:stream is a "function" tag 
that uses the jabber:client namespace. So everything inside of the 
stream:stream uses jabber:client as it's parent. jabber:... would not be 
implied, and so presence, iq, message, etc. would actually be 
jabber:client:presence, jabber:client:iq, jabber:client:message, etc... All 
(or most) namespaces, such as jabber:iq:auth and jabber:iq:version, pull from 
the root level, meaning that jabber: is filled with a bunch of namespaces, 
and jabber:client contains only the "function" tags. The root tags would be 
stream: (for the transport layer's independence from jabber), jabber, and 
anything we'd want to invent? If I didn't keep getting the impression that 
there's an implied "jabber:..." in front of the main "function" tags, I would 
have a better time believing my explanation :)

If the answer to all my hoohaa is that jabber just fakes having a 
structure... well, for starters, I'd be very disappointed in what seemed like 
such a good effort, then I'd use the explanation I've come up with, despite 
it all. The chances of jabber evolving to have a tag of the same name at the 
exact wrong place seems unlikely.

Can anyone tell me where I'm wrong and/or right in all this?

Thank you!

-Kriggs
RBJab



More information about the JDev mailing list