File Coverage

blib/lib/Net/Jabber/Namespaces.pm
Criterion Covered Total %
statement 4 4 100.0
branch n/a
condition n/a
subroutine 2 2 100.0
pod 0 1 0.0
total 6 7 85.7


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