[jdev] Mixing Attribute Namespaces
Jonathan Dickinson
jonathan.dickinson at k2.com
Fri Mar 6 07:42:38 CST 2009
> -----Original Message-----
> From: jdev-bounces at jabber.org [mailto:jdev-bounces at jabber.org] On
> Behalf Of Fabio Forno
> Sent: 06 March 2009 11:24 AM
> To: Jabber/XMPP software development list
> Subject: Re: [jdev] Mixing Attribute Namespaces
>
> ...
>
> Taken from the perspective of 4/5 years of XMPP evolution, XEP-72
> should be superseded by something better, such as io-data. XEP-72 just
> replicates the typical HTTP request/response message pattern, where
> XMPP has few advantages.
Wow! Had I known that XEP existed! Thanks for the heads-up. Still you are sending a schema that you *may* not have control over (for example, the CMC schema in the XEP may have attributes with a qualified form). This means that attribute namespaces are still required.
@Everyone:
Looking over that XEP I see a lot of functionality that could be achieved with PubSub - why are we making yet another protocol?
If I hash my brains out very quickly (it needs a lot of cleaning up):
--> Get latest item from user at company.org/services foo schemata (where schemata is a well-known name)
<--
<message from='pubsub.shakespeare.lit' to='francisco at denmark.lit'>
<event xmlns='http://jabber.org/protocol/pubsub#event'>
<items node='services foo schemata'>
<item id='2008-01-19'>
<schemata xmlns="...">
<header><!-- header schema --></header>
<in><!-- in schema --></in>
<out><!-- out schema --></out>
<status><!-- status schema --></status>
</schemata>
</item>
</items>
</event>
<delay xmlns='urn:xmpp:delay' stamp='2003-12-13T23:58:37Z'/>
</message>
... Generate proxy code etc.
--> Send request
<iq type='set'
from='francisco at denmark.lit'
to='pubsub.shakespeare.lit'
id='create2'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<create node='services foo 2008-01-19 abc'/> <!-- Note that the node before abc is the name of the item above -->
<configure>
<!-- Allow me to create, delete, maybe even user x to read as well -->
</configure>
<psrpc xmlns="...">
<header><!-- header data -->
<in><!-- in data -->
</psrpc>
</pubsub>
</iq>
... Verify that ABC is available
If not, generate a new one
... Create node services foo 2008-01-19 abc
... Create node services foo 2008-01-19 status abc (where status is a well known name)
... Create subscription automatically to services foo 2008-01-19 abc
... Start processing
<-- Respond with node id
<iq type='result'
from='pubsub.shakespeare.lit'
to='francisco at denmark.lit'
id='create2'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<create node='services foo 2008-01-19 abc'/>
</pubsub>
</iq>
Optional: (for status notifications)
{
--> Subscribe to services foo 2008-01-19 status abc.
<-- Subscribe success.
}
... Process
<-- Done!
<message from='pubsub.shakespeare.lit' to='francisco at denmark.lit' id='foo'>
<event xmlns='http://jabber.org/protocol/pubsub#event'>
<items node='services foo 2008-01-19 abc'>
<item id='ae890ac52d0df67ed7cfdf51b644e901'/>
</items>
</event>
</message>
--> Request for services foo 2008-01-19 abc 'ae890ac52d0df67ed7cfdf51b644e901'
<-- Result
<message from='pubsub.shakespeare.lit' to='francisco at denmark.lit' id='foo'>
<event xmlns='http://jabber.org/protocol/pubsub#event'>
<items node='services foo 2008-01-19 abc'>
<item id='ae890ac52d0df67ed7cfdf51b644e901'>
<out xmlns="..."><!-- XML out data --></out>
</item>
</items>
</event>
</message>
<-- Delete node (or keep it, server should have a time-based disposal facility)
... Delete services foo 2008-01-19 abc
... Delete services foo 2008-01-19 status abc
Jonathan
More information about the JDev
mailing list