| AnyEvent-XMPP documentation | Contained in the AnyEvent-XMPP distribution. |
AnyEvent::XMPP::Namespaces - XMPP namespace collection and aliasing class
use AnyEvent::XMPP::Namespaces qw/xmpp_ns set_xmpp_ns_alias/; set_xmpp_ns_alias (stanzas => 'urn:ietf:params:xml:ns:xmpp-stanzas');
This module represents a simple namespaces aliasing mechanism to ease handling of namespaces when traversing AnyEvent::XMPP::Node objects and writing XML with AnyEvent::XMPP::Writer.
There are already some aliases defined for the XMPP XML namespaces which make handling of namepsaces a bit easier:
stream => http://etherx.jabber.org/streams xml => http://www.w3.org/XML/1998/namespace streams => urn:ietf:params:xml:ns:xmpp-streams session => urn:ietf:params:xml:ns:xmpp-session stanzas => urn:ietf:params:xml:ns:xmpp-stanzas sasl => urn:ietf:params:xml:ns:xmpp-sasl bind => urn:ietf:params:xml:ns:xmpp-bind tls => urn:ietf:params:xml:ns:xmpp-tls client => jabber:client roster => jabber:iq:roster version => jabber:iq:version auth => jabber:iq:auth iq_oob => jabber:iq:oob x_oob => jabber:x:oob disco_info => http://jabber.org/protocol/disco#info disco_items => http://jabber.org/protocol/disco#items register => http://jabber.org/features/iq-register iqauth => http://jabber.org/features/iq-auth data_form => jabber:x:data ping => urn:xmpp:ping vcard => vcard-temp pubsub => http://jabber.org/protocol/pubsub pubsub_own => http://jabber.org/protocol/pubsub#owner pubsub_ev => http://jabber.org/protocol/pubsub#event
Returns am uri for the registered $alias or undef if none exists.
This method tries to find whether there is a alias $alias_or_namespace_uri
registered and if not it returns $alias_or_namespace_uri.
Sets an $alias for the $namespace_uri.
Robin Redeker, <elmex at ta-sa.org>, JID: <elmex at jabber.org>
Copyright 2007, 2008 Robin Redeker, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| AnyEvent-XMPP documentation | Contained in the AnyEvent-XMPP distribution. |
package AnyEvent::XMPP::Namespaces; no warnings; use strict; require Exporter; our @EXPORT_OK = qw/xmpp_ns set_xmpp_ns_alias xmpp_ns_maybe/; our @ISA = qw/Exporter/; our %NAMESPACES = ( client => 'jabber:client', component => 'jabber:component:accept', stream => 'http://etherx.jabber.org/streams', streams => 'urn:ietf:params:xml:ns:xmpp-streams', stanzas => 'urn:ietf:params:xml:ns:xmpp-stanzas', sasl => 'urn:ietf:params:xml:ns:xmpp-sasl', bind => 'urn:ietf:params:xml:ns:xmpp-bind', tls => 'urn:ietf:params:xml:ns:xmpp-tls', roster => 'jabber:iq:roster', register => 'jabber:iq:register', version => 'jabber:iq:version', auth => 'jabber:iq:auth', session => 'urn:ietf:params:xml:ns:xmpp-session', xml => 'http://www.w3.org/XML/1998/namespace', disco_info => 'http://jabber.org/protocol/disco#info', disco_items => 'http://jabber.org/protocol/disco#items', register_f => 'http://jabber.org/features/iq-register', iqauth => 'http://jabber.org/features/iq-auth', data_form => 'jabber:x:data', iq_oob => 'jabber:iq:oob', x_oob => 'jabber:x:oob', muc => 'http://jabber.org/protocol/muc', muc_user => 'http://jabber.org/protocol/muc#user', muc_owner => 'http://jabber.org/protocol/muc#owner', search => 'jabber:iq:search', x_delay => 'jabber:x:delay', delay => 'urn:xmpp:delay', ping => 'urn:xmpp:ping', vcard => 'vcard-temp', vcard_upd => 'vcard-temp:x:update', pubsub => 'http://jabber.org/protocol/pubsub', pubsub_own => 'http://jabber.org/protocol/pubsub#owner', pubsub_ev => 'http://jabber.org/protocol/pubsub#event', );
sub xmpp_ns { return $NAMESPACES{$_[0]} }
sub xmpp_ns_maybe { my ($alias) = @_; return unless defined $alias; my $n = xmpp_ns ($alias); $n ? $n : $alias }
sub set_xmpp_ns_alias { $NAMESPACES{$_[0]} = $_[1] }
1; # End of AnyEvent::XMPP