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

barnowl_perlaimdebianrelease-1.4release-1.5release-1.6release-1.7release-1.8release-1.9
Last change on this file since d7c2ce6 was d7c2ce6, checked in by Nelson Elhage <nelhage@mit.edu>, 14 years ago
Net::Jabber::Owl patch to support muc configuration and history requests on MUC join
  • Property mode set to 100644
File size: 91.5 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                      History  => {
1445                                    type  => 'child',
1446                                    path  => 'history',
1447                                    child => { ns => '__netjabber__:iq:muc:history' },
1448                                    calls => ['Add', 'Get', 'Set', 'Defined' ],
1449                                   },
1450                      MUC      => { type => 'master' },
1451                     },
1452            docs  => {
1453                      module => 'Net::Jabber',
1454                     },
1455           );
1456}
1457
1458#-----------------------------------------------------------------------------
1459# __netjabber__:iq:muc:history
1460#-----------------------------------------------------------------------------
1461{
1462    &add_ns(ns    => '__netjabber__:iq:muc:history',
1463            tag   => 'history',
1464            xpath => {
1465                      MaxChars   => { path => '@maxchars' },
1466                      MaxStanzas => { path => '@maxstanzas' },
1467                      Seconds    => { path => '@seconds' },
1468                      Since      => { path => '@since' }
1469                     },
1470            docs  => {
1471                      module => 'Net::Jabber',
1472                     },
1473           );
1474                   
1475}
1476
1477#-----------------------------------------------------------------------------
1478# http://jabber.org/protocol/muc#admin
1479#-----------------------------------------------------------------------------
1480{
1481    &add_ns(ns    => 'http://jabber.org/protocol/muc#admin',
1482            tag   => 'query',
1483            xpath => {
1484                      Item  => {
1485                                type  => 'child',
1486                                path  => 'item',
1487                                child => { ns => '__netjabber__:iq:muc:admin:item' },
1488                                calls => [ 'Add' ],
1489                               },
1490                      Items => {
1491                                type  => 'child',
1492                                path  => 'item',
1493                                child => { ns => '__netjabber__:iq:muc:admin:item' },
1494                               },
1495                      Admin => { type => 'master' },
1496                    },
1497            docs  => {
1498                      module => 'Net::Jabber',
1499                     },
1500           );
1501}
1502
1503#-----------------------------------------------------------------------------
1504# __netjabber__:iq:muc:admin:item
1505#-----------------------------------------------------------------------------
1506{
1507    &add_ns(ns    => '__netjabber__:iq:muc:admin:item',
1508            xpath => {
1509                      ActorJID    => {
1510                                      type => 'jid',
1511                                      path => 'actor/@jid',
1512                                     },
1513                      Affiliation => { path => '@affiliation' },
1514                      JID         => {
1515                                      type => 'jid',
1516                                      path => '@jid',
1517                                     },
1518                      Nick        => { path => '@nick' },
1519                      Reason      => { path => 'reason/text()' },
1520                      Role        => { path => '@role' },
1521                      Item        => { type => 'master' },
1522                     },
1523            docs  => {
1524                      module => 'Net::Jabber',
1525                      name   => 'http://jabber.org/protocol/muc#admin - item objects',
1526                     },
1527           );
1528}
1529
1530#-----------------------------------------------------------------------------
1531# http://jabber.org/protocol/muc#user
1532#-----------------------------------------------------------------------------
1533{
1534    &add_ns(ns    => 'http://jabber.org/protocol/muc#user',
1535            tag   => 'x',
1536            xpath => {
1537                      Alt        => { path => 'alt/text()' },
1538                      Invite     => {
1539                                     type  => 'child',
1540                                     path  => 'invite',
1541                                     child => { ns => '__netjabber__:x:muc:invite' },
1542                                     calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1543                                    },
1544                      Item       => {
1545                                     type  => 'child',
1546                                     path  => 'item',
1547                                     child => { ns => '__netjabber__:x:muc:item' },
1548                                     calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1549                                    },
1550                      Password   => { path => 'password/text()' },
1551                      StatusCode => { path => 'status/@code' },
1552                      User       => { type => 'master' },
1553                     },
1554            docs  => {
1555                      module => 'Net::Jabber',
1556                     },
1557           );
1558}
1559
1560#-----------------------------------------------------------------------------
1561# __netjabber__:x:muc:invite
1562#-----------------------------------------------------------------------------
1563{
1564    &add_ns(ns    => '__netjabber__:x:muc:invite',
1565            xpath => {
1566                      From   => {
1567                                 type => 'jid',
1568                                 path => '@from',
1569                                },
1570                      Reason => { path => 'reason/text()' },
1571                      To     => {
1572                                 type => 'jid',
1573                                 path => '@to',
1574                                },
1575                      Invite => { type => 'master' },
1576                     },
1577            docs  => {
1578                      module => 'Net::Jabber',
1579                      name   => 'http://jabber.org/protocol/muc#user - invite objects',
1580                     },
1581           );
1582}
1583
1584#-----------------------------------------------------------------------------
1585# __netjabber__:x:muc:item
1586#-----------------------------------------------------------------------------
1587{
1588    &add_ns(ns    => '__netjabber__:x:muc:item',
1589            xpath => {
1590                      ActorJID    => {
1591                                      type => 'jid',
1592                                      path => 'actor/@jid',
1593                                     },
1594                      Affiliation => { path => '@affiliation' },
1595                      JID         => {
1596                                      type => 'jid',
1597                                      path => '@jid',
1598                                     },
1599                      Nick        => { path => '@nick' },
1600                      Reason      => { path => 'reason/text()' },
1601                      Role        => { path => '@role' },
1602                      Item        => { type => 'master' },
1603                     },
1604            docs  => {
1605                      module => 'Net::Jabber',
1606                      name   => 'http://jabber.org/protocol/muc#user - item objects',
1607                     },
1608           );
1609}
1610
1611
1612#-----------------------------------------------------------------------------
1613# http://jabber.org/protocol/muc#owner
1614#-----------------------------------------------------------------------------
1615
1616{
1617        &add_ns(
1618                ns  => "http://jabber.org/protocol/muc#owner",
1619                tag => 'query',
1620               );
1621}
1622
1623
1624#-----------------------------------------------------------------------------
1625# http://jabber.org/protocol/pubsub
1626#-----------------------------------------------------------------------------
1627{
1628    &add_ns(ns    => 'http://jabber.org/protocol/pubsub',
1629            tag   => 'pubsub',
1630            xpath => {
1631                      Affiliations => {
1632                                       type  => 'child',
1633                                       path  => 'affiliations',
1634                                       child => { ns => '__netjabber__:iq:pubsub:affiliations' },
1635                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1636                                      },
1637                      Configure    => {
1638                                       type  => 'child',
1639                                       path  => 'configure',
1640                                       child => { ns => '__netjabber__:iq:pubsub:configure' },
1641                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1642                                      },
1643                      Create       => {
1644                                       type  => 'child',
1645                                       path  => 'create',
1646                                       child => { ns => '__netjabber__:iq:pubsub:create' },
1647                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1648                                      },
1649                      Delete       => {
1650                                       type  => 'child',
1651                                       path  => 'delete',
1652                                       child => { ns => '__netjabber__:iq:pubsub:delete' },
1653                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1654                                      },
1655                      Entities     => {
1656                                       type  => 'child',
1657                                       path  => 'entities',
1658                                       child => { ns => '__netjabber__:iq:pubsub:entities' },
1659                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1660                                      },
1661                      Entity       => {
1662                                       type  => 'child',
1663                                       path  => 'entity',
1664                                       child => { ns => '__netjabber__:iq:pubsub:entity' },
1665                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1666                                      },
1667                      Items        => {
1668                                       type  => 'child',
1669                                       path  => 'items',
1670                                       child => { ns => '__netjabber__:iq:pubsub:items' },
1671                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1672                                      },
1673                      Item         => {
1674                                       type  => 'child',
1675                                       path  => 'item',
1676                                       child => { ns => '__netjabber__:iq:pubsub:item' },
1677                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1678                                      },
1679                      Options      => {
1680                                       type  => 'child',
1681                                       path  => 'options',
1682                                       child => { ns => '__netjabber__:iq:pubsub:options' },
1683                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1684                                      },
1685                      Publish      => {
1686                                       type  => 'child',
1687                                       path  => 'publish',
1688                                       child => { ns => '__netjabber__:iq:pubsub:publish' },
1689                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1690                                      },
1691                      Purge        => {
1692                                       type  => 'child',
1693                                       path  => 'purge',
1694                                       child => { ns => '__netjabber__:iq:pubsub:purge' },
1695                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1696                                      },
1697                      Retract      => {
1698                                       type  => 'child',
1699                                       path  => 'retract',
1700                                       child => { ns => '__netjabber__:iq:pubsub:retract' },
1701                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1702                                      },
1703                      Subscribe    => {
1704                                       type  => 'child',
1705                                       path  => 'subscribe',
1706                                       child => { ns => '__netjabber__:iq:pubsub:subscribe' },
1707                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1708                                      },
1709                      Unsubscribe  => {
1710                                       type  => 'child',
1711                                       path  => 'unsubscribe',
1712                                       child => { ns => '__netjabber__:iq:pubsub:unsubscribe' },
1713                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1714                                      },
1715                      PubSub       => { type => 'master' },
1716                     },
1717            docs  => {
1718                      module => 'Net::Jabber',
1719                     },
1720           );
1721}
1722
1723#-----------------------------------------------------------------------------
1724# __netjabber__:iq:pubsub:affiliations
1725#-----------------------------------------------------------------------------
1726{
1727    &add_ns(ns    => '__netjabber__:iq:pubsub:affiliations',
1728            xpath => {
1729                      Entity       => {
1730                                       type  => 'child',
1731                                       path  => 'entity',
1732                                       child => { ns => '__netjabber__:iq:pubsub:entity' },
1733                                       calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1734                                      },
1735                      Affiliations => { type => 'master' },
1736                     },
1737            docs  => {
1738                      module => 'Net::Jabber',
1739                      name   => 'http://jabber.org/protocol/pubsub - affiliations objects',
1740                     },
1741           );
1742}
1743
1744#-----------------------------------------------------------------------------
1745# __netjabber__:iq:pubsub:configure
1746#-----------------------------------------------------------------------------
1747{
1748    &add_ns(ns    => '__netjabber__:iq:pubsub:configure',
1749            xpath => {
1750                      Node      => { path => '@node' },
1751                      Configure => { type => 'master' },
1752                     },
1753            docs  => {
1754                      module => 'Net::Jabber',
1755                      name   => 'http://jabber.org/protocol/pubsub - configure objects',
1756                     },
1757           );
1758}
1759
1760#-----------------------------------------------------------------------------
1761# __netjabber__:iq:pubsub:create
1762#-----------------------------------------------------------------------------
1763{
1764    &add_ns(ns    => '__netjabber__:iq:pubsub:create',
1765            xpath => {
1766                      Node   => { path => '@node' },
1767                      Create => { type => 'master' },
1768                     },
1769            docs  => {
1770                      module => 'Net::Jabber',
1771                      name   => 'http://jabber.org/protocol/pubsub - create objects',
1772                     },
1773           );
1774}
1775
1776#-----------------------------------------------------------------------------
1777# __netjabber__:iq:pubsub:delete
1778#-----------------------------------------------------------------------------
1779{
1780    &add_ns(ns    => '__netjabber__:iq:pubsub:delete',
1781            xpath => {
1782                      Node   => { path => '@node' },
1783                      Delete => { type => 'master' },
1784                     },
1785            docs  => {
1786                      module => 'Net::Jabber',
1787                      name   => 'http://jabber.org/protocol/pubsub - delete objects',
1788                     },
1789           );
1790}
1791
1792#-----------------------------------------------------------------------------
1793# __netjabber__:iq:pubsub:entities
1794#-----------------------------------------------------------------------------
1795{
1796    &add_ns(ns    => '__netjabber__:iq:pubsub:entities',
1797            xpath => {
1798                      Entity   => {
1799                                   type  => 'child',
1800                                   path  => 'entity',
1801                                   child => { ns => '__netjabber__:iq:pubsub:entity' },
1802                                   calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1803                                  },
1804                      Entities => { type => 'master' },
1805                     },
1806            docs  => {
1807                      module => 'Net::Jabber',
1808                      name   => 'http://jabber.org/protocol/pubsub - entities objects',
1809                     },
1810           );
1811}
1812
1813#-----------------------------------------------------------------------------
1814# __netjabber__:iq:pubsub:entity
1815#-----------------------------------------------------------------------------
1816{
1817    &add_ns(ns    => '__netjabber__:iq:pubsub:entity',
1818            xpath => {
1819                      Affiliation      => { path => '@affiliation' },
1820                      JID              => {
1821                                           type => 'jid',
1822                                           path => '@jid',
1823                                          },
1824                      Node             => { path => '@node' },
1825                      Subscription     => { path => '@subscription' },
1826                      SubscribeOptions => {
1827                                           type  => 'child',
1828                                           path  => 'subscribe-options',
1829                                           child => { ns => '__netjabber__:iq:pubsub:subscribe-options' },
1830                                           calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1831                                          },
1832                      Entity           => { type => 'master' },
1833                     },
1834            docs  => {
1835                      module => 'Net::Jabber',
1836                      name   => 'http://jabber.org/protocol/pubsub - entity objects',
1837                     },
1838           );
1839}
1840
1841#-----------------------------------------------------------------------------
1842# __netjabber__:iq:pubsub:items
1843#-----------------------------------------------------------------------------
1844{
1845    &add_ns(ns    => '__netjabber__:iq:pubsub:items',
1846            xpath => {
1847                      Item     => {
1848                                   type  => 'child',
1849                                   path  => 'item',
1850                                   child => { ns => '__netjabber__:iq:pubsub:item' },
1851                                   calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1852                                  },
1853                      Node     => { path => '@node' },
1854                      MaxItems => { path => '@max_items' },
1855                      Items    => { type => 'master' },
1856                     },
1857            docs  => {
1858                      module => 'Net::Jabber',
1859                      name   => 'http://jabber.org/protocol/pubsub - items objects',
1860                     },
1861           );
1862}
1863
1864#-----------------------------------------------------------------------------
1865# __netjabber__:iq:pubsub:item
1866#-----------------------------------------------------------------------------
1867{
1868    &add_ns(ns    => '__netjabber__:iq:pubsub:item',
1869            xpath => {
1870                      ID      => { path => '@id' },
1871                      Payload => { type => 'raw' },
1872                      Item    => { type => 'master' },
1873                     },
1874            docs  => {
1875                      module => 'Net::Jabber',
1876                      name   => 'http://jabber.org/protocol/pubsub - item objects',
1877                     },
1878           );
1879}
1880
1881#-----------------------------------------------------------------------------
1882# __netjabber__:iq:pubsub:options
1883#-----------------------------------------------------------------------------
1884{
1885    &add_ns(ns    => '__netjabber__:iq:pubsub:options',
1886            xpath => {
1887                      JID     => {
1888                                  type => 'jid',
1889                                  path => '@jid',
1890                                 },
1891                      Node    => { path => '@node' },
1892                      Options => { type => 'master' },
1893                     },
1894            docs  => {
1895                      module => 'Net::Jabber',
1896                      name   => 'http://jabber.org/protocol/pubsub - options objects',
1897                     },
1898           );
1899}
1900
1901#-----------------------------------------------------------------------------
1902# __netjabber__:iq:pubsub:publish
1903#-----------------------------------------------------------------------------
1904{
1905    &add_ns(ns    => '__netjabber__:iq:pubsub:publish',
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                      Publish => { type => 'master' },
1915                     },
1916            docs  => {
1917                      module => 'Net::Jabber',
1918                      name   => 'http://jabber.org/protocol/pubsub - publish objects',
1919                     },
1920           );
1921}
1922
1923#-----------------------------------------------------------------------------
1924# __netjabber__:iq:pubsub:purge
1925#-----------------------------------------------------------------------------
1926{
1927    &add_ns(ns    => '__netjabber__:iq:pubsub:purge',
1928            xpath => {
1929                      Node  => { path => '@node' },
1930                      Purge => { type => 'master' },
1931                     },
1932            docs  => {
1933                      module => 'Net::Jabber',
1934                      name   => 'http://jabber.org/protocol/pubsub - purge objects',
1935                     },
1936           );
1937}
1938
1939#-----------------------------------------------------------------------------
1940# __netjabber__:iq:pubsub:retract
1941#-----------------------------------------------------------------------------
1942{
1943    &add_ns(ns    => '__netjabber__:iq:pubsub:retract',
1944            xpath => {
1945                      Item    => {
1946                                  type  => 'child',
1947                                  path  => 'item',
1948                                  child => { ns => '__netjabber__:iq:pubsub:item' },
1949                                  calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
1950                                 },
1951                      Node    => { path => '@node' },
1952                      Retract => { type => 'master' },
1953                     },
1954            docs  => {
1955                      module => 'Net::Jabber',
1956                      name   => 'http://jabber.org/protocol/pubsub - retract objects',
1957                     },
1958           );
1959}
1960
1961#-----------------------------------------------------------------------------
1962# __netjabber__:iq:pubsub:subscribe
1963#-----------------------------------------------------------------------------
1964{
1965    &add_ns(ns    => '__netjabber__:iq:pubsub:subscribe',
1966            xpath => {
1967                      JID       => {
1968                                    type => 'jid',
1969                                    path => '@jid',
1970                                   },
1971                      Node      => { path => '@node' },
1972                      Subscribe => { type => 'master' },
1973                     },
1974            docs  => {
1975                      module => 'Net::Jabber',
1976                      name   => 'http://jabber.org/protocol/pubsub - subscribe objects',
1977                     },
1978           );
1979}
1980
1981#-----------------------------------------------------------------------------
1982# __netjabber__:iq:pubsub:subscribe-options
1983#-----------------------------------------------------------------------------
1984{
1985    &add_ns(ns    => '__netjabber__:iq:pubsub:subscribe-options',
1986            xpath => {
1987                      Required         => {
1988                                           type => 'flag',
1989                                           path => 'required',
1990                                          },
1991                      SubscribeOptions => { type => 'master' },
1992                     },
1993            docs  => {
1994                      module => 'Net::Jabber',
1995                      name   => 'http://jabber.org/protocol/pubsub - subscribe-options objects',
1996                     },
1997           );
1998}
1999
2000#-----------------------------------------------------------------------------
2001# __netjabber__:iq:pubsub:unsubscribe
2002#-----------------------------------------------------------------------------
2003{
2004    &add_ns(ns    => '__netjabber__:iq:pubsub:unsubscribe',
2005            xpath => {
2006                      JID         => {
2007                                      type => 'jid',
2008                                      path => '@jid',
2009                                     },
2010                      Node        => { path => '@node' },
2011                      Unsubscribe => { type => 'master' },
2012                     },
2013            docs  => {
2014                      module => 'Net::Jabber',
2015                      name   => 'http://jabber.org/protocol/pubsub - unsubscribe objects',
2016                     },
2017           );
2018}
2019
2020#-----------------------------------------------------------------------------
2021# http://jabber.org/protocol/pubsub#event
2022#-----------------------------------------------------------------------------
2023{
2024    &add_ns(ns    => 'http://jabber.org/protocol/pubsub#event',
2025            tag   => 'event',
2026            xpath => {
2027                      Delete => {
2028                                 type  => 'child',
2029                                 path  => 'delete',
2030                                 child => { ns => '__netjabber__:iq:pubsub:event:delete' },
2031                                 calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
2032                                },
2033                      Items  => {
2034                                 type  => 'child',
2035                                 path  => 'items',
2036                                 child => { ns => '__netjabber__:iq:pubsub:event:items' },
2037                                 calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
2038                                },
2039                      Event  => { type => 'master' },
2040                     },
2041            docs  => {
2042                      module => 'Net::Jabber',
2043                     },
2044           );
2045}
2046
2047#-----------------------------------------------------------------------------
2048# __netjabber__:iq:pubsub:event:delete
2049#-----------------------------------------------------------------------------
2050{
2051    &add_ns(ns    => '__netjabber__:iq:pubsub:event:delete',
2052            xpath => {
2053                      Node   => { path => '@node' },
2054                      Delete => { type => 'master' },
2055                     },
2056            docs  => {
2057                      module => 'Net::Jabber',
2058                      name   => 'http://jabber.org/protocol/pubsub#event - delete objects',
2059                     },
2060           );
2061}
2062
2063#-----------------------------------------------------------------------------
2064# __netjabber__:iq:pubsub:event:items
2065#-----------------------------------------------------------------------------
2066{
2067    &add_ns(ns    => '__netjabber__:iq:pubsub:event:items',
2068            xpath => {
2069                      Item  => {
2070                                type  => 'child',
2071                                path  => 'item',
2072                                child => { ns => '__netjabber__:iq:pubsub:event:item' },
2073                                calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
2074                               },
2075                      Node  => { path => '@node' },
2076                      Items => { type => 'master' },
2077                     },
2078            docs  => {
2079                      module => 'Net::Jabber',
2080                      name   => 'http://jabber.org/protocol/pubsub#event - items objects',
2081                     },
2082           );
2083}
2084
2085#-----------------------------------------------------------------------------
2086# __netjabber__:iq:pubsub:event:item
2087#-----------------------------------------------------------------------------
2088{
2089    &add_ns(ns    => '__netjabber__:iq:pubsub:event:item',
2090            xpath => {
2091                      ID      => { path => '@id' },
2092                      Payload => { type => 'raw' },
2093                      Item    => { type => 'master' },
2094                     },
2095            docs  => {
2096                      module => 'Net::Jabber',
2097                      name   => 'http://jabber.org/protocol/pubsub#event - item objects',
2098                     },
2099           );
2100}
2101
2102#-----------------------------------------------------------------------------
2103# http://jabber.org/protocol/pubsub#owner
2104#-----------------------------------------------------------------------------
2105{
2106    &add_ns(ns    => 'http://jabber.org/protocol/pubsub#owner',
2107            tag   => 'pubsub',
2108            xpath => {
2109                      Action    => { path => '@action' },
2110                      Configure => {
2111                                    type  => 'child',
2112                                    path  => 'configure',
2113                                    child => { ns => '__netjabber__:iq:pubsub:owner:configure' },
2114                                    calls => [ 'Get', 'Defined', 'Add', 'Remove' ],
2115                                   },
2116                      Owner     => { type => 'master' },
2117                     },
2118            docs  => {
2119                      module => 'Net::Jabber',
2120                     },
2121           );
2122}
2123
2124#-----------------------------------------------------------------------------
2125# __netjabber__:iq:pubsub:owner:configure
2126#-----------------------------------------------------------------------------
2127{
2128    &add_ns(ns    => '__netjabber__:iq:pubsub:owner:configure',
2129            xpath => {
2130                      Node      => { path => '@node' },
2131                      Configure => { type => 'master' },
2132                     },
2133            docs  => {
2134                      module => 'Net::Jabber',
2135                      name   => 'http://jabber.org/protocol/pubsub#owner - configure objects',
2136                     },
2137           );
2138}
2139
2140#XXX pubsub#errors
2141
2142#-----------------------------------------------------------------------------
2143# http://jabber.org/protocol/si
2144#-----------------------------------------------------------------------------
2145{
2146    &add_ns(ns    => 'http://jabber.org/protocol/si',
2147            tag   => 'si',
2148            xpath => {
2149                      ID       => { path => '@id' },
2150                      MimeType => { path => '@mime-type' },
2151                      Profile  => { path => '@profile' },
2152                      Stream   => { type => 'master' },
2153                     },
2154            docs  => {
2155                      module => 'Net::Jabber',
2156                     },
2157           );
2158}
2159
2160#-----------------------------------------------------------------------------
2161# http://jabber.org/protocol/si/profile/file-transfer
2162#-----------------------------------------------------------------------------
2163{
2164    &add_ns(ns    => 'http://jabber.org/protocol/si/profile/file-transfer',
2165            tag   => 'file',
2166            xpath => {
2167                      Date        => { path => '@date' },
2168                      Desc        => { path => 'desc/text()' },
2169                      Hash        => { path => '@hash' },
2170                      Name        => { path => '@name' },
2171                      Range       => {
2172                                      type => 'flag',
2173                                      path => 'range',
2174                                     },
2175                      RangeOffset => { path => 'range/@offset' },
2176                      RangeLength => { path => 'range/@length' },
2177                      Size        => { path => '@size' },
2178                      File        => { type => 'master' },
2179                     },
2180            docs  => {
2181                      module => 'Net::Jabber',
2182                     },
2183           );
2184}
2185
2186#-----------------------------------------------------------------------------
2187# http://jabber.org/protocol/si/profile/tree-transfer
2188#-----------------------------------------------------------------------------
2189# XXX do later
2190$ns = 'http://jabber.org/protocol/si/profile/tree-transfer';
2191
2192$TAGS{$ns} = "tree";
2193
2194$NAMESPACES{$ns}->{Directory}->{XPath}->{Type} = 'child';
2195$NAMESPACES{$ns}->{Directory}->{XPath}->{Path} = 'directory';
2196$NAMESPACES{$ns}->{Directory}->{XPath}->{Child} = ['Query','__netjabber__:iq:si:profile:tree:directory'];
2197$NAMESPACES{$ns}->{Directory}->{XPath}->{Calls} = ['Add','Get'];
2198
2199$NAMESPACES{$ns}->{Numfiles}->{XPath}->{Path} = '@numfiles';
2200
2201$NAMESPACES{$ns}->{Size}->{XPath}->{Path} = '@size';
2202
2203$NAMESPACES{$ns}->{Tree}->{XPath}->{Type} = 'master';
2204
2205#-----------------------------------------------------------------------------
2206# __netjabber__:iq:si:profile:tree:directory
2207#-----------------------------------------------------------------------------
2208$ns = '__netjabber__:iq:si:profile:tree:directory';
2209
2210$NAMESPACES{$ns}->{Directory}->{XPath}->{Type} = 'child';
2211$NAMESPACES{$ns}->{Directory}->{XPath}->{Path} = 'directory';
2212$NAMESPACES{$ns}->{Directory}->{XPath}->{Child} = ['Query','__netjabber__:iq:si:profile:tree:directory'];
2213$NAMESPACES{$ns}->{Directory}->{XPath}->{Calls} = ['Add','Get'];
2214
2215$NAMESPACES{$ns}->{File}->{XPath}->{Type} = 'child';
2216$NAMESPACES{$ns}->{File}->{XPath}->{Path} = 'file';
2217$NAMESPACES{$ns}->{File}->{XPath}->{Child} = ['Query','__netjabber__:iq:si:profile:tree:file'];
2218$NAMESPACES{$ns}->{File}->{XPath}->{Calls} = ['Add','Get'];
2219
2220$NAMESPACES{$ns}->{Name}->{XPath}->{Path} = '@name';
2221
2222$NAMESPACES{$ns}->{Dir}->{XPath}->{Type} = 'master';
2223
2224#-----------------------------------------------------------------------------
2225# __netjabber__:iq:si:profile:tree:file
2226#-----------------------------------------------------------------------------
2227$ns = '__netjabber__:iq:si:profile:tree:file';
2228
2229$NAMESPACES{$ns}->{Name}->{XPath}->{Path} = '@name';
2230
2231$NAMESPACES{$ns}->{SID}->{XPath}->{Path} = '@sid';
2232
2233$NAMESPACES{$ns}->{File}->{XPath}->{Type} = 'master';
2234
2235sub add_ns
2236{
2237    &Net::XMPP::Namespaces::add_ns(@_);
2238}
2239
2240
22411;
Note: See TracBrowser for help on using the repository browser.