source: perl/lib/Net/Jabber/Namespaces.pm @ a75309a

barnowl_perlaimdebianrelease-1.10release-1.4release-1.5release-1.6release-1.7release-1.8release-1.9
Last change on this file since a75309a was 0ff8d110, checked in by Alejandro R. Sedeño <asedeno@mit.edu>, 17 years ago
Adding XML::Stream, Net::XMPP, and Net::Jabber to perl/lib/
  • Property mode set to 100644
File size: 90.1 KB
Line 
1##############################################################################
2#
3#  This library is free software; you can redistribute it and/or
4#  modify it under the terms of the GNU Library General Public
5#  License as published by the Free Software Foundation; either
6#  version 2 of the License, or (at your option) any later version.
7#
8#  This library is distributed in the hope that it will be useful,
9#  but WITHOUT ANY WARRANTY; without even the implied warranty of
10#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11#  Library General Public License for more details.
12#
13#  You should have received a copy of the GNU Library General Public
14#  License along with this library; if not, write to the
15#  Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16#  Boston, MA  02111-1307, USA.
17#
18#  Copyright (C) 1998-2004 Jabber Software Foundation http://jabber.org/
19#
20##############################################################################
21
22package Net::Jabber::Namespaces;
23
24=head1 NAME
25
26Net::Jabber::Namespaces
27
28=head1 SYNOPSIS
29
30  Net::Jabber::Namespaces is a pure documentation
31  module.  It provides no code for execution, just
32  documentation on how the Net::Jabber modules handle
33  namespaces.
34
35=head1 DESCRIPTION
36
37  Net::Jabber::Namespaces is fully documented by Net::XMPP::Namesapces.
38
39=head1 AUTHOR
40
41Ryan Eatmon
42
43=head1 COPYRIGHT
44
45This module is free software; you can redistribute it and/or modify
46it under the same terms as Perl itself.
47
48=cut
49
50use Net::XMPP::Namespaces;
51
52$Net::XMPP::Namespaces::SKIPNS{'__netjabber__'} = 1;
53
54#-----------------------------------------------------------------------------
55# jabber:iq:agent
56#-----------------------------------------------------------------------------
57{
58    &add_ns(ns    => 'jabber:iq:agent',
59            tag   => 'query',
60            xpath => {
61                      Agents      => {
62                                      type => 'flag',
63                                      path => 'agents',
64                                     },
65                      Description => { path => 'description/text()' },
66                      JID         => {
67                                      type => 'jid',
68                                      path => '@jid',
69                                     },
70                      Name        => { path => 'name/text()' },
71                      GroupChat   => {
72                                      type => 'flag',
73                                      path => 'groupchat',
74                                     },
75                      Register    => {
76                                      type => 'flag',
77                                      path => 'register',
78                                     },
79                      Search      => {
80                                      type => 'flag',
81                                      path => 'search',
82                                     },
83                      Service     => { path => 'service/text()' },
84                      Transport   => { path => 'transport/text()' },
85                      URL         => { path => 'url/text()' },
86                      Agent       => { type => 'master' },
87                     },
88            docs  => {
89                      module     => 'Net::Jabber',
90                      deprecated => 1,
91                     },
92
93           );
94}
95
96#-----------------------------------------------------------------------------
97# jabber:iq:agents
98#-----------------------------------------------------------------------------
99{
100    &add_ns(ns    => 'jabber:iq:agents',
101            tag   => 'query',
102            xpath => {
103                      Agent  => {
104                                 type  => 'child',
105                                 path  => 'agent',
106                                 child => {
107                                           ns         => 'jabber:iq:agent',
108                                           skip_xmlns => 1,
109                                          },
110                                 calls => [ 'Add' ],
111                                },
112                      Agents => {
113                                 type  => 'child',
114                                 path  => 'agent',
115                                 child => { ns => 'jabber:iq:agent' },
116                                },
117                     },
118            docs  => {
119                      module     => 'Net::Jabber',
120                      deprecated => 1,
121                     },
122
123           );
124}
125
126#-----------------------------------------------------------------------------
127# jabber:iq:autoupdate
128#-----------------------------------------------------------------------------
129{
130    &add_ns(ns    => 'jabber:iq:autoupdate',
131            tag   => 'query',
132            xpath => {
133                      Beta     => {
134                                   type  => 'child',
135                                   path  => 'beta',
136                                   child => { ns => '__netjabber__:iq:autoupdate:release' },
137                                   calls => [ 'Add' ],
138                                  },
139                      Dev      => {
140                                   type  => 'child',
141                                   path  => 'dev',
142                                   child => { ns => '__netjabber__:iq:autoupdate:release' },
143                                   calls => [ 'Add' ],
144                                  },
145                      Release  => {
146                                   type  => 'child',
147                                   path  => 'release',
148                                   child => { ns => '__netjabber__:iq:autoupdate:release' },
149                                   calls => [ 'Add' ],
150                                  },
151                      Releases => {
152                                   type  => 'child',
153                                   path  => '*',
154                                   child => { ns => '__netjabber__:iq:autoupdate:release' },
155                                  },
156                     },
157            docs  => {
158                      module => 'Net::Jabber',
159                     },
160
161           );
162}
163
164#-----------------------------------------------------------------------------
165# __netjabber__:iq:autoupdate:release
166#-----------------------------------------------------------------------------
167{
168    &add_ns(ns    => '__netjabber__:iq:autoupdate:release',
169            xpath => {
170                      Desc     => { path => 'desc/text()' },
171                      Priority => { path => '@priority' },
172                      URL      => { path => 'url/text()' },
173                      Version  => { path => 'version/text()' },
174                      Release  => { type => 'master' },
175                     },
176            docs  => {
177                      module => 'Net::Jabber',
178                      name   => 'jabber:iq:autoupdate - release objects',
179                     },
180           );
181}
182
183#-----------------------------------------------------------------------------
184# jabber:iq:browse
185#-----------------------------------------------------------------------------
186{
187    &add_ns(ns    => 'jabber:iq:browse',
188            tag   => 'item',
189            xpath => {
190                      Category => { path => '@category' },
191                      Item     => {
192                                   type  => 'child',
193                                   path  => '*[name() != "ns"]',
194                                   child => { ns           => '__netjabber__:iq:browse:item',
195                                              specify_name => 1,
196                                              tag          => 'item',
197                                            },
198                                   calls => [ 'Add' ],
199                                  },
200                      Items    => {
201                                   type  => 'child',
202                                   path  => '*[name() != "ns"]',
203                                   child => { ns => '__netjabber__:iq:browse:item' },
204                                  },
205                      JID      => {
206                                   type => 'jid',
207                                   path => '@jid',
208                                  },
209                      Name     => { path => '@name' },
210                      NS       => {
211                                   type => 'array',
212                                   path => 'ns/text()',
213                                  },
214                      Type     => { path => '@type' },
215                      Browse   => { type => 'master' }
216                     },
217            docs  => {
218                      module     => 'Net::Jabber',
219                      deprecated => 1,
220                     },
221
222           );
223}
224
225#-----------------------------------------------------------------------------
226# __netjabber__:iq:browse:item
227#-----------------------------------------------------------------------------
228{
229    &add_ns(ns    => '__netjabber__:iq:browse:item',
230            tag   => 'item',
231            xpath => {
232                      Category => { path => '@category' },
233                      Item     => {
234                                   type  => 'child',
235                                   path  => '*[name() != "ns"]',
236                                   child => { ns           => '__netjabber__:iq:browse:item',
237                                              specify_name => 1,
238                                              tag          => 'item',
239                                            },
240                                   calls => [ 'Add' ],
241                                  },
242                      Items    => {
243                                   type  => 'child',
244                                   path  => '*[name() != "ns"]',
245                                   child => { ns => '__netjabber__:iq:browse:item' },
246                                  },
247                      JID      => {
248                                   type => 'jid',
249                                   path => '@jid',
250                                  },
251                      Name     => { path => '@name' },
252                      NS       => {
253                                   type => 'array',
254                                   path => 'ns/text()',
255                                  },
256                      Type     => { path => '@type' },
257                      Browse   => { type => 'master' }
258                     },
259            docs  => {
260                      module     => 'Net::Jabber',
261                      name       => 'jabber:iq:browse - item objects',
262                      deprecated => 1,
263                     },
264
265           );
266}
267
268#-----------------------------------------------------------------------------
269# jabber:iq:conference
270#-----------------------------------------------------------------------------
271{
272    &add_ns(ns    => 'jabber:iq:conference',
273            tag   => 'query',
274            xpath => {
275                      ID         => { path => 'id/text()' },
276                      Name       => { path => 'name/text()' },
277                      Nick       => { path => 'nick/text()' },
278                      Privacy    => {
279                                     type => 'flag',
280                                     path => 'privacy',
281                                    },
282                      Secret     => { path => 'secret/text()' },
283                      Conference => { type => 'master' },
284                     },
285            docs  => {
286                      module => 'Net::Jabber',
287                     },
288
289           );
290}
291
292#-----------------------------------------------------------------------------
293# jabber:iq:filter
294#-----------------------------------------------------------------------------
295{
296    &add_ns(ns    => 'jabber:iq:filter',
297            tag   => 'query',
298            xpath => {
299                      Rule  => {
300                                type  => 'child',
301                                path  => 'rule',
302                                child => { ns => '__netjabber__:iq:filter:rule' },
303                                calls => [ 'Add' ],
304                               },
305                      Rules => {
306                                type  => 'child',
307                                path  => 'rule',
308                                child => { ns => '__netjabber__:iq:filter:rule' },
309                               },
310                     },
311            docs  => {
312                      module     => 'Net::Jabber',
313                      deprecated => 1,
314                     },
315
316           );
317}
318
319#-----------------------------------------------------------------------------
320# __netjabber__:iq:filter:rule
321#-----------------------------------------------------------------------------
322{
323    &add_ns(ns     => '__netjabber__:iq:filter:rule',
324            xpath  => {
325                       Body        => { path => 'body/text()' },
326                       Continued   => { path => 'continued/text()' },
327                       Drop        => { path => 'drop/text()' },
328                       Edit        => { path => 'edit/text()' },
329                       Error       => { path => 'error/text()' },
330                       From        => { path => 'from/text()' },
331                       Offline     => { path => 'offline/text()' },
332                       Reply       => { path => 'reply/text()' },
333                       Resource    => { path => 'resource/text()' },
334                       Show        => { path => 'show/text()' },
335                       Size        => { path => 'size/text()' },
336                       Subject     => { path => 'subject/text()' },
337                       Time        => { path => 'time/text()' },
338                       Type        => { path => 'type/text()' },
339                       Unavailable => { path => 'unavailable/text()' },
340                       Rule        => { type => 'master' },
341                      },
342            docs  => {
343                      module     => 'Net::Jabber',
344                      name       => 'jabber:iq:filter - rule objects',
345                      deprecated => 1,
346                     },
347
348           );
349}
350
351#-----------------------------------------------------------------------------
352# jabber:iq:gateway
353#-----------------------------------------------------------------------------
354{
355    &add_ns(ns    => 'jabber:iq:gateway',
356            tag   => 'query',
357            xpath => {
358                      Desc    => { path => 'desc/text()' },
359                      JID     => {
360                                  type => 'jid',
361                                  path => 'jid/text()',
362                                 },
363                      Prompt  => { path => 'prompt/text()' },
364                      Gateway => { type => 'master' },
365                     },
366            docs  => {
367                      module => 'Net::Jabber',
368                     },
369
370           );
371}
372
373#-----------------------------------------------------------------------------
374# jabber:iq:last
375#-----------------------------------------------------------------------------
376{
377    &add_ns(ns    => 'jabber:iq:last',
378            tag   => 'query',
379            xpath => {
380                      Message => { path => 'text()' },
381                      Seconds => { path => '@seconds' },
382                      Last    => { type => 'master' },
383                     },
384            docs  => {
385                      module => 'Net::Jabber',
386                     },
387
388           );
389}
390
391#-----------------------------------------------------------------------------
392# jabber:iq:oob
393#-----------------------------------------------------------------------------
394{
395    &add_ns(ns    => 'jabber:iq:oob',
396            tag   => 'query',
397            xpath => {
398                      Desc => { path => 'desc/text()' },
399                      URL  => { path => 'url/text()' },
400                      Oob  => { type => 'master' },
401                     },
402            docs  => {
403                      module => 'Net::Jabber',
404                     },
405
406           );
407}
408
409#-----------------------------------------------------------------------------
410# jabber:iq:pass
411#-----------------------------------------------------------------------------
412{
413    &add_ns(ns    => 'jabber:iq:pass',
414            tag   => 'query',
415            xpath => {
416                      Client     => { path => 'client/text()' },
417                      ClientPort => { path => 'client/@port' },
418                      Close      => {
419                                     type => 'flag',
420                                     path => 'close',
421                                    },
422                      Expire     => { path => 'expire/text()' },
423                      OneShot    => {
424                                     type => 'flag',
425                                     path => 'oneshot',
426                                    },
427                      Proxy      => { path => 'proxy/text()' },
428                      ProxyPort  => { path => 'proxy/@port' },
429                      Server     => { path => 'server/text()' },
430                      ServerPort => { path => 'server/@port' },
431                      Pass       => { type => 'master' },
432                     },
433            docs  => {
434                      module => 'Net::Jabber',
435                     },
436
437           );
438}
439
440#-----------------------------------------------------------------------------
441# jabber:iq:rpc
442#-----------------------------------------------------------------------------
443{
444    &add_ns(ns    => 'jabber:iq:rpc',
445            tag   => 'query',
446            xpath => {
447                      MethodCall     => {
448                                         type  => 'child',
449                                         path  => 'methodCall',
450                                         child => { ns => '__netjabber__:iq:rpc:methodCall' },
451                                         calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
452                                        },
453                      MethodResponse => {
454                                         type  => 'child',
455                                         path  => 'methodResponse',
456                                         child => { ns => '__netjabber__:iq:rpc:methodResponse' },
457                                         calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
458                                        },
459                     },
460            docs  => {
461                      module => 'Net::Jabber',
462                     },
463
464           );
465}
466
467#-----------------------------------------------------------------------------
468# __netjabber__:iq:rpc:methodCall
469#-----------------------------------------------------------------------------
470{
471    &add_ns(ns    => '__netjabber__:iq:rpc:methodCall',
472            xpath => {
473                      MethodName => { path => 'methodName/text()' },
474                      Params     => {
475                                     type  => 'child',
476                                     path  => 'params',
477                                     child => { ns => '__netjabber__:iq:rpc:params' },
478                                     calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
479                                     },
480                      MethodCall => { type => 'master' },
481                     },
482            docs  => {
483                      module => 'Net::Jabber',
484                      name   => 'jabber:iq:rpc - methodCall objects',
485                     },
486
487           );
488}
489       
490#-----------------------------------------------------------------------------
491# __netjabber__:iq:rpc:methodResponse
492#-----------------------------------------------------------------------------
493{
494    &add_ns(ns    => '__netjabber__:iq:rpc:methodResponse',
495            xpath => {
496                      Fault  => {
497                                 type  => 'child',
498                                 path  => 'fault',
499                                 child => { ns => '__netjabber__:iq:rpc:fault' },
500                                 calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
501                                },
502                      Params => {
503                                 type  => 'child',
504                                 path  => 'params',
505                                 child => { ns => '__netjabber__:iq:rpc:params' },
506                                 calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
507                                },
508                     },
509            docs  => {
510                      module => 'Net::Jabber',
511                      name   => 'jabber:iq:rpc - methodResponse objects',
512                     },
513
514           );
515}
516       
517#-----------------------------------------------------------------------------
518# __netjabber__:iq:rpc:fault
519#-----------------------------------------------------------------------------
520{
521    &add_ns(ns    =>'__netjabber__:iq:rpc:fault',
522            xpath => {
523                      Value => {
524                                type  => 'child',
525                                path  => 'value',
526                                child => { ns => '__netjabber__:iq:rpc:value' },
527                                calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
528                               },
529                     },
530            docs  => {
531                      module => 'Net::Jabber',
532                      name   => 'jabber:iq:rpc - fault objects',
533                     },
534
535           );
536}
537       
538#-----------------------------------------------------------------------------
539# __netjabber__:iq:rpc:params
540#-----------------------------------------------------------------------------
541{
542    &add_ns(ns    => '__netjabber__:iq:rpc:params',
543            xpath => {
544                      Param  => {
545                                 type  => 'child',
546                                 path  => 'param',
547                                 child => { ns => '__netjabber__:iq:rpc:param' },
548                                 calls => [ 'Add' ],
549                                },
550                      Params => {
551                                 type  => 'child',
552                                 path  => 'param',
553                                 child => { ns => '__netjabber__:iq:rpc:param' },
554                                },
555                     },
556            docs  => {
557                      module => 'Net::Jabber',
558                      name   => 'jabber:iq:rpc - params objects',
559                     },
560
561           );
562}
563
564#-----------------------------------------------------------------------------
565# __netjabber__:iq:rpc:param
566#-----------------------------------------------------------------------------
567{
568    &add_ns(ns    =>'__netjabber__:iq:rpc:param',
569            xpath => {
570                      Value => {
571                                type  => 'child',
572                                path  => 'value',
573                                child => { ns => '__netjabber__:iq:rpc:value' },
574                                calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
575                               },
576                     },
577            docs  => {
578                      module => 'Net::Jabber',
579                      name   => 'jabber:iq:rpc - param objects',
580                     },
581           );
582}
583       
584#-----------------------------------------------------------------------------
585# __netjabber__:iq:rpc:value
586#-----------------------------------------------------------------------------
587{
588    &add_ns(ns    => '__netjabber__:iq:rpc:value',
589            xpath => {
590                      Array    => {
591                                   type  => 'child',
592                                   path  => 'array',
593                                   child => { ns => '__netjabber__:iq:rpc:array' },
594                                   calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
595                                  },
596                      Base64   => { path => 'base64/text()' },
597                      Boolean  => { path => 'boolean/text()' },
598                      DateTime => { path => 'dateTime.iso8601/text()' },
599                      Double   => { path => 'double/text()' },
600                      I4       => { path => 'i4/text()' },
601                      Int      => { path => 'int/text()' },
602                      String   => { path => 'string/text()' },
603                      Struct   => {
604                                   type  => 'child',
605                                   path  => 'struct',
606                                   child => { ns => '__netjabber__:iq:rpc:struct' },
607                                   calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
608                                  },
609                      Value    => { path => 'value/text()' },
610                      RPCValue => { type => 'master' },
611                     },
612            docs  => {
613                      module => 'Net::Jabber',
614                      name   => 'jabber:iq:rpc - value objects',
615                     },
616           );
617}
618
619#-----------------------------------------------------------------------------
620# __netjabber__:iq:rpc:struct
621#-----------------------------------------------------------------------------
622{
623    &add_ns(ns    => '__netjabber__:iq:rpc:struct',
624            xpath => {
625                      Member   => {
626                                  type  => 'child',
627                                  path  => 'member',
628                                  child => { ns => '__netjabber__:iq:rpc:struct:member' },
629                                  calls => [ 'Add' ],
630                                 },
631                      Members => {
632                                  type  => 'child',
633                                  path  => 'member',
634                                  child => { ns => '__netjabber__:iq:rpc:struct:member' },
635                                 },
636                     },
637            docs  => {
638                      module => 'Net::Jabber',
639                      name   => 'jabber:iq:rpc - struct objects',
640                     },
641
642           );
643}
644
645#-----------------------------------------------------------------------------
646# __netjabber__:iq:rpc:struct:member
647#-----------------------------------------------------------------------------
648{
649    &add_ns(ns    =>'__netjabber__:iq:rpc:struct:member',
650            xpath => {
651                      Name   => { path => 'name/text()' },
652                      Value  => {
653                                 type  => 'child',
654                                 path  => 'value',
655                                 child => { ns => '__netjabber__:iq:rpc:value' },
656                                 calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
657                                },
658                      Member => { type => 'master' },
659                     },
660            docs  => {
661                      module => 'Net::Jabber',
662                      name   => 'jabber:iq:rpc - member objects',
663                     },
664
665          );
666}
667
668#-----------------------------------------------------------------------------
669# __netjabber__:iq:rpc:array
670#-----------------------------------------------------------------------------
671{
672    &add_ns(ns    => '__netjabber__:iq:rpc:array',
673            xpath => {
674                      Data  => {
675                                type  => 'child',
676                                path  => 'data',
677                                child => { ns => '__netjabber__:iq:rpc:array:data' },
678                                calls => [ 'Add' ],
679                               },
680                      Datas => {
681                                type  => 'child',
682                                path  => 'data',
683                                child => { ns => '__netjabber__:iq:rpc:array:data' },
684                               },
685                     },
686            docs  => {
687                      module => 'Net::Jabber',
688                      name   => 'jabber:iq:rpc - array objects',
689                     },
690
691           );
692}
693
694#-----------------------------------------------------------------------------
695# __netjabber__:iq:rpc:array:data
696#-----------------------------------------------------------------------------
697{
698    &add_ns(ns    =>'__netjabber__:iq:rpc:array:data',
699            xpath => {
700                      Value => {
701                                type  => 'child',
702                                path  => 'value',
703                                child => { ns => '__netjabber__:iq:rpc:value' },
704                                calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
705                               },
706                     },
707            docs  => {
708                      module => 'Net::Jabber',
709                      name   => 'jabber:iq:rpc - data objects',
710                     },
711
712           );
713}
714
715#-----------------------------------------------------------------------------
716# jabber:iq:search
717#-----------------------------------------------------------------------------
718{
719    &add_ns(ns    => 'jabber:iq:search',
720            tag   => 'query',
721            xpath => {
722                      Email        => { path => 'email/text()' },
723                      Family       => { path => 'family/text()' },
724                      First        => { path => 'first/text()' },
725                      Given        => { path => 'given/text()' },
726                      Instructions => { path => 'instructions/text()' },
727                      Item         => {
728                                       type  => 'child',
729                                       path  => 'item',
730                                       child => { ns => '__netjabber__:iq:search:item' },
731                                       calls => [ 'Add' ],
732                                      },
733                      Items        => {
734                                       type  => 'child',
735                                       path  => 'item',
736                                       child => { ns => '__netjabber__:iq:search:item', },
737                                      },
738                      Key          => { path => 'key/text()' },
739                      Last         => { path => 'last/text()' },
740                      Name         => { path => 'name/text()' },
741                      Nick         => { path => 'nick/text()' },
742                      Truncated    => {
743                                       type => 'flag',
744                                       path => 'truncated',
745                                      },
746                      Search       => { type => 'master' },
747                     },
748            docs  => {
749                      module => 'Net::Jabber',
750                     },
751           );
752}
753
754#-----------------------------------------------------------------------------
755# __netjabber__:iq:search:item
756#-----------------------------------------------------------------------------
757{
758    &add_ns(ns    => '__netjabber__:iq:search:item',
759            xpath => {
760                      Email  => { path => 'email/text()' },
761                      Family => { path => 'family/text()' },
762                      First  => { path => 'first/text()' },
763                      Given  => { path => 'given/text()' },
764                      JID    => {
765                                 type => 'jid',
766                                 path => '@jid',
767                                },
768                      Key    => { path => 'key/text()' },
769                      Last   => { path => 'last/text()' },
770                      Name   => { path => 'name/text()' },
771                      Nick   => { path => 'nick/text()' },
772                      Item   => { type => 'master' },
773                     },
774            docs  => {
775                      module => 'Net::Jabber',
776                      name   => 'jabber:iq:search - item objects',
777                     },
778           );
779}
780
781#-----------------------------------------------------------------------------
782# jabber:iq:time
783#-----------------------------------------------------------------------------
784{
785    &add_ns(ns    => 'jabber:iq:time',
786            tag   => 'query',
787            xpath => {
788                      Display => {
789                                  type  => ['special','time-display'],
790                                  path  => 'display/text()',
791                                 },
792                      TZ      => {
793                                  type  => ['special','time-tz'],
794                                  path  => 'tz/text()',
795                                 },
796                      UTC     => {
797                                  type  => ['special','time-utc'],
798                                  path  => 'utc/text()',
799                                 },
800                      Time    => { type => [ 'master', 'all' ] }
801                      },
802            docs  => {
803                      module => 'Net::Jabber',
804                     },
805           );
806}
807                                   
808#-----------------------------------------------------------------------------
809# jabber:iq:version
810#-----------------------------------------------------------------------------
811{
812    &add_ns(ns    => 'jabber:iq:version',
813            tag   => 'query',
814            xpath => {
815                      Name    => { path => 'name/text()' },
816                      OS      => {
817                                  type => [ 'special', 'version-os' ],
818                                  path => 'os/text()',
819                                 },
820                      Ver     => {
821                                  type => [ 'special' ,'version-version' ],
822                                  path => 'version/text()',
823                                 },
824                      Version => { type => [ 'master', 'all' ] }
825                     },
826            docs  => {
827                      module => 'Net::Jabber',
828                     },
829           );
830}
831
832#-----------------------------------------------------------------------------
833# jabber:x:autoupdate
834#-----------------------------------------------------------------------------
835{
836    &add_ns(ns    => 'jabber:x:autoupdate',
837            tag   => 'x',
838            xpath => {
839                      JID => {
840                              type => 'jid',
841                              path => '@jid',
842                             },
843                      Autoupdate => { type => 'master' },
844                     },
845            docs  => {
846                      module => 'Net::Jabber',
847                     },
848           );
849}
850                 
851#-----------------------------------------------------------------------------
852# jabber:x:conference
853#-----------------------------------------------------------------------------
854{
855    &add_ns(ns    => 'jabber:x:conference',
856            tag   => 'x',
857            xpath => {
858                      JID => {
859                              type => 'jid',
860                              path => '@jid',
861                             },
862                      Conference => { type => 'master' },
863                     },
864            docs  => {
865                      module => 'Net::Jabber',
866                     },
867           );
868}
869
870#-----------------------------------------------------------------------------
871# jabber:x:data
872#-----------------------------------------------------------------------------
873{
874    &add_ns(ns    => 'jabber:x:data',
875            tag   => 'x',
876            xpath => {
877                      Field        => {
878                                       type  => 'child',
879                                       path  => 'field',
880                                       child => { ns => '__netjabber__:x:data:field' },
881                                       calls => [ 'Add' ],
882                                      },
883                      Fields       => {
884                                       type  => 'child',
885                                       path  => 'field',
886                                       child => { ns => '__netjabber__:x:data:field', },
887                                      },
888                      Form         => { path => '@form' },
889                      Instructions => { path => 'instructions/text()' },
890                      Item         => {
891                                       type  => 'child',
892                                       path  => 'item',
893                                       child => { ns => '__netjabber__:x:data:item' },
894                                       calls => [ 'Add' ],
895                                      },
896                      Items        => {
897                                       type  => 'child',
898                                       path  => 'item',
899                                       child => { ns => '__netjabber__:x:data:item', },
900                                      },
901                      Reported     => {
902                                       type  => 'child',
903                                       path  => 'reported',
904                                       child => { ns => '__netjabber__:x:data:reported' },
905                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
906                                      },
907                      Title        => { path => 'title/text()' },
908                      Type         => { path => '@type' },
909                      Data         => { type => 'master' },
910                     },
911            docs  => {
912                      module => 'Net::Jabber',
913                     },
914           );
915}
916
917#-----------------------------------------------------------------------------
918# __netjabber__:x:data:field
919#-----------------------------------------------------------------------------
920{
921    &add_ns(ns    => '__netjabber__:x:data:field',
922            xpath => {
923                      Desc     => { path => 'desc/text()' },
924                      Label    => { path => '@label' },
925                      Option   => {
926                                   type  => 'child',
927                                   path  => 'option',
928                                   child => { ns => '__netjabber__:x:data:field:option' },
929                                   calls => [ 'Add' ],
930                                  },
931                      Options  => {
932                                   type  => 'child',
933                                   path  => 'option',
934                                   child => { ns => '__netjabber__:x:data:field:option', },
935                                  },
936                      Required => {
937                                   type => 'flag',
938                                   path => 'required',
939                                  },
940                      Type     => { path => '@type' },
941                      Value    => {
942                                   type => 'array',
943                                   path => 'value/text()',
944                                  },
945                      Var      => { path => '@var' },
946                      Field  => { type => 'master' },
947                     },
948            docs  => {
949                      module => 'Net::Jabber',
950                      name   => 'jabber:x:data - field objects',
951                     },
952           );
953}
954
955#-----------------------------------------------------------------------------
956# __netjabber__:x:data:field:option
957#-----------------------------------------------------------------------------
958{
959    &add_ns(ns    => '__netjabber__:x:data:field:option',
960            xpath => {
961                      Label  => { path => '@label' },
962                      Value  => { path => 'value/text()' },
963                      Option => { type => 'master' },
964                     },
965            docs  => {
966                      module => 'Net::Jabber',
967                      name   => 'jabber:x:data - option objects',
968                     },
969           );
970}
971       
972#-----------------------------------------------------------------------------
973# __netjabber__:x:data:item
974#-----------------------------------------------------------------------------
975{
976    &add_ns(ns    => '__netjabber__:x:data:item',
977            xpath => {
978                      Field        => {
979                                       type  => 'child',
980                                       path  => 'field',
981                                       child => { ns => '__netjabber__:x:data:field' },
982                                       calls => [ 'Add' ],
983                                      },
984                      Fields       => {
985                                       type  => 'child',
986                                       path  => 'field',
987                                       child => { ns => '__netjabber__:x:data:field', },
988                                      },
989                      Item         => { type => 'master' },
990                     },
991            docs  => {
992                      module => 'Net::Jabber',
993                      name   => 'jabber:x:data - item objects',
994                     },
995           );
996}
997
998#-----------------------------------------------------------------------------
999# __netjabber__:x:data:reported
1000#-----------------------------------------------------------------------------
1001{
1002    &add_ns(ns    => '__netjabber__:x:data:reported',
1003            xpath => {
1004                      Field        => {
1005                                       type  => 'child',
1006                                       path  => 'field',
1007                                       child => { ns => '__netjabber__:x:data:field' },
1008                                       calls => [ 'Add' ],
1009                                      },
1010                      Fields       => {
1011                                       type  => 'child',
1012                                       path  => 'field',
1013                                       child => { ns => '__netjabber__:x:data:field', },
1014                                      },
1015                      Reported     => { type => 'master' },
1016                     },
1017            docs  => {
1018                      module => 'Net::Jabber',
1019                      name   => 'jabber:x:data - reported objects',
1020                     },
1021           );
1022}
1023
1024#-----------------------------------------------------------------------------
1025# jabber:x:delay
1026#-----------------------------------------------------------------------------
1027{
1028    &add_ns(ns    => 'jabber:x:delay',
1029            tag   => 'x',
1030            xpath => {
1031                      From    => {
1032                                  type => 'jid',
1033                                  path => '@from',
1034                                 },
1035                      Message => { path => 'text()' },
1036                      Stamp   => {
1037                                  type => 'timestamp',
1038                                  path => '@stamp',
1039                                 },
1040                      Delay   => { type => 'master' },
1041                     },
1042            docs  => {
1043                      module => 'Net::Jabber',
1044                     },
1045           );
1046}
1047
1048#-----------------------------------------------------------------------------
1049# jabber:x:encrypted
1050#-----------------------------------------------------------------------------
1051{
1052    &add_ns(ns    => 'jabber:x:encrypted',
1053            tag   => 'x',
1054            xpath => {
1055                      Message   => { path => 'text()' },
1056                      Encrypted => { type => 'master' },
1057                     },
1058            docs  => {
1059                      module => 'Net::Jabber',
1060                     },
1061           );
1062}
1063       
1064#-----------------------------------------------------------------------------
1065# jabber:x:event
1066#-----------------------------------------------------------------------------
1067{
1068    &add_ns(ns    => 'jabber:x:event',
1069            tag   => 'x',
1070            xpath => {
1071                      Composing => {
1072                                    type => 'flag',
1073                                    path => 'composing',
1074                                   },
1075                      Delivered => {
1076                                    type => 'flag',
1077                                    path => 'delivered',
1078                                   },
1079                      Displayed => {
1080                                    type => 'flag',
1081                                    path => 'displayed',
1082                                   },
1083                      ID        => { path => 'id/text()' },
1084                      Offline   => {
1085                                    type => 'flag',
1086                                    path => 'offline',
1087                                   },
1088                      Event     => { type => 'master' },
1089                     },
1090            docs  => {
1091                      module => 'Net::Jabber',
1092                     },
1093           );
1094}
1095
1096#-----------------------------------------------------------------------------
1097# jabber:x:expire
1098#-----------------------------------------------------------------------------
1099{
1100    &add_ns(ns    => 'jabber:x:expire',
1101            tag   => 'x',
1102            xpath => {
1103                      Seconds => { path => '@seconds' },
1104                      Expire  => { type => 'master' },
1105                     },
1106            docs  => {
1107                      module => 'Net::Jabber',
1108                     },
1109           );
1110}
1111
1112#-----------------------------------------------------------------------------
1113# jabber:x:oob
1114#-----------------------------------------------------------------------------
1115{
1116    &add_ns(ns    => 'jabber:x:oob',
1117            tag   => 'x',
1118            xpath => {
1119                      Desc => { path => 'desc/text()' },
1120                      URL  => { path => 'url/text()' },
1121                      Oob  => { type => 'master' },
1122                     },
1123            docs  => {
1124                      module => 'Net::Jabber',
1125                     },
1126           );
1127}
1128
1129#-----------------------------------------------------------------------------
1130# jabber:x:roster
1131#-----------------------------------------------------------------------------
1132{
1133    &add_ns(ns    => 'jabber:x:roster',
1134            tag   => 'x',
1135            xpath => {
1136                      Item  => {
1137                                type  => 'child',
1138                                path  => 'item',
1139                                child => { ns => '__netjabber__:x:roster:item' },
1140                                calls => [ 'Add' ],
1141                               },
1142                      Items => {
1143                                type  => 'child',
1144                                path  => 'item',
1145                                child => { ns => '__netjabber__:x:roster:item', },
1146                               },
1147                      Roster => { type => 'master' },
1148                     },
1149            docs  => {
1150                      module => 'Net::Jabber',
1151                     },
1152           );
1153}
1154       
1155#-----------------------------------------------------------------------------
1156# __netjabber__:x:roster:item
1157#-----------------------------------------------------------------------------
1158{
1159    &add_ns(ns    => '__netjabber__:x:roster:item',
1160            xpath => {
1161                      Ask          => { path => '@ask' },
1162                      Group        => {
1163                                       type => 'array',
1164                                       path => 'group/text()',
1165                                      },
1166                      JID          => {
1167                                       type => 'jid',
1168                                       path => '@jid',
1169                                      },
1170                      Name         => { path => '@name' },
1171                      Subscription => { path => '@subscription' },
1172                      Item         => { type => 'master' },
1173                     },
1174            docs  => {
1175                      module => 'Net::Jabber',
1176                      name   => 'jabber:x:roster - item objects',
1177                     },
1178           );
1179}
1180
1181#-----------------------------------------------------------------------------
1182# jabber:x:signed
1183#-----------------------------------------------------------------------------
1184{
1185    &add_ns(ns    => 'jabber:x:signed',
1186            tag   => 'x',
1187            xpath => {
1188                      Signature => { path => 'text()' },
1189                      Signed    => { type => 'master' },
1190                     },
1191            docs  => {
1192                      module => 'Net::Jabber',
1193                     },
1194           );
1195}
1196
1197#-----------------------------------------------------------------------------
1198# http://jabber.org/protocol/bytestreams
1199#-----------------------------------------------------------------------------
1200{
1201    &add_ns(ns    => 'http://jabber.org/protocol/bytestreams',
1202            tag   => 'query',
1203            xpath => {
1204                      Activate => { path => 'activate/text()' },
1205                      SID               => { path => '@sid' },
1206                      StreamHost        => {
1207                                            type  => 'child',
1208                                            path  => 'streamhost',
1209                                            child => { ns => '__netjabber__:iq:bytestreams:streamhost' },
1210                                            calls => [ 'Add' ],
1211                                           },
1212                      StreamHosts       => {
1213                                            type  => 'child',
1214                                            path  => 'streamhost',
1215                                            child => { ns  => '__netjabber__:iq:bytestreams:streamhost', },
1216                                           },
1217                      StreamHostUsedJID => {
1218                                            type => 'jid',
1219                                            path => 'streamhost-used/@jid',
1220                                           },
1221                      ByteStreams       => { type => 'master' },
1222                     },
1223            docs  => {
1224                      module => 'Net::Jabber',
1225                     },
1226           );
1227}
1228
1229#-----------------------------------------------------------------------------
1230# __netjabber__:iq:bytestreams:streamhost
1231#-----------------------------------------------------------------------------
1232{
1233    &add_ns(ns    => '__netjabber__:iq:bytestreams:streamhost',
1234            xpath => {
1235                      Host       => { path => '@host' },
1236                      JID        => {
1237                                     type => 'jid',
1238                                     path => '@jid',
1239                                    },
1240                      Port       => { path => '@port' },
1241                      ZeroConf   => { path => '@zeroconf' },
1242                      StreamHost => { type => 'master' },
1243                     },
1244            docs  => {
1245                      module => 'Net::Jabber',
1246                      name   => 'http://jabber.org/protocol/bytestreams - streamhost objects',
1247                     },
1248           );
1249}
1250
1251#-----------------------------------------------------------------------------
1252# http://jabber.org/protocol/commands
1253#-----------------------------------------------------------------------------
1254{
1255    &add_ns(ns    => 'http://jabber.org/protocol/commands',
1256            tag   => 'command',
1257            xpath => {
1258                      Action    => { path => '@action' },
1259                      Node      => { path => '@node' },
1260                      Note      => {
1261                                    type  => 'child',
1262                                    path  => 'note',
1263                                    child => { ns  => '__netjabber__:iq:commands:note' },
1264                                    calls => [ 'Add' ],
1265                                   },
1266                      Notes     => {
1267                                    type  => 'child',
1268                                    path  => 'note',
1269                                    child => { ns => '__netjabber__:iq:commands:note', },
1270                                   },
1271                      SessionID => { path => '@sessionid' },
1272                      Status    => { path => '@status' },
1273                      Command   => { type => 'master' },
1274                     },
1275            docs  => {
1276                      module => 'Net::Jabber',
1277                     },
1278           );
1279}
1280
1281# xxx xml:lang
1282
1283#-----------------------------------------------------------------------------
1284# __netjabber__:iq:commands:note
1285#-----------------------------------------------------------------------------
1286{
1287    &add_ns(ns    => '__netjabber__:iq:commands:note',
1288            xpath => {
1289                      Type    => { path => '@type' },
1290                      Message => { path => 'text()' },
1291                      Note    => { type => 'master' },
1292                     },
1293            docs  => {
1294                      module => 'Net::Jabber',
1295                      name   => 'http://jabber.org/protocol/commands - note objects',
1296                     },
1297           );
1298}
1299
1300#-----------------------------------------------------------------------------
1301# http://jabber.org/protocol/disco#info
1302#-----------------------------------------------------------------------------
1303{
1304    &add_ns(ns    => 'http://jabber.org/protocol/disco#info',
1305            tag   => 'query',
1306            xpath => {
1307                      Feature    => {
1308                                     type  => 'child',
1309                                     path  => 'feature',
1310                                     child => { ns => '__netjabber__:iq:disco:info:feature' },
1311                                     calls => [ 'Add' ],
1312                                    },
1313                      Features   => {
1314                                     type  => 'child',
1315                                     path  => 'feature',
1316                                     child => { ns => '__netjabber__:iq:disco:info:feature' },
1317                                    },
1318                      Identity   => {
1319                                     type  => 'child',
1320                                     path  => 'identity',
1321                                     child => { ns => '__netjabber__:iq:disco:info:identity' },
1322                                     calls => [ 'Add' ],
1323                                    },
1324                      Identities => {
1325                                     type  => 'child',
1326                                     path  => 'identity',
1327                                     child => { ns => '__netjabber__:iq:disco:info:identity' },
1328                                    },
1329                      Node       => { path => '@node' },
1330                      DiscoInfo  => { type => 'master' },
1331                     },
1332            docs  => {
1333                      module => 'Net::Jabber',
1334                     },
1335           );
1336}
1337
1338#-----------------------------------------------------------------------------
1339# __netjabber__:iq:disco:info:feature
1340#-----------------------------------------------------------------------------
1341{
1342    &add_ns(ns    => '__netjabber__:iq:disco:info:feature',
1343            xpath => {
1344                      Var     => { path => '@var' },
1345                      Feature => { type => 'master' },
1346                     },
1347            docs  => {
1348                      module => 'Net::Jabber',
1349                      name   => 'http://jabber.org/protocol/disco#info - feature objects',
1350                     },
1351           );
1352}
1353
1354#-----------------------------------------------------------------------------
1355# __netjabber__:iq:disco:info:identity
1356#-----------------------------------------------------------------------------
1357{
1358    &add_ns(ns    => '__netjabber__:iq:disco:info:identity',
1359            xpath => {
1360                      Category => { path => '@category' },
1361                      Name     => { path => '@name' },
1362                      Type     => { path => '@type' },
1363                      Identity => { type => 'master' },
1364                     },
1365            docs  => {
1366                      module => 'Net::Jabber',
1367                      name   => 'http://jabber.org/protocol/disco#info - identity objects',
1368                     },
1369           );
1370}
1371
1372#-----------------------------------------------------------------------------
1373# http://jabber.org/protocol/disco#items
1374#-----------------------------------------------------------------------------
1375{
1376    &add_ns(ns    => 'http://jabber.org/protocol/disco#items',
1377            tag   => 'query',
1378            xpath => {
1379                      Item       => {
1380                                     type  => 'child',
1381                                     path  => 'item',
1382                                     child => { ns => '__netjabber__:iq:disco:items:item' },
1383                                     calls => [ 'Add' ],
1384                                    },
1385                      Items      => {
1386                                     type  => 'child',
1387                                     path  => 'item',
1388                                     child => { ns => '__netjabber__:iq:disco:items:item' },
1389                                    },
1390                      Node       => { path => '@node' },
1391                      DiscoItems => { type => 'master' },
1392                     },
1393            docs  => {
1394                      module => 'Net::Jabber',
1395                     },
1396           );
1397}
1398       
1399#-----------------------------------------------------------------------------
1400# __netjabber__:iq:disco:items:item
1401#-----------------------------------------------------------------------------
1402{
1403    &add_ns(ns    => '__netjabber__:iq:disco:items:item',
1404            xpath => {
1405                      Action => { path => '@action' },
1406                      JID    => {
1407                                 type => 'jid',
1408                                 path => '@jid',
1409                                },
1410                      Name   => { path => '@name' },
1411                      Node   => { path => '@node' },
1412                      Item   => { type => 'master' },
1413                     },
1414            docs  => {
1415                      module => 'Net::Jabber',
1416                      name   => 'http://jabber.org/protocol/disco#items - item objects',
1417                     },
1418           );
1419}
1420
1421#-----------------------------------------------------------------------------
1422# http://jabber.org/protocol/feature-neg
1423#-----------------------------------------------------------------------------
1424{
1425    &add_ns(ns    => 'http://jabber.org/protocol/feature-neg',
1426            tag   => 'feature',
1427            xpath => {
1428                      FeatureNeg => { type => 'master' },
1429                     },
1430            docs  => {
1431                      module => 'Net::Jabber',
1432                     },
1433           );
1434}
1435       
1436#-----------------------------------------------------------------------------
1437# http://jabber.org/protocol/muc
1438#-----------------------------------------------------------------------------
1439{
1440    &add_ns(ns    => 'http://jabber.org/protocol/muc',
1441            tag   => 'x',
1442            xpath => {
1443                      Password => { path => 'password/text()' },
1444                      MUC      => { type => 'master' },
1445                     },
1446            docs  => {
1447                      module => 'Net::Jabber',
1448                     },
1449           );
1450}
1451       
1452#-----------------------------------------------------------------------------
1453# http://jabber.org/protocol/muc#admin
1454#-----------------------------------------------------------------------------
1455{
1456    &add_ns(ns    => 'http://jabber.org/protocol/muc#admin',
1457            tag   => 'query',
1458            xpath => {
1459                      Item  => {
1460                                type  => 'child',
1461                                path  => 'item',
1462                                child => { ns => '__netjabber__:iq:muc:admin:item' },
1463                                calls => [ 'Add' ],
1464                               },
1465                      Items => {
1466                                type  => 'child',
1467                                path  => 'item',
1468                                child => { ns => '__netjabber__:iq:muc:admin:item' },
1469                               },
1470                      Admin => { type => 'master' },
1471                    },
1472            docs  => {
1473                      module => 'Net::Jabber',
1474                     },
1475           );
1476}
1477
1478#-----------------------------------------------------------------------------
1479# __netjabber__:iq:muc:admin:item
1480#-----------------------------------------------------------------------------
1481{
1482    &add_ns(ns    => '__netjabber__:iq:muc:admin:item',
1483            xpath => {
1484                      ActorJID    => {
1485                                      type => 'jid',
1486                                      path => 'actor/@jid',
1487                                     },
1488                      Affiliation => { path => '@affiliation' },
1489                      JID         => {
1490                                      type => 'jid',
1491                                      path => '@jid',
1492                                     },
1493                      Nick        => { path => '@nick' },
1494                      Reason      => { path => 'reason/text()' },
1495                      Role        => { path => '@role' },
1496                      Item        => { type => 'master' },
1497                     },
1498            docs  => {
1499                      module => 'Net::Jabber',
1500                      name   => 'http://jabber.org/protocol/muc#admin - item objects',
1501                     },
1502           );
1503}
1504
1505#-----------------------------------------------------------------------------
1506# http://jabber.org/protocol/muc#user
1507#-----------------------------------------------------------------------------
1508{
1509    &add_ns(ns    => 'http://jabber.org/protocol/muc#user',
1510            tag   => 'x',
1511            xpath => {
1512                      Alt        => { path => 'alt/text()' },
1513                      Invite     => {
1514                                     type  => 'child',
1515                                     path  => 'invite',
1516                                     child => { ns => '__netjabber__:x:muc:invite' },
1517                                     calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1518                                    },
1519                      Item       => {
1520                                     type  => 'child',
1521                                     path  => 'item',
1522                                     child => { ns => '__netjabber__:x:muc:item' },
1523                                     calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1524                                    },
1525                      Password   => { path => 'password/text()' },
1526                      StatusCode => { path => 'status/@code' },
1527                      User       => { type => 'master' },
1528                     },
1529            docs  => {
1530                      module => 'Net::Jabber',
1531                     },
1532           );
1533}
1534
1535#-----------------------------------------------------------------------------
1536# __netjabber__:x:muc:invite
1537#-----------------------------------------------------------------------------
1538{
1539    &add_ns(ns    => '__netjabber__:x:muc:invite',
1540            xpath => {
1541                      From   => {
1542                                 type => 'jid',
1543                                 path => '@from',
1544                                },
1545                      Reason => { path => 'reason/text()' },
1546                      To     => {
1547                                 type => 'jid',
1548                                 path => '@to',
1549                                },
1550                      Invite => { type => 'master' },
1551                     },
1552            docs  => {
1553                      module => 'Net::Jabber',
1554                      name   => 'http://jabber.org/protocol/muc#user - invite objects',
1555                     },
1556           );
1557}
1558
1559#-----------------------------------------------------------------------------
1560# __netjabber__:x:muc:item
1561#-----------------------------------------------------------------------------
1562{
1563    &add_ns(ns    => '__netjabber__:x:muc:item',
1564            xpath => {
1565                      ActorJID    => {
1566                                      type => 'jid',
1567                                      path => 'actor/@jid',
1568                                     },
1569                      Affiliation => { path => '@affiliation' },
1570                      JID         => {
1571                                      type => 'jid',
1572                                      path => '@jid',
1573                                     },
1574                      Nick        => { path => '@nick' },
1575                      Reason      => { path => 'reason/text()' },
1576                      Role        => { path => '@role' },
1577                      Item        => { type => 'master' },
1578                     },
1579            docs  => {
1580                      module => 'Net::Jabber',
1581                      name   => 'http://jabber.org/protocol/muc#user - item objects',
1582                     },
1583           );
1584}
1585
1586#-----------------------------------------------------------------------------
1587# http://jabber.org/protocol/pubsub
1588#-----------------------------------------------------------------------------
1589{
1590    &add_ns(ns    => 'http://jabber.org/protocol/pubsub',
1591            tag   => 'pubsub',
1592            xpath => {
1593                      Affiliations => {
1594                                       type  => 'child',
1595                                       path  => 'affiliations',
1596                                       child => { ns => '__netjabber__:iq:pubsub:affiliations' },
1597                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1598                                      },
1599                      Configure    => {
1600                                       type  => 'child',
1601                                       path  => 'configure',
1602                                       child => { ns => '__netjabber__:iq:pubsub:configure' },
1603                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1604                                      },
1605                      Create       => {
1606                                       type  => 'child',
1607                                       path  => 'create',
1608                                       child => { ns => '__netjabber__:iq:pubsub:create' },
1609                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1610                                      },
1611                      Delete       => {
1612                                       type  => 'child',
1613                                       path  => 'delete',
1614                                       child => { ns => '__netjabber__:iq:pubsub:delete' },
1615                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1616                                      },
1617                      Entities     => {
1618                                       type  => 'child',
1619                                       path  => 'entities',
1620                                       child => { ns => '__netjabber__:iq:pubsub:entities' },
1621                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1622                                      },
1623                      Entity       => {
1624                                       type  => 'child',
1625                                       path  => 'entity',
1626                                       child => { ns => '__netjabber__:iq:pubsub:entity' },
1627                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1628                                      },
1629                      Items        => {
1630                                       type  => 'child',
1631                                       path  => 'items',
1632                                       child => { ns => '__netjabber__:iq:pubsub:items' },
1633                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1634                                      },
1635                      Item         => {
1636                                       type  => 'child',
1637                                       path  => 'item',
1638                                       child => { ns => '__netjabber__:iq:pubsub:item' },
1639                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1640                                      },
1641                      Options      => {
1642                                       type  => 'child',
1643                                       path  => 'options',
1644                                       child => { ns => '__netjabber__:iq:pubsub:options' },
1645                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1646                                      },
1647                      Publish      => {
1648                                       type  => 'child',
1649                                       path  => 'publish',
1650                                       child => { ns => '__netjabber__:iq:pubsub:publish' },
1651                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1652                                      },
1653                      Purge        => {
1654                                       type  => 'child',
1655                                       path  => 'purge',
1656                                       child => { ns => '__netjabber__:iq:pubsub:purge' },
1657                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1658                                      },
1659                      Retract      => {
1660                                       type  => 'child',
1661                                       path  => 'retract',
1662                                       child => { ns => '__netjabber__:iq:pubsub:retract' },
1663                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1664                                      },
1665                      Subscribe    => {
1666                                       type  => 'child',
1667                                       path  => 'subscribe',
1668                                       child => { ns => '__netjabber__:iq:pubsub:subscribe' },
1669                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1670                                      },
1671                      Unsubscribe  => {
1672                                       type  => 'child',
1673                                       path  => 'unsubscribe',
1674                                       child => { ns => '__netjabber__:iq:pubsub:unsubscribe' },
1675                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1676                                      },
1677                      PubSub       => { type => 'master' },
1678                     },
1679            docs  => {
1680                      module => 'Net::Jabber',
1681                     },
1682           );
1683}
1684
1685#-----------------------------------------------------------------------------
1686# __netjabber__:iq:pubsub:affiliations
1687#-----------------------------------------------------------------------------
1688{
1689    &add_ns(ns    => '__netjabber__:iq:pubsub:affiliations',
1690            xpath => {
1691                      Entity       => {
1692                                       type  => 'child',
1693                                       path  => 'entity',
1694                                       child => { ns => '__netjabber__:iq:pubsub:entity' },
1695                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1696                                      },
1697                      Affiliations => { type => 'master' },
1698                     },
1699            docs  => {
1700                      module => 'Net::Jabber',
1701                      name   => 'http://jabber.org/protocol/pubsub - affiliations objects',
1702                     },
1703           );
1704}
1705
1706#-----------------------------------------------------------------------------
1707# __netjabber__:iq:pubsub:configure
1708#-----------------------------------------------------------------------------
1709{
1710    &add_ns(ns    => '__netjabber__:iq:pubsub:configure',
1711            xpath => {
1712                      Node      => { path => '@node' },
1713                      Configure => { type => 'master' },
1714                     },
1715            docs  => {
1716                      module => 'Net::Jabber',
1717                      name   => 'http://jabber.org/protocol/pubsub - configure objects',
1718                     },
1719           );
1720}
1721
1722#-----------------------------------------------------------------------------
1723# __netjabber__:iq:pubsub:create
1724#-----------------------------------------------------------------------------
1725{
1726    &add_ns(ns    => '__netjabber__:iq:pubsub:create',
1727            xpath => {
1728                      Node   => { path => '@node' },
1729                      Create => { type => 'master' },
1730                     },
1731            docs  => {
1732                      module => 'Net::Jabber',
1733                      name   => 'http://jabber.org/protocol/pubsub - create objects',
1734                     },
1735           );
1736}
1737
1738#-----------------------------------------------------------------------------
1739# __netjabber__:iq:pubsub:delete
1740#-----------------------------------------------------------------------------
1741{
1742    &add_ns(ns    => '__netjabber__:iq:pubsub:delete',
1743            xpath => {
1744                      Node   => { path => '@node' },
1745                      Delete => { type => 'master' },
1746                     },
1747            docs  => {
1748                      module => 'Net::Jabber',
1749                      name   => 'http://jabber.org/protocol/pubsub - delete objects',
1750                     },
1751           );
1752}
1753
1754#-----------------------------------------------------------------------------
1755# __netjabber__:iq:pubsub:entities
1756#-----------------------------------------------------------------------------
1757{
1758    &add_ns(ns    => '__netjabber__:iq:pubsub:entities',
1759            xpath => {
1760                      Entity   => {
1761                                   type  => 'child',
1762                                   path  => 'entity',
1763                                   child => { ns => '__netjabber__:iq:pubsub:entity' },
1764                                   calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1765                                  },
1766                      Entities => { type => 'master' },
1767                     },
1768            docs  => {
1769                      module => 'Net::Jabber',
1770                      name   => 'http://jabber.org/protocol/pubsub - entities objects',
1771                     },
1772           );
1773}
1774
1775#-----------------------------------------------------------------------------
1776# __netjabber__:iq:pubsub:entity
1777#-----------------------------------------------------------------------------
1778{
1779    &add_ns(ns    => '__netjabber__:iq:pubsub:entity',
1780            xpath => {
1781                      Affiliation      => { path => '@affiliation' },
1782                      JID              => {
1783                                           type => 'jid',
1784                                           path => '@jid',
1785                                          },
1786                      Node             => { path => '@node' },
1787                      Subscription     => { path => '@subscription' },
1788                      SubscribeOptions => {
1789                                           type  => 'child',
1790                                           path  => 'subscribe-options',
1791                                           child => { ns => '__netjabber__:iq:pubsub:subscribe-options' },
1792                                           calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1793                                          },
1794                      Entity           => { type => 'master' },
1795                     },
1796            docs  => {
1797                      module => 'Net::Jabber',
1798                      name   => 'http://jabber.org/protocol/pubsub - entity objects',
1799                     },
1800           );
1801}
1802
1803#-----------------------------------------------------------------------------
1804# __netjabber__:iq:pubsub:items
1805#-----------------------------------------------------------------------------
1806{
1807    &add_ns(ns    => '__netjabber__:iq:pubsub:items',
1808            xpath => {
1809                      Item     => {
1810                                   type  => 'child',
1811                                   path  => 'item',
1812                                   child => { ns => '__netjabber__:iq:pubsub:item' },
1813                                   calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1814                                  },
1815                      Node     => { path => '@node' },
1816                      MaxItems => { path => '@max_items' },
1817                      Items    => { type => 'master' },
1818                     },
1819            docs  => {
1820                      module => 'Net::Jabber',
1821                      name   => 'http://jabber.org/protocol/pubsub - items objects',
1822                     },
1823           );
1824}
1825
1826#-----------------------------------------------------------------------------
1827# __netjabber__:iq:pubsub:item
1828#-----------------------------------------------------------------------------
1829{
1830    &add_ns(ns    => '__netjabber__:iq:pubsub:item',
1831            xpath => {
1832                      ID      => { path => '@id' },
1833                      Payload => { type => 'raw' },
1834                      Item    => { type => 'master' },
1835                     },
1836            docs  => {
1837                      module => 'Net::Jabber',
1838                      name   => 'http://jabber.org/protocol/pubsub - item objects',
1839                     },
1840           );
1841}
1842
1843#-----------------------------------------------------------------------------
1844# __netjabber__:iq:pubsub:options
1845#-----------------------------------------------------------------------------
1846{
1847    &add_ns(ns    => '__netjabber__:iq:pubsub:options',
1848            xpath => {
1849                      JID     => {
1850                                  type => 'jid',
1851                                  path => '@jid',
1852                                 },
1853                      Node    => { path => '@node' },
1854                      Options => { type => 'master' },
1855                     },
1856            docs  => {
1857                      module => 'Net::Jabber',
1858                      name   => 'http://jabber.org/protocol/pubsub - options objects',
1859                     },
1860           );
1861}
1862
1863#-----------------------------------------------------------------------------
1864# __netjabber__:iq:pubsub:publish
1865#-----------------------------------------------------------------------------
1866{
1867    &add_ns(ns    => '__netjabber__:iq:pubsub:publish',
1868            xpath => {
1869                      Item    => {
1870                                  type  => 'child',
1871                                  path  => 'item',
1872                                  child => { ns => '__netjabber__:iq:pubsub:item' },
1873                                  calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1874                                 },
1875                      Node    => { path => '@node' },
1876                      Publish => { type => 'master' },
1877                     },
1878            docs  => {
1879                      module => 'Net::Jabber',
1880                      name   => 'http://jabber.org/protocol/pubsub - publish objects',
1881                     },
1882           );
1883}
1884
1885#-----------------------------------------------------------------------------
1886# __netjabber__:iq:pubsub:purge
1887#-----------------------------------------------------------------------------
1888{
1889    &add_ns(ns    => '__netjabber__:iq:pubsub:purge',
1890            xpath => {
1891                      Node  => { path => '@node' },
1892                      Purge => { type => 'master' },
1893                     },
1894            docs  => {
1895                      module => 'Net::Jabber',
1896                      name   => 'http://jabber.org/protocol/pubsub - purge objects',
1897                     },
1898           );
1899}
1900
1901#-----------------------------------------------------------------------------
1902# __netjabber__:iq:pubsub:retract
1903#-----------------------------------------------------------------------------
1904{
1905    &add_ns(ns    => '__netjabber__:iq:pubsub:retract',
1906            xpath => {
1907                      Item    => {
1908                                  type  => 'child',
1909                                  path  => 'item',
1910                                  child => { ns => '__netjabber__:iq:pubsub:item' },
1911                                  calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1912                                 },
1913                      Node    => { path => '@node' },
1914                      Retract => { type => 'master' },
1915                     },
1916            docs  => {
1917                      module => 'Net::Jabber',
1918                      name   => 'http://jabber.org/protocol/pubsub - retract objects',
1919                     },
1920           );
1921}
1922
1923#-----------------------------------------------------------------------------
1924# __netjabber__:iq:pubsub:subscribe
1925#-----------------------------------------------------------------------------
1926{
1927    &add_ns(ns    => '__netjabber__:iq:pubsub:subscribe',
1928            xpath => {
1929                      JID       => {
1930                                    type => 'jid',
1931                                    path => '@jid',
1932                                   },
1933                      Node      => { path => '@node' },
1934                      Subscribe => { type => 'master' },
1935                     },
1936            docs  => {
1937                      module => 'Net::Jabber',
1938                      name   => 'http://jabber.org/protocol/pubsub - subscribe objects',
1939                     },
1940           );
1941}
1942
1943#-----------------------------------------------------------------------------
1944# __netjabber__:iq:pubsub:subscribe-options
1945#-----------------------------------------------------------------------------
1946{
1947    &add_ns(ns    => '__netjabber__:iq:pubsub:subscribe-options',
1948            xpath => {
1949                      Required         => {
1950                                           type => 'flag',
1951                                           path => 'required',
1952                                          },
1953                      SubscribeOptions => { type => 'master' },
1954                     },
1955            docs  => {
1956                      module => 'Net::Jabber',
1957                      name   => 'http://jabber.org/protocol/pubsub - subscribe-options objects',
1958                     },
1959           );
1960}
1961
1962#-----------------------------------------------------------------------------
1963# __netjabber__:iq:pubsub:unsubscribe
1964#-----------------------------------------------------------------------------
1965{
1966    &add_ns(ns    => '__netjabber__:iq:pubsub:unsubscribe',
1967            xpath => {
1968                      JID         => {
1969                                      type => 'jid',
1970                                      path => '@jid',
1971                                     },
1972                      Node        => { path => '@node' },
1973                      Unsubscribe => { type => 'master' },
1974                     },
1975            docs  => {
1976                      module => 'Net::Jabber',
1977                      name   => 'http://jabber.org/protocol/pubsub - unsubscribe objects',
1978                     },
1979           );
1980}
1981
1982#-----------------------------------------------------------------------------
1983# http://jabber.org/protocol/pubsub#event
1984#-----------------------------------------------------------------------------
1985{
1986    &add_ns(ns    => 'http://jabber.org/protocol/pubsub#event',
1987            tag   => 'event',
1988            xpath => {
1989                      Delete => {
1990                                 type  => 'child',
1991                                 path  => 'delete',
1992                                 child => { ns => '__netjabber__:iq:pubsub:event:delete' },
1993                                 calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1994                                },
1995                      Items  => {
1996                                 type  => 'child',
1997                                 path  => 'items',
1998                                 child => { ns => '__netjabber__:iq:pubsub:event:items' },
1999                                 calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
2000                                },
2001                      Event  => { type => 'master' },
2002                     },
2003            docs  => {
2004                      module => 'Net::Jabber',
2005                     },
2006           );
2007}
2008
2009#-----------------------------------------------------------------------------
2010# __netjabber__:iq:pubsub:event:delete
2011#-----------------------------------------------------------------------------
2012{
2013    &add_ns(ns    => '__netjabber__:iq:pubsub:event:delete',
2014            xpath => {
2015                      Node   => { path => '@node' },
2016                      Delete => { type => 'master' },
2017                     },
2018            docs  => {
2019                      module => 'Net::Jabber',
2020                      name   => 'http://jabber.org/protocol/pubsub#event - delete objects',
2021                     },
2022           );
2023}
2024
2025#-----------------------------------------------------------------------------
2026# __netjabber__:iq:pubsub:event:items
2027#-----------------------------------------------------------------------------
2028{
2029    &add_ns(ns    => '__netjabber__:iq:pubsub:event:items',
2030            xpath => {
2031                      Item  => {
2032                                type  => 'child',
2033                                path  => 'item',
2034                                child => { ns => '__netjabber__:iq:pubsub:event:item' },
2035                                calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
2036                               },
2037                      Node  => { path => '@node' },
2038                      Items => { type => 'master' },
2039                     },
2040            docs  => {
2041                      module => 'Net::Jabber',
2042                      name   => 'http://jabber.org/protocol/pubsub#event - items objects',
2043                     },
2044           );
2045}
2046
2047#-----------------------------------------------------------------------------
2048# __netjabber__:iq:pubsub:event:item
2049#-----------------------------------------------------------------------------
2050{
2051    &add_ns(ns    => '__netjabber__:iq:pubsub:event:item',
2052            xpath => {
2053                      ID      => { path => '@id' },
2054                      Payload => { type => 'raw' },
2055                      Item    => { type => 'master' },
2056                     },
2057            docs  => {
2058                      module => 'Net::Jabber',
2059                      name   => 'http://jabber.org/protocol/pubsub#event - item objects',
2060                     },
2061           );
2062}
2063
2064#-----------------------------------------------------------------------------
2065# http://jabber.org/protocol/pubsub#owner
2066#-----------------------------------------------------------------------------
2067{
2068    &add_ns(ns    => 'http://jabber.org/protocol/pubsub#owner',
2069            tag   => 'pubsub',
2070            xpath => {
2071                      Action    => { path => '@action' },
2072                      Configure => {
2073                                    type  => 'child',
2074                                    path  => 'configure',
2075                                    child => { ns => '__netjabber__:iq:pubsub:owner:configure' },
2076                                    calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
2077                                   },
2078                      Owner     => { type => 'master' },
2079                     },
2080            docs  => {
2081                      module => 'Net::Jabber',
2082                     },
2083           );
2084}
2085
2086#-----------------------------------------------------------------------------
2087# __netjabber__:iq:pubsub:owner:configure
2088#-----------------------------------------------------------------------------
2089{
2090    &add_ns(ns    => '__netjabber__:iq:pubsub:owner:configure',
2091            xpath => {
2092                      Node      => { path => '@node' },
2093                      Configure => { type => 'master' },
2094                     },
2095            docs  => {
2096                      module => 'Net::Jabber',
2097                      name   => 'http://jabber.org/protocol/pubsub#owner - configure objects',
2098                     },
2099           );
2100}
2101
2102#XXX pubsub#errors
2103
2104#-----------------------------------------------------------------------------
2105# http://jabber.org/protocol/si
2106#-----------------------------------------------------------------------------
2107{
2108    &add_ns(ns    => 'http://jabber.org/protocol/si',
2109            tag   => 'si',
2110            xpath => {
2111                      ID       => { path => '@id' },
2112                      MimeType => { path => '@mime-type' },
2113                      Profile  => { path => '@profile' },
2114                      Stream   => { type => 'master' },
2115                     },
2116            docs  => {
2117                      module => 'Net::Jabber',
2118                     },
2119           );
2120}
2121
2122#-----------------------------------------------------------------------------
2123# http://jabber.org/protocol/si/profile/file-transfer
2124#-----------------------------------------------------------------------------
2125{
2126    &add_ns(ns    => 'http://jabber.org/protocol/si/profile/file-transfer',
2127            tag   => 'file',
2128            xpath => {
2129                      Date        => { path => '@date' },
2130                      Desc        => { path => 'desc/text()' },
2131                      Hash        => { path => '@hash' },
2132                      Name        => { path => '@name' },
2133                      Range       => {
2134                                      type => 'flag',
2135                                      path => 'range',
2136                                     },
2137                      RangeOffset => { path => 'range/@offset' },
2138                      RangeLength => { path => 'range/@length' },
2139                      Size        => { path => '@size' },
2140                      File        => { type => 'master' },
2141                     },
2142            docs  => {
2143                      module => 'Net::Jabber',
2144                     },
2145           );
2146}
2147
2148#-----------------------------------------------------------------------------
2149# http://jabber.org/protocol/si/profile/tree-transfer
2150#-----------------------------------------------------------------------------
2151# XXX do later
2152$ns = 'http://jabber.org/protocol/si/profile/tree-transfer';
2153
2154$TAGS{$ns} = "tree";
2155
2156$NAMESPACES{$ns}->{Directory}->{XPath}->{Type} = 'child';
2157$NAMESPACES{$ns}->{Directory}->{XPath}->{Path} = 'directory';
2158$NAMESPACES{$ns}->{Directory}->{XPath}->{Child} = ['Query','__netjabber__:iq:si:profile:tree:directory'];
2159$NAMESPACES{$ns}->{Directory}->{XPath}->{Calls} = ['Add','Get'];
2160
2161$NAMESPACES{$ns}->{Numfiles}->{XPath}->{Path} = '@numfiles';
2162
2163$NAMESPACES{$ns}->{Size}->{XPath}->{Path} = '@size';
2164
2165$NAMESPACES{$ns}->{Tree}->{XPath}->{Type} = 'master';
2166
2167#-----------------------------------------------------------------------------
2168# __netjabber__:iq:si:profile:tree:directory
2169#-----------------------------------------------------------------------------
2170$ns = '__netjabber__:iq:si:profile:tree:directory';
2171
2172$NAMESPACES{$ns}->{Directory}->{XPath}->{Type} = 'child';
2173$NAMESPACES{$ns}->{Directory}->{XPath}->{Path} = 'directory';
2174$NAMESPACES{$ns}->{Directory}->{XPath}->{Child} = ['Query','__netjabber__:iq:si:profile:tree:directory'];
2175$NAMESPACES{$ns}->{Directory}->{XPath}->{Calls} = ['Add','Get'];
2176
2177$NAMESPACES{$ns}->{File}->{XPath}->{Type} = 'child';
2178$NAMESPACES{$ns}->{File}->{XPath}->{Path} = 'file';
2179$NAMESPACES{$ns}->{File}->{XPath}->{Child} = ['Query','__netjabber__:iq:si:profile:tree:file'];
2180$NAMESPACES{$ns}->{File}->{XPath}->{Calls} = ['Add','Get'];
2181
2182$NAMESPACES{$ns}->{Name}->{XPath}->{Path} = '@name';
2183
2184$NAMESPACES{$ns}->{Dir}->{XPath}->{Type} = 'master';
2185
2186#-----------------------------------------------------------------------------
2187# __netjabber__:iq:si:profile:tree:file
2188#-----------------------------------------------------------------------------
2189$ns = '__netjabber__:iq:si:profile:tree:file';
2190
2191$NAMESPACES{$ns}->{Name}->{XPath}->{Path} = '@name';
2192
2193$NAMESPACES{$ns}->{SID}->{XPath}->{Path} = '@sid';
2194
2195$NAMESPACES{$ns}->{File}->{XPath}->{Type} = 'master';
2196
2197sub add_ns
2198{
2199    &Net::XMPP::Namespaces::add_ns(@_);
2200}
2201
2202
22031;
Note: See TracBrowser for help on using the repository browser.