1 /*
2 * Copyright 1999-2006 University of Chicago
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17
18 /*
19 * This file is automatically generated by the Globus WSDLtoC converter
20 */
21
22 #include "xsd_QName.h"
23 #include "globus_soap_message.h"
24 #include "globus_xsd_type_info.h"
25 #include "wsp_PolicyReferenceType.h"
26 #include "globus_xsd_generic_array.h"
27
28 #ifndef GLOBUS_DONT_DOCUMENT_INTERNAL
29 xsd_QName wsp_PolicyReferenceType_qname =
30 {
31 WSP_POLICYREFERENCETYPE_NS,
32 WSP_POLICYREFERENCETYPE_LOCAL
33 };
34 #endif /* GLOBUS_DONT_DOCUMENT_INTERNAL */
35
36 static
37 globus_result_t
38 wsp_PolicyReferenceType_serialize_wrapper(
39 const xsd_QName * element_qname,
40 const void * instance,
41 globus_soap_message_handle_t message_handle,
42 globus_xsd_element_options_t options)
43 0 {
44 0 return wsp_PolicyReferenceType_serialize(
45 element_qname,
46 (const wsp_PolicyReferenceType *) instance,
47 message_handle, options);
48 }
49
50 static
51 globus_result_t
52 wsp_PolicyReferenceType_deserialize_pointer_wrapper(
53 const xsd_QName * element_qname,
54 void ** ip,
55 globus_soap_message_handle_t message_handle,
56 globus_xsd_element_options_t options)
57 0 {
58 0 return wsp_PolicyReferenceType_deserialize_pointer(
59 element_qname,
60 (wsp_PolicyReferenceType **) ip,
61 message_handle, options);
62 }
63
64 static
65 globus_result_t
66 wsp_PolicyReferenceType_init_wrapper(void **object)
67 0 {
68 0 return wsp_PolicyReferenceType_init(
69 (wsp_PolicyReferenceType **) object);
70 }
71
72 static
73 void
74 wsp_PolicyReferenceType_destroy_wrapper(
75 void * object)
76 0 {
77 0 wsp_PolicyReferenceType_destroy(
78 (wsp_PolicyReferenceType *) object);
79 0 }
80
81 static
82 globus_result_t
83 wsp_PolicyReferenceType_copy_wrapper(
84 void ** dest_obj,
85 const void * src_obj)
86 0 {
87 0 return wsp_PolicyReferenceType_copy(
88 (wsp_PolicyReferenceType **) dest_obj,
89 (wsp_PolicyReferenceType *) src_obj);
90 }
91
92 static
93 globus_result_t
94 wsp_PolicyReferenceType_init_contents_wrapper(void *object)
95 0 {
96 0 return wsp_PolicyReferenceType_init_contents(
97 (wsp_PolicyReferenceType *) object);
98 }
99
100 static
101 void
102 wsp_PolicyReferenceType_destroy_contents_wrapper(
103 void * object)
104 0 {
105 0 wsp_PolicyReferenceType_destroy_contents(
106 (wsp_PolicyReferenceType *) object);
107 0 }
108
109 static
110 globus_result_t
111 wsp_PolicyReferenceType_copy_contents_wrapper(
112 void * dest_obj,
113 const void * src_obj)
114 0 {
115 0 return wsp_PolicyReferenceType_copy_contents(
116 (wsp_PolicyReferenceType *) dest_obj,
117 (const wsp_PolicyReferenceType *) src_obj);
118 }
119
120 static
121 globus_result_t
122 wsp_PolicyReferenceType_serialize_contents_wrapper(
123 const xsd_QName * element_qname,
124 const void * instance,
125 globus_soap_message_handle_t message_handle,
126 globus_xsd_element_options_t options)
127 0 {
128 0 return wsp_PolicyReferenceType_serialize_contents(
129 element_qname,
130 (wsp_PolicyReferenceType *) instance,
131 message_handle, options);
132 }
133
134 static
135 globus_result_t
136 wsp_PolicyReferenceType_deserialize_contents_wrapper(
137 const xsd_QName * element_qname,
138 void ** instance,
139 globus_soap_message_handle_t message_handle,
140 globus_xsd_element_options_t options)
141 0 {
142 globus_result_t result;
143 GlobusFuncName(wsp_PolicyReferenceType_deserialize_contents_wrapper);
144 0 GlobusSoapMessageDebugEnter();
145
146 0 if(!*instance)
147 {
148 0 result = wsp_PolicyReferenceType_init(
149 (wsp_PolicyReferenceType **)instance);
150 0 if(result != GLOBUS_SUCCESS)
151 {
152 0 goto error;
153 }
154 }
155
156 0 result = wsp_PolicyReferenceType_deserialize_contents(
157 element_qname,
158 *(wsp_PolicyReferenceType **)instance,
159 message_handle, options);
160 0 error:
161 0 GlobusSoapMessageDebugExit();
162 0 return result;
163 }
164
165 static
166 globus_result_t
167 wsp_PolicyReferenceType_array_serialize_wrapper(
168 const xsd_QName * element,
169 const void * instance,
170 globus_soap_message_handle_t message,
171 globus_xsd_element_options_t options)
172 0 {
173 0 return wsp_PolicyReferenceType_array_serialize(
174 element,
175 (wsp_PolicyReferenceType_array *) instance,
176 message, options);
177 }
178
179 static
180 globus_result_t
181 wsp_PolicyReferenceType_array_deserialize_wrapper(
182 const xsd_QName * element_qname,
183 void ** inst,
184 globus_soap_message_handle_t message,
185 globus_xsd_element_options_t options)
186 0 {
187 0 if(!*inst)
188 {
189 globus_result_t result;
190
191 0 result = wsp_PolicyReferenceType_array_init(
192 (wsp_PolicyReferenceType_array **)inst);
193 0 if(result != GLOBUS_SUCCESS)
194 {
195 0 return result;
196 }
197 }
198
199 0 return wsp_PolicyReferenceType_array_deserialize(
200 element_qname,
201 *(wsp_PolicyReferenceType_array **) inst,
202 message, options);
203 }
204
205 static
206 globus_result_t
207 wsp_PolicyReferenceType_array_init_wrapper(
208 void ** arr)
209 0 {
210 0 return wsp_PolicyReferenceType_array_init(
211 (wsp_PolicyReferenceType_array **) arr);
212 }
213
214 static
215 void
216 wsp_PolicyReferenceType_array_destroy_wrapper(
217 void * arr)
218 0 {
219 0 wsp_PolicyReferenceType_array_destroy(
220 (wsp_PolicyReferenceType_array *) arr);
221 0 }
222
223 static
224 globus_result_t
225 wsp_PolicyReferenceType_array_copy_wrapper(
226 void ** dest_arr,
227 const void * src_arr)
228 0 {
229 0 return wsp_PolicyReferenceType_array_copy(
230 (wsp_PolicyReferenceType_array **) dest_arr,
231 (const wsp_PolicyReferenceType_array *) src_arr);
232 }
233
234 static
235 globus_result_t
236 wsp_PolicyReferenceType_array_init_contents_wrapper(
237 void * arr)
238 0 {
239 0 return wsp_PolicyReferenceType_array_init_contents(
240 (wsp_PolicyReferenceType_array *) arr);
241 }
242
243 static
244 void
245 wsp_PolicyReferenceType_array_destroy_contents_wrapper(
246 void * arr)
247 0 {
248 0 wsp_PolicyReferenceType_array_destroy_contents(
249 (wsp_PolicyReferenceType_array *) arr);
250 0 }
251
252 static
253 globus_result_t
254 wsp_PolicyReferenceType_array_copy_contents_wrapper(
255 void * dest_arr,
256 const void * src_arr)
257 0 {
258 0 return wsp_PolicyReferenceType_array_copy_contents(
259 (wsp_PolicyReferenceType_array *) dest_arr,
260 (const wsp_PolicyReferenceType_array *) src_arr);
261 }
262
263 static
264 void *
265 wsp_PolicyReferenceType_array_push_wrapper(
266 void * array)
267 0 {
268 0 return (void *) wsp_PolicyReferenceType_array_push((wsp_PolicyReferenceType_array *) array);
269 }
270
271 struct globus_xsd_type_info_s wsp_PolicyReferenceType_contents_info =
272 {
273 &wsp_PolicyReferenceType_qname,
274 wsp_PolicyReferenceType_serialize_contents_wrapper,
275 wsp_PolicyReferenceType_deserialize_contents_wrapper,
276 wsp_PolicyReferenceType_init_wrapper,
277 wsp_PolicyReferenceType_destroy_wrapper,
278 wsp_PolicyReferenceType_copy_wrapper,
279 wsp_PolicyReferenceType_init_contents_wrapper,
280 wsp_PolicyReferenceType_destroy_contents_wrapper,
281 wsp_PolicyReferenceType_copy_contents_wrapper,
282 sizeof(wsp_PolicyReferenceType),
283 NULL,
284 NULL,
285 NULL
286 };
287
288 struct globus_xsd_type_info_s wsp_PolicyReferenceType_array_info =
289 {
290 &wsp_PolicyReferenceType_qname,
291 wsp_PolicyReferenceType_array_serialize_wrapper,
292 wsp_PolicyReferenceType_array_deserialize_wrapper,
293 wsp_PolicyReferenceType_array_init_wrapper,
294 wsp_PolicyReferenceType_array_destroy_wrapper,
295 wsp_PolicyReferenceType_array_copy_wrapper,
296 wsp_PolicyReferenceType_array_init_contents_wrapper,
297 wsp_PolicyReferenceType_array_destroy_contents_wrapper,
298 wsp_PolicyReferenceType_array_copy_contents_wrapper,
299 sizeof(wsp_PolicyReferenceType),
300 wsp_PolicyReferenceType_array_push_wrapper,
301 NULL,
302 NULL
303 };
304
305 struct globus_xsd_type_info_s wsp_PolicyReferenceType_info =
306 {
307 &wsp_PolicyReferenceType_qname,
308 wsp_PolicyReferenceType_serialize_wrapper,
309 wsp_PolicyReferenceType_deserialize_pointer_wrapper,
310 wsp_PolicyReferenceType_init_wrapper,
311 wsp_PolicyReferenceType_destroy_wrapper,
312 wsp_PolicyReferenceType_copy_wrapper,
313 wsp_PolicyReferenceType_init_contents_wrapper,
314 wsp_PolicyReferenceType_destroy_contents_wrapper,
315 wsp_PolicyReferenceType_copy_contents_wrapper,
316 sizeof(wsp_PolicyReferenceType),
317 NULL,
318 &wsp_PolicyReferenceType_contents_info,
319 &wsp_PolicyReferenceType_array_info
320 };
321
322 globus_result_t
323 wsp_PolicyReferenceType_init_contents(
324 wsp_PolicyReferenceType * instance)
325 0 {
326 0 globus_result_t result = GLOBUS_SUCCESS;
327 GlobusFuncName(wsp_PolicyReferenceType_init_contents);
328 0 GlobusSoapMessageDebugEnter();
329
330 0 memset(instance, 0, sizeof(wsp_PolicyReferenceType));
331
332 0 GlobusSoapMessageDebugExit();
333 0 return result;
334 }
335
336 globus_result_t
337 wsp_PolicyReferenceType_init(
338 wsp_PolicyReferenceType ** object)
339 0 {
340 wsp_PolicyReferenceType * instance;
341 0 globus_result_t result = GLOBUS_SUCCESS;
342 GlobusFuncName(wsp_PolicyReferenceType_init);
343 0 GlobusSoapMessageDebugEnter();
344
345 0 instance = globus_malloc(sizeof(wsp_PolicyReferenceType));
346 0 if(!instance)
347 {
348 0 result = GlobusSoapMessageErrorOutOfMemory;
349 0 goto exit;
350 }
351
352 0 memset(instance, 0, sizeof(wsp_PolicyReferenceType));
353
354 0 *object = instance;
355
356 0 exit:
357 0 GlobusSoapMessageDebugExit();
358 0 return result;
359 }
360
361 void
362 wsp_PolicyReferenceType_destroy(
363 wsp_PolicyReferenceType * instance)
364 0 {
365 GlobusFuncName(wsp_PolicyReferenceType_destroy);
366 0 GlobusSoapMessageDebugEnter();
367
368 0 if(!instance)
369 {
370 0 goto exit;
371 }
372
373 0 wsp_PolicyReferenceType_destroy_contents(instance);
374 0 globus_free(instance);
375
376 0 exit:
377
378 0 GlobusSoapMessageDebugExit();
379 0 }
380
381
382 void
383 wsp_PolicyReferenceType_destroy_contents(
384 wsp_PolicyReferenceType * instance)
385 0 {
386 GlobusFuncName(wsp_PolicyReferenceType_destroy_contents);
387 0 GlobusSoapMessageDebugEnter();
388
389 0 if(instance)
390 {
391
392
393 0 xsd_any_array_destroy_contents(&instance->any);
394
395 0 xsd_anyAttributes_destroy(instance->anyAttributes);
396 0 instance->anyAttributes = NULL;
397
398 0 if(instance->_Digest)
399 {
400 0 xsd_base64Binary_destroy(
401 instance->_Digest);
402 0 instance->_Digest = NULL;
403 }
404
405 0 if(instance->_DigestAlgorithm)
406 {
407 0 xsd_QName_destroy(
408 instance->_DigestAlgorithm);
409 0 instance->_DigestAlgorithm = NULL;
410 }
411
412 0 if(instance->_Ref)
413 {
414 0 xsd_QName_destroy(
415 instance->_Ref);
416 0 instance->_Ref = NULL;
417 }
418
419 0 if(instance->_URI)
420 {
421 0 xsd_anyURI_destroy(
422 instance->_URI);
423 0 instance->_URI = NULL;
424 }
425
426 }
427
428 0 GlobusSoapMessageDebugExit();
429 0 }
430
431
432 globus_result_t
433 wsp_PolicyReferenceType_copy(
434 wsp_PolicyReferenceType ** dest_obj,
435 const wsp_PolicyReferenceType * src_obj)
436 0 {
437 0 globus_result_t result = GLOBUS_SUCCESS;
438 wsp_PolicyReferenceType * instance;
439 GlobusFuncName(wsp_PolicyReferenceType_copy);
440
441 0 GlobusSoapMessageDebugEnter();
442
443 0 instance = calloc(1, sizeof(wsp_PolicyReferenceType));
444 0 if (instance == NULL)
445 {
446 0 GlobusSoapMessageDebugExit();
447 0 return GlobusSoapMessageErrorOutOfMemory;
448 }
449
450 0 result = wsp_PolicyReferenceType_copy_contents(instance, src_obj);
451 0 if(result != GLOBUS_SUCCESS)
452 {
453 0 globus_free(instance);
454 0 GlobusSoapMessageDebugExit();
455 0 return GlobusSoapMessageErrorOutOfMemory;
456 }
457
458 0 *dest_obj = instance;
459 0 GlobusSoapMessageDebugExit();
460 0 return result;
461 }
462
463 globus_result_t
464 wsp_PolicyReferenceType_copy_contents(
465 wsp_PolicyReferenceType * instance,
466 const wsp_PolicyReferenceType * src_obj)
467 0 {
468 0 globus_result_t result = GLOBUS_SUCCESS;
469 GlobusFuncName(wsp_PolicyReferenceType_copy_contents);
470
471 0 GlobusSoapMessageDebugEnter();
472
473 0 if(src_obj->anyAttributes)
474 {
475 0 result = xsd_anyAttributes_copy(&instance->anyAttributes,
476 src_obj->anyAttributes);
477 0 if(result != GLOBUS_SUCCESS)
478 {
479 0 result = GlobusSoapMessageErrorCopyAnyAttrsFailed(
480 result, NULL);
481 0 goto xsd_anyAttributes_after_destroy;
482 }
483 }
484 else
485 {
486 0 instance->anyAttributes = NULL;
487 }
488
489 0 if(src_obj->_Digest)
490 {
491 0 result = xsd_base64Binary_copy(
492 &instance->_Digest,
493 src_obj->_Digest);
494 0 if(result != GLOBUS_SUCCESS)
495 {
496 0 result = GlobusSoapMessageErrorCopyFailed(
497 result, NULL, &xsd_base64Binary_qname);
498 0 goto _Digest_destroy;
499 }
500 }
501 else
502 {
503 0 instance->_Digest = NULL;
504 }
505
506 0 if(src_obj->_DigestAlgorithm)
507 {
508 0 result = xsd_QName_copy(
509 &instance->_DigestAlgorithm,
510 src_obj->_DigestAlgorithm);
511 0 if(result != GLOBUS_SUCCESS)
512 {
513 0 result = GlobusSoapMessageErrorCopyFailed(
514 result, NULL, &xsd_QName_qname);
515 0 goto _DigestAlgorithm_destroy;
516 }
517 }
518 else
519 {
520 0 instance->_DigestAlgorithm = NULL;
521 }
522
523 0 if(src_obj->_Ref)
524 {
525 0 result = xsd_QName_copy(
526 &instance->_Ref,
527 src_obj->_Ref);
528 0 if(result != GLOBUS_SUCCESS)
529 {
530 0 result = GlobusSoapMessageErrorCopyFailed(
531 result, NULL, &xsd_QName_qname);
532 0 goto _Ref_destroy;
533 }
534 }
535 else
536 {
537 0 instance->_Ref = NULL;
538 }
539
540 0 if(src_obj->_URI)
541 {
542 0 result = xsd_anyURI_copy(
543 &instance->_URI,
544 src_obj->_URI);
545 0 if(result != GLOBUS_SUCCESS)
546 {
547 0 result = GlobusSoapMessageErrorCopyFailed(
548 result, NULL, &xsd_anyURI_qname);
549 0 goto _URI_destroy;
550 }
551 }
552 else
553 {
554 0 instance->_URI = NULL;
555 }
556
557 0 result = xsd_any_array_copy_contents(
558 &instance->any,
559 &src_obj->any);
560 0 if(result != GLOBUS_SUCCESS)
561 {
562 0 result = GlobusSoapMessageErrorCopyFailed(
563 result, NULL, &xsd_any_qname);
564 0 goto any_destroy_array;
565 }
566
567 0 goto exit;
568
569 fail_deserialize:
570
571 xsd_anyAttributes_destroy:
572 xsd_anyAttributes_destroy(instance->anyAttributes);
573 instance->anyAttributes = NULL;
574 0 xsd_anyAttributes_after_destroy:
575
576 0 _URI_destroy:
577
578 0 if(instance->_URI)
579 {
580 0 xsd_anyURI_destroy(
581 instance->_URI);
582 0 instance->_URI = NULL;
583 }
584
585 0 _Ref_destroy:
586
587 0 if(instance->_Ref)
588 {
589 0 xsd_QName_destroy(
590 instance->_Ref);
591 0 instance->_Ref = NULL;
592 }
593
594 0 _DigestAlgorithm_destroy:
595
596 0 if(instance->_DigestAlgorithm)
597 {
598 0 xsd_QName_destroy(
599 instance->_DigestAlgorithm);
600 0 instance->_DigestAlgorithm = NULL;
601 }
602
603 0 _Digest_destroy:
604
605 0 if(instance->_Digest)
606 {
607 0 xsd_base64Binary_destroy(
608 instance->_Digest);
609 0 instance->_Digest = NULL;
610 }
611 0 xsd_any_array_destroy_contents(
612 &instance->any);
613
614 0 any_destroy_array:
615
616
617 0 exit:
618
619 0 GlobusSoapMessageDebugExit();
620 0 return result;
621 }
622
623
624
625 globus_result_t
626 wsp_PolicyReferenceType_serialize_contents(
627 const xsd_QName * element_qname, /* ignored */
628 const wsp_PolicyReferenceType * inst,
629 globus_soap_message_handle_t message_handle,
630 globus_xsd_element_options_t options)
631 0 {
632 0 globus_result_t result = GLOBUS_SUCCESS;
633 GlobusFuncName(wsp_PolicyReferenceType_serialize_contents);
634 0 GlobusSoapMessageDebugEnter();
635
636 0 result = wsp_PolicyReferenceType_serialize(
637 NULL,
638 inst,
639 message_handle,
640 options | GLOBUS_XSD_ELEMENT_CONTENTS_ONLY);
641 0 if(result != GLOBUS_SUCCESS)
642 {
643 0 result = GlobusSoapMessageErrorSerializeFailed(
644 result, NULL, element_qname);
645 0 goto exit;
646 }
647
648 0 exit:
649
650 0 GlobusSoapMessageDebugExit();
651 0 return result;
652 }
653
654
655
656 globus_result_t
657 wsp_PolicyReferenceType_serialize(
658 const xsd_QName * element_qname,
659 const wsp_PolicyReferenceType * instance,
660 globus_soap_message_handle_t message_handle,
661 globus_xsd_element_options_t options)
662 0 {
663 0 globus_result_t result = GLOBUS_SUCCESS;
664 xsd_QName subelement;
665 0 globus_list_t * any_attr_keys = NULL;
666 0 globus_list_t * any_attr_keys_iterator = NULL;
667 0 xsd_QName * type_attr = NULL;
668
669 0 char * prefix = NULL;
670 int prefix_created;
671 0 int define_prefix = 0;
672 0 int save_options = options;
673
674 GlobusFuncName(wsp_PolicyReferenceType_serialize);
675 0 GlobusSoapMessageDebugEnter();
676
677
678 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
679 {
680 /* serialize wsp_PolicyReferenceType element */
681 0 result = globus_soap_message_element_ns_set(
682 message_handle,
683 element_qname,
684 element_qname->Namespace,
685 &options);
686 0 if(result != GLOBUS_SUCCESS)
687 {
688 0 result = GlobusSoapMessageErrorSerializeFailed(
689 result, NULL, element_qname);
690 0 goto exit;
691 }
692
693 0 if(((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
694 !globus_soap_message_serialize_is_c14n_subset(message_handle)))
695 {
696 0 result = globus_soap_message_attribute_ns_set(
697 message_handle,
698 element_qname,
699 "http://www.w3.org/2001/XMLSchema-instance",
700 &options);
701 0 if(result != GLOBUS_SUCCESS)
702 {
703 0 result = GlobusSoapMessageErrorSerializeFailed(
704 result, NULL, element_qname);
705 0 goto exit;
706 }
707 }
708
709 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
710 !globus_soap_message_serialize_is_c14n_subset(message_handle))
711 {
712
713 0 result = globus_soap_message_attribute_ns_set(
714 message_handle,
715 element_qname,
716 wsp_PolicyReferenceType_qname.Namespace,
717 &options);
718 0 if(result != GLOBUS_SUCCESS)
719 {
720 0 result = GlobusSoapMessageErrorSerializeFailed(
721 result, NULL, element_qname);
722 0 goto exit;
723 }
724 }
725
726 0 result = xsd_anyAttributes_namespace_set(
727 message_handle, element_qname, instance->anyAttributes, &options);
728 0 if(result != GLOBUS_SUCCESS)
729 {
730 0 result = GlobusSoapMessageErrorSerializeAnyAttrsFailed(
731 result, "Failed to set namespace");
732 0 goto exit;
733 }
734
735 0 if(instance->_Digest)
736 {
737
738 0 if(result != GLOBUS_SUCCESS)
739 {
740 xsd_QName error_qname;
741 0 error_qname.local = prefix;
742 0 error_qname.Namespace = "";
743 0 result = GlobusSoapMessageErrorSerializeFailed(result,
744 NULL,
745 &error_qname);
746 0 goto exit;
747 }
748
749
750 }
751
752 0 if(instance->_DigestAlgorithm)
753 {
754
755 0 if(result != GLOBUS_SUCCESS)
756 {
757 xsd_QName error_qname;
758 0 error_qname.local = prefix;
759 0 error_qname.Namespace = "";
760 0 result = GlobusSoapMessageErrorSerializeFailed(result,
761 NULL,
762 &error_qname);
763 0 goto exit;
764 }
765
766
767 0 result = globus_soap_message_attribute_ns_set(
768 message_handle,
769 element_qname,
770 instance->_DigestAlgorithm->Namespace,
771 &options);
772 0 if(result != GLOBUS_SUCCESS)
773 {
774 xsd_QName error_qname;
775 0 error_qname.local = prefix;
776 0 error_qname.Namespace = "";
777 0 result = GlobusSoapMessageErrorSerializeFailed(result,
778 NULL,
779 &error_qname);
780 0 goto exit;
781 }
782
783 }
784
785 0 if(instance->_Ref)
786 {
787
788 0 if(result != GLOBUS_SUCCESS)
789 {
790 xsd_QName error_qname;
791 0 error_qname.local = prefix;
792 0 error_qname.Namespace = "";
793 0 result = GlobusSoapMessageErrorSerializeFailed(result,
794 NULL,
795 &error_qname);
796 0 goto exit;
797 }
798
799
800 0 result = globus_soap_message_attribute_ns_set(
801 message_handle,
802 element_qname,
803 instance->_Ref->Namespace,
804 &options);
805 0 if(result != GLOBUS_SUCCESS)
806 {
807 xsd_QName error_qname;
808 0 error_qname.local = prefix;
809 0 error_qname.Namespace = "";
810 0 result = GlobusSoapMessageErrorSerializeFailed(result,
811 NULL,
812 &error_qname);
813 0 goto exit;
814 }
815
816 }
817
818 0 if(instance->_URI)
819 {
820
821 0 if(result != GLOBUS_SUCCESS)
822 {
823 xsd_QName error_qname;
824 0 error_qname.local = prefix;
825 0 error_qname.Namespace = "";
826 0 result = GlobusSoapMessageErrorSerializeFailed(result,
827 NULL,
828 &error_qname);
829 0 goto exit;
830 }
831
832
833 }
834
835 0 result = globus_soap_message_serialize_element(
836 message_handle,
837 element_qname,
838 options,
839 &wsp_PolicyReferenceType_qname);
840 0 if(result != GLOBUS_SUCCESS)
841 {
842 0 result = GlobusSoapMessageErrorSerializeFailed(
843 result, NULL, element_qname);
844 0 goto exit;
845 }
846
847 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
848 !globus_soap_message_serialize_is_c14n_subset(message_handle))
849 {
850 0 xsd_QName_init(&type_attr);
851
852 0 type_attr->local = globus_libc_strdup("type");
853 0 type_attr->Namespace = globus_libc_strdup(XSI_NS);
854 }
855
856
857 /* serialize namespaces */
858 0 result = globus_soap_message_element_ns_add(
859 message_handle,
860 element_qname,
861 element_qname->Namespace,
862 &options);
863 0 if(result != GLOBUS_SUCCESS)
864 {
865 0 result = GlobusSoapMessageErrorSerializeFailed(
866 result, NULL, element_qname);
867 0 goto exit;
868 }
869
870 0 if(((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
871 !globus_soap_message_serialize_is_c14n_subset(message_handle)))
872 {
873 0 result = globus_soap_message_attribute_ns_add(
874 message_handle,
875 element_qname,
876 "http://www.w3.org/2001/XMLSchema-instance",
877 &options);
878 0 if(result != GLOBUS_SUCCESS)
879 {
880 0 result = GlobusSoapMessageErrorSerializeFailed(
881 result, NULL, element_qname);
882 0 goto exit;
883 }
884 }
885 0 if ((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
886 !globus_soap_message_serialize_is_c14n_subset(message_handle))
887 {
888
889 0 result = globus_soap_message_attribute_ns_add(
890 message_handle,
891 element_qname,
892 wsp_PolicyReferenceType_qname.Namespace,
893 &options);
894 0 if(result != GLOBUS_SUCCESS)
895 {
896 0 result = GlobusSoapMessageErrorSerializeFailed(
897 result, NULL, element_qname);
898 0 goto exit;
899 }
900 }
901
902 0 result = xsd_anyAttributes_namespace_add(
903 message_handle, element_qname, instance->anyAttributes, &options);
904 0 if(result != GLOBUS_SUCCESS)
905 {
906 0 result = GlobusSoapMessageErrorSerializeAnyAttrsFailed(
907 result, "Failed to add namespace");
908 0 goto exit;
909 }
910
911 0 if(instance->_Digest)
912 {
913
914 }
915
916 0 if(instance->_DigestAlgorithm)
917 {
918
919 0 result = globus_soap_message_attribute_ns_add(
920 message_handle,
921 element_qname,
922 instance->_DigestAlgorithm->Namespace,
923 &options);
924 0 if(result != GLOBUS_SUCCESS)
925 {
926 xsd_QName error_qname;
927 0 error_qname.local = prefix;
928 0 error_qname.Namespace = "";
929 0 result = GlobusSoapMessageErrorSerializeFailed(result,
930 NULL,
931 &error_qname);
932 0 goto exit;
933 }
934
935 }
936
937 0 if(instance->_Ref)
938 {
939
940 0 result = globus_soap_message_attribute_ns_add(
941 message_handle,
942 element_qname,
943 instance->_Ref->Namespace,
944 &options);
945 0 if(result != GLOBUS_SUCCESS)
946 {
947 xsd_QName error_qname;
948 0 error_qname.local = prefix;
949 0 error_qname.Namespace = "";
950 0 result = GlobusSoapMessageErrorSerializeFailed(result,
951 NULL,
952 &error_qname);
953 0 goto exit;
954 }
955
956 }
957
958 0 if(instance->_URI)
959 {
960
961 }
962
963 /* serialize attributes */
964
965 0 if(instance->anyAttributes)
966 {
967 0 any_attr_keys = xsd_anyAttributes_lex_sort(
968 instance->anyAttributes);
969 0 any_attr_keys_iterator = any_attr_keys;
970 }
971
972 0 subelement.Namespace = "";
973 0 subelement.local = "Digest";
974
975 0 if(any_attr_keys_iterator)
976 {
977 0 result = xsd_anyAttributes_serialize_lex_before(
978 message_handle,
979 &any_attr_keys_iterator,
980 instance->anyAttributes,
981 &subelement);
982 0 if(result != GLOBUS_SUCCESS)
983 {
984 0 result = GlobusSoapMessageErrorSerializeFailed(result,
985 NULL,
986 element_qname);
987 0 goto exit;
988 }
989 }
990
991 0 if(instance->_Digest)
992 {
993
994 0 result = xsd_base64Binary_serialize_attribute(
995 &subelement,
996 instance->_Digest,
997 message_handle,
998 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
999 0 if(result != GLOBUS_SUCCESS)
1000 {
1001 0 result = GlobusSoapMessageErrorSerializeFailed(result,
1002 NULL,
1003 element_qname);
1004 0 goto exit;
1005 }
1006
1007 }
1008
1009 0 subelement.Namespace = "";
1010 0 subelement.local = "DigestAlgorithm";
1011
1012 0 if(any_attr_keys_iterator)
1013 {
1014 0 result = xsd_anyAttributes_serialize_lex_before(
1015 message_handle,
1016 &any_attr_keys_iterator,
1017 instance->anyAttributes,
1018 &subelement);
1019 0 if(result != GLOBUS_SUCCESS)
1020 {
1021 0 result = GlobusSoapMessageErrorSerializeFailed(result,
1022 NULL,
1023 element_qname);
1024 0 goto exit;
1025 }
1026 }
1027
1028 0 if(instance->_DigestAlgorithm)
1029 {
1030
1031 0 result = xsd_QName_serialize_attribute(
1032 &subelement,
1033 instance->_DigestAlgorithm,
1034 message_handle,
1035 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
1036 0 if(result != GLOBUS_SUCCESS)
1037 {
1038 0 result = GlobusSoapMessageErrorSerializeFailed(result,
1039 NULL,
1040 element_qname);
1041 0 goto exit;
1042 }
1043
1044 }
1045
1046 0 subelement.Namespace = "";
1047 0 subelement.local = "Ref";
1048
1049 0 if(any_attr_keys_iterator)
1050 {
1051 0 result = xsd_anyAttributes_serialize_lex_before(
1052 message_handle,
1053 &any_attr_keys_iterator,
1054 instance->anyAttributes,
1055 &subelement);
1056 0 if(result != GLOBUS_SUCCESS)
1057 {
1058 0 result = GlobusSoapMessageErrorSerializeFailed(result,
1059 NULL,
1060 element_qname);
1061 0 goto exit;
1062 }
1063 }
1064
1065 0 if(instance->_Ref)
1066 {
1067
1068 0 result = xsd_QName_serialize_attribute(
1069 &subelement,
1070 instance->_Ref,
1071 message_handle,
1072 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
1073 0 if(result != GLOBUS_SUCCESS)
1074 {
1075 0 result = GlobusSoapMessageErrorSerializeFailed(result,
1076 NULL,
1077 element_qname);
1078 0 goto exit;
1079 }
1080
1081 }
1082
1083 0 subelement.Namespace = "";
1084 0 subelement.local = "URI";
1085
1086 0 if(any_attr_keys_iterator)
1087 {
1088 0 result = xsd_anyAttributes_serialize_lex_before(
1089 message_handle,
1090 &any_attr_keys_iterator,
1091 instance->anyAttributes,
1092 &subelement);
1093 0 if(result != GLOBUS_SUCCESS)
1094 {
1095 0 result = GlobusSoapMessageErrorSerializeFailed(result,
1096 NULL,
1097 element_qname);
1098 0 goto exit;
1099 }
1100 }
1101
1102 0 if(instance->_URI)
1103 {
1104
1105 0 result = xsd_anyURI_serialize_attribute(
1106 &subelement,
1107 instance->_URI,
1108 message_handle,
1109 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
1110 0 if(result != GLOBUS_SUCCESS)
1111 {
1112 0 result = GlobusSoapMessageErrorSerializeFailed(result,
1113 NULL,
1114 element_qname);
1115 0 goto exit;
1116 }
1117
1118 }
1119
1120 0 if(any_attr_keys_iterator)
1121 {
1122 0 result = xsd_anyAttributes_serialize_lex_before(
1123 message_handle,
1124 &any_attr_keys_iterator,
1125 instance->anyAttributes,
1126 type_attr);
1127 0 if(result != GLOBUS_SUCCESS)
1128 {
1129 0 result = GlobusSoapMessageErrorSerializeFailed(result,
1130 NULL,
1131 element_qname);
1132 0 goto exit;
1133 }
1134 }
1135
1136 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
1137 !globus_soap_message_serialize_is_c14n_subset(message_handle))
1138 {
1139 0 result = globus_soap_message_serialize_QName_attribute(
1140 message_handle,
1141 type_attr,
1142 &wsp_PolicyReferenceType_qname);
1143 0 if(result != GLOBUS_SUCCESS)
1144 {
1145 0 result = GlobusSoapMessageErrorSerializeFailed(
1146 result, NULL, element_qname);
1147 0 goto exit;
1148 }
1149 }
1150
1151
1152 }
1153
1154 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
1155 {
1156 0 result = globus_soap_message_serialize_element_begin_close(
1157 message_handle, element_qname);
1158 0 if(result != GLOBUS_SUCCESS)
1159 {
1160 0 result = GlobusSoapMessageErrorSerializeFailed(
1161 result, NULL, element_qname);
1162 0 goto exit;
1163 }
1164 }
1165 0 options &= ~GLOBUS_XSD_ELEMENT_CONTENTS_ONLY;
1166
1167
1168 /* serialize contents of type */
1169
1170 0 subelement.local = "any";
1171 0 subelement.Namespace = "http://www.w3.org/2001/XMLSchema";
1172
1173 0 result = xsd_any_array_serialize(
1174 &subelement,
1175 &instance->any,
1176 message_handle,
1177 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
1178 0 if(result != GLOBUS_SUCCESS)
1179 {
1180 0 result = GlobusSoapMessageErrorSerializeFailed(
1181 result, NULL, &xsd_any_qname);
1182 0 goto exit;
1183 }
1184
1185 0 options = save_options;
1186
1187 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
1188 {
1189 /* add end element */
1190 0 result = globus_soap_message_serialize_element_end(
1191 message_handle,
1192 element_qname,
1193 options,
1194 &wsp_PolicyReferenceType_qname);
1195 0 if(result != GLOBUS_SUCCESS)
1196 {
1197 0 result = GlobusSoapMessageErrorSerializeFailed(
1198 result, NULL, element_qname);
1199 0 goto exit;
1200 }
1201
1202 0 globus_soap_message_element_ns_remove(
1203 message_handle,
1204 element_qname->Namespace,
1205 &options);
1206
1207 /* remove namespace/prefix mappings for these types */
1208
1209 0 if(((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
1210 !globus_soap_message_serialize_is_c14n_subset(message_handle)))
1211 {
1212 0 globus_soap_message_attribute_ns_remove(
1213 message_handle,
1214 "http://www.w3.org/2001/XMLSchema-instance",
1215 &options);
1216 }
1217 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
1218 !globus_soap_message_serialize_is_c14n_subset(message_handle))
1219 {
1220 0 globus_soap_message_attribute_ns_remove(
1221 message_handle,
1222 wsp_PolicyReferenceType_qname.Namespace,
1223 &options);
1224 }
1225
1226 0 result = xsd_anyAttributes_namespace_remove(
1227 message_handle, instance->anyAttributes, &options);
1228 0 if(result != GLOBUS_SUCCESS)
1229 {
1230 0 result = GlobusSoapMessageErrorSerializeAnyAttrsFailed(
1231 result, "Failed to remove namespace");
1232 0 goto exit;
1233 }
1234
1235 0 if(instance->_Digest)
1236 {
1237
1238 0 globus_soap_message_attribute_ns_remove(
1239 message_handle,
1240 NULL,
1241 &options);
1242
1243 }
1244
1245 0 if(instance->_DigestAlgorithm)
1246 {
1247
1248 0 globus_soap_message_attribute_ns_remove(
1249 message_handle,
1250 NULL,
1251 &options);
1252
1253 0 globus_soap_message_attribute_ns_remove(
1254 message_handle,
1255 instance->_DigestAlgorithm->Namespace,
1256 &options);
1257
1258 }
1259
1260 0 if(instance->_Ref)
1261 {
1262
1263 0 globus_soap_message_attribute_ns_remove(
1264 message_handle,
1265 NULL,
1266 &options);
1267
1268 0 globus_soap_message_attribute_ns_remove(
1269 message_handle,
1270 instance->_Ref->Namespace,
1271 &options);
1272
1273 }
1274
1275 0 if(instance->_URI)
1276 {
1277
1278 0 globus_soap_message_attribute_ns_remove(
1279 message_handle,
1280 NULL,
1281 &options);
1282
1283 }
1284
1285 }
1286
1287 0 exit:
1288 0 if (type_attr)
1289 {
1290 0 xsd_QName_destroy(type_attr);
1291 }
1292
1293
1294 0 if(any_attr_keys)
1295 {
1296 0 globus_list_free(any_attr_keys);
1297 }
1298
1299 0 GlobusSoapMessageDebugExit();
1300 0 return result;
1301 }
1302
1303
1304
1305 globus_result_t
1306 wsp_PolicyReferenceType_deserialize_contents(
1307 const xsd_QName * element_qname, /* ignored */
1308 wsp_PolicyReferenceType * inst,
1309 globus_soap_message_handle_t message_handle,
1310 globus_xsd_element_options_t options)
1311 0 {
1312 0 globus_result_t result = GLOBUS_SUCCESS;
1313 GlobusFuncName(wsp_PolicyReferenceType_deserialize_contents);
1314 0 GlobusSoapMessageDebugEnter();
1315
1316 0 result = wsp_PolicyReferenceType_deserialize(
1317 NULL,
1318 inst,
1319 message_handle,
1320 options | GLOBUS_XSD_ELEMENT_CONTENTS_ONLY);
1321 0 if(result != GLOBUS_SUCCESS)
1322 {
1323 0 result = GlobusSoapMessageErrorDeserializeFailed(
1324 result, element_qname);
1325 0 goto exit;
1326 }
1327
1328 0 exit:
1329
1330 0 GlobusSoapMessageDebugExit();
1331 0 return result;
1332 }
1333
1334
1335
1336 globus_result_t
1337 wsp_PolicyReferenceType_deserialize(
1338 const xsd_QName * element_qname,
1339 wsp_PolicyReferenceType * instance,
1340 globus_soap_message_handle_t message_handle,
1341 globus_xsd_element_options_t options)
1342 0 {
1343 0 globus_result_t result = GLOBUS_SUCCESS;
1344 xsd_QName subelement;
1345 GlobusFuncName(wsp_PolicyReferenceType_deserialize);
1346 0 GlobusSoapMessageDebugEnter();
1347
1348
1349 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
1350 {
1351 0 result = globus_soap_message_deserialize_element(
1352 message_handle, element_qname);
1353 0 if(result != GLOBUS_SUCCESS)
1354 {
1355 0 result = GlobusSoapMessageErrorDeserializeFailed(
1356 result, element_qname);
1357 0 goto exit;
1358 }
1359
1360 0 result = xsd_anyAttributes_init(&instance->anyAttributes);
1361 0 if(result != GLOBUS_SUCCESS)
1362 {
1363 0 result = GlobusSoapMessageErrorDeserializeFailed(
1364 result, element_qname);
1365 0 goto xsd_anyAttributes_after_destroy;
1366 }
1367 0 subelement.Namespace = "##any";
1368 0 subelement.local = "anyAttributes";
1369
1370 0 result = xsd_anyAttributes_deserialize(
1371 message_handle,
1372 instance->anyAttributes,
1373 &subelement);
1374 0 if(result != GLOBUS_SUCCESS)
1375 {
1376 0 result = GlobusSoapMessageErrorDeserializeFailed(
1377 result, element_qname);
1378 0 goto xsd_anyAttributes_destroy;
1379 }
1380
1381 0 subelement.Namespace = "";
1382 0 subelement.local = "Digest";
1383
1384 0 result = xsd_base64Binary_deserialize_attribute_pointer(
1385 &subelement,
1386 &instance->_Digest,
1387 message_handle,
1388 0);
1389 0 if(result != GLOBUS_SUCCESS)
1390 {
1391 0 result = GlobusSoapMessageErrorDeserializeFailed(result, &subelement);
1392 0 goto _Digest_destroy;
1393 }
1394
1395
1396 0 subelement.Namespace = "";
1397 0 subelement.local = "DigestAlgorithm";
1398
1399 0 result = xsd_QName_deserialize_attribute_pointer(
1400 &subelement,
1401 &instance->_DigestAlgorithm,
1402 message_handle,
1403 0);
1404 0 if(result != GLOBUS_SUCCESS)
1405 {
1406 0 result = GlobusSoapMessageErrorDeserializeFailed(result, &subelement);
1407 0 goto _DigestAlgorithm_destroy;
1408 }
1409
1410
1411 0 subelement.Namespace = "";
1412 0 subelement.local = "Ref";
1413
1414 0 result = xsd_QName_deserialize_attribute_pointer(
1415 &subelement,
1416 &instance->_Ref,
1417 message_handle,
1418 0);
1419 0 if(result != GLOBUS_SUCCESS)
1420 {
1421 0 result = GlobusSoapMessageErrorDeserializeFailed(result, &subelement);
1422 0 goto _Ref_destroy;
1423 }
1424
1425
1426 0 subelement.Namespace = "";
1427 0 subelement.local = "URI";
1428
1429 0 result = xsd_anyURI_deserialize_attribute_pointer(
1430 &subelement,
1431 &instance->_URI,
1432 message_handle,
1433 0);
1434 0 if(result != GLOBUS_SUCCESS)
1435 {
1436 0 result = GlobusSoapMessageErrorDeserializeFailed(result, &subelement);
1437 0 goto _URI_destroy;
1438 }
1439
1440
1441
1442 0 result = globus_soap_message_deserialize_element_begin_close(
1443 message_handle);
1444 0 if(result != GLOBUS_SUCCESS)
1445 {
1446 0 result = GlobusSoapMessageErrorDeserializeFailed(
1447 result, element_qname);
1448 0 goto fail_deserialize;
1449 }
1450 }
1451
1452 0 subelement.local = "any";
1453
1454 0 subelement.Namespace = "##any";
1455
1456 0 result = xsd_any_array_deserialize(
1457 &subelement,
1458 &instance->any,
1459 message_handle,
1460 0);
1461 0 if(result != GLOBUS_SUCCESS)
1462 {
1463 0 result = GlobusSoapMessageErrorDeserializeFailed(
1464 result,
1465 (&subelement));
1466 0 goto any_destroy_array;
1467 }
1468
1469 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
1470 {
1471 0 result = globus_soap_message_deserialize_element_end(
1472 message_handle,
1473 element_qname);
1474 0 if(result != GLOBUS_SUCCESS)
1475 {
1476 0 result = GlobusSoapMessageErrorDeserializeFailed(
1477 result, element_qname);
1478 0 goto fail_deserialize;
1479 }
1480 }
1481
1482 0 goto exit;
1483
1484 0 fail_deserialize:
1485
1486 0 xsd_anyAttributes_destroy:
1487 0 xsd_anyAttributes_destroy(instance->anyAttributes);
1488 0 instance->anyAttributes = NULL;
1489 0 xsd_anyAttributes_after_destroy:
1490
1491 0 _URI_destroy:
1492 /* output_fail_destroy_attribute() */
1493
1494 0 if(instance->_URI)
1495 {
1496 0 xsd_anyURI_destroy(
1497 instance->_URI);
1498 0 instance->_URI = NULL;
1499 }
1500
1501 0 _Ref_destroy:
1502 /* output_fail_destroy_attribute() */
1503
1504 0 if(instance->_Ref)
1505 {
1506 0 xsd_QName_destroy(
1507 instance->_Ref);
1508 0 instance->_Ref = NULL;
1509 }
1510
1511 0 _DigestAlgorithm_destroy:
1512 /* output_fail_destroy_attribute() */
1513
1514 0 if(instance->_DigestAlgorithm)
1515 {
1516 0 xsd_QName_destroy(
1517 instance->_DigestAlgorithm);
1518 0 instance->_DigestAlgorithm = NULL;
1519 }
1520
1521 0 _Digest_destroy:
1522 /* output_fail_destroy_attribute() */
1523
1524 0 if(instance->_Digest)
1525 {
1526 0 xsd_base64Binary_destroy(
1527 instance->_Digest);
1528 0 instance->_Digest = NULL;
1529 }
1530 0 xsd_any_array_destroy_contents(
1531 &instance->any);
1532
1533 0 any_destroy_array:
1534
1535
1536 0 exit:
1537
1538 0 GlobusSoapMessageDebugExit();
1539 0 return result;
1540 }
1541
1542
1543
1544 globus_result_t
1545 wsp_PolicyReferenceType_deserialize_pointer(
1546 const xsd_QName * element_qname,
1547 wsp_PolicyReferenceType ** ip,
1548 globus_soap_message_handle_t message_handle,
1549 globus_xsd_element_options_t options)
1550 0 {
1551 0 wsp_PolicyReferenceType * instance = NULL;
1552 0 globus_result_t result = GLOBUS_SUCCESS;
1553 xsd_QName subelement;
1554 0 int found_attrs = 0;
1555 0 int empty_element = 0;
1556 GlobusFuncName(wsp_PolicyReferenceType_deserialize_pointer);
1557 0 GlobusSoapMessageDebugEnter();
1558
1559 0 *ip = NULL;
1560
1561 0 result = globus_soap_message_deserialize_element(
1562 message_handle, element_qname);
1563 0 if(result != GLOBUS_SUCCESS &&
1564 (GlobusSoapMessageStatusElementNotFoundCheck(result) ||
1565 GlobusSoapMessageStatusFailedElementCheck(result) ||
1566 GlobusSoapMessageStatusFailedWithTextCheck(result)))
1567 {
1568 0 result = GLOBUS_SUCCESS;
1569 0 goto exit;
1570 }
1571
1572 0 if(result != GLOBUS_SUCCESS)
1573 {
1574 0 result = GlobusSoapMessageErrorDeserializeFailed(
1575 result, element_qname);
1576 0 goto exit;
1577 }
1578
1579 0 if(globus_soap_message_deserialize_element_is_empty(
1580 message_handle))
1581 {
1582 0 empty_element = 1;
1583 }
1584
1585 0 result = wsp_PolicyReferenceType_init(&instance);
1586 0 if(result != GLOBUS_SUCCESS)
1587 {
1588 0 result = GlobusSoapMessageErrorDeserializeFailed(
1589 result, element_qname);
1590 0 goto exit;
1591 }
1592
1593
1594 0 result = xsd_anyAttributes_init(&instance->anyAttributes);
1595 0 if(result != GLOBUS_SUCCESS)
1596 {
1597 0 result = GlobusSoapMessageErrorDeserializeFailed(
1598 result, element_qname);
1599 0 goto xsd_anyAttributes_after_destroy;
1600 }
1601 0 subelement.Namespace = "##any";
1602 0 subelement.local = "anyAttributes";
1603
1604 0 result = xsd_anyAttributes_deserialize(
1605 message_handle,
1606 instance->anyAttributes,
1607 &subelement);
1608 0 if(result != GLOBUS_SUCCESS)
1609 {
1610 0 result = GlobusSoapMessageErrorDeserializeFailed(
1611 result, element_qname);
1612 0 goto xsd_anyAttributes_destroy;
1613 }
1614
1615 0 if(instance->anyAttributes &&
1616 xsd_anyAttributes_size(instance->anyAttributes) > 0)
1617 {
1618 0 found_attrs++;
1619 }
1620
1621 0 subelement.Namespace = "";
1622 0 subelement.local = "Digest";
1623
1624 0 result = xsd_base64Binary_deserialize_attribute_pointer(
1625 &subelement,
1626 &instance->_Digest,
1627 message_handle,
1628 0);
1629 0 if(result != GLOBUS_SUCCESS)
1630 {
1631 0 result = GlobusSoapMessageErrorDeserializeFailed(result, &subelement);
1632 0 goto _Digest_destroy;
1633 }
1634
1635
1636 0 if(instance->_Digest)
1637 {
1638 0 found_attrs++;
1639 }
1640
1641 0 subelement.Namespace = "";
1642 0 subelement.local = "DigestAlgorithm";
1643
1644 0 result = xsd_QName_deserialize_attribute_pointer(
1645 &subelement,
1646 &instance->_DigestAlgorithm,
1647 message_handle,
1648 0);
1649 0 if(result != GLOBUS_SUCCESS)
1650 {
1651 0 result = GlobusSoapMessageErrorDeserializeFailed(result, &subelement);
1652 0 goto _DigestAlgorithm_destroy;
1653 }
1654
1655
1656 0 if(instance->_DigestAlgorithm)
1657 {
1658 0 found_attrs++;
1659 }
1660
1661 0 subelement.Namespace = "";
1662 0 subelement.local = "Ref";
1663
1664 0 result = xsd_QName_deserialize_attribute_pointer(
1665 &subelement,
1666 &instance->_Ref,
1667 message_handle,
1668 0);
1669 0 if(result != GLOBUS_SUCCESS)
1670 {
1671 0 result = GlobusSoapMessageErrorDeserializeFailed(result, &subelement);
1672 0 goto _Ref_destroy;
1673 }
1674
1675
1676 0 if(instance->_Ref)
1677 {
1678 0 found_attrs++;
1679 }
1680
1681 0 subelement.Namespace = "";
1682 0 subelement.local = "URI";
1683
1684 0 result = xsd_anyURI_deserialize_attribute_pointer(
1685 &subelement,
1686 &instance->_URI,
1687 message_handle,
1688 0);
1689 0 if(result != GLOBUS_SUCCESS)
1690 {
1691 0 result = GlobusSoapMessageErrorDeserializeFailed(result, &subelement);
1692 0 goto _URI_destroy;
1693 }
1694
1695
1696 0 if(instance->_URI)
1697 {
1698 0 found_attrs++;
1699 }
1700
1701 0 if(found_attrs == 0 &&
1702 globus_soap_message_deserialize_element_is_nil(message_handle))
1703 {
1704 0 wsp_PolicyReferenceType_destroy(instance);
1705
1706 0 result = globus_soap_message_deserialize_element_end(
1707 message_handle,
1708 element_qname);
1709 0 if(result != GLOBUS_SUCCESS)
1710 {
1711 0 result = GlobusSoapMessageErrorDeserializeFailed(
1712 result, element_qname);
1713 0 goto exit;
1714 }
1715
1716 0 *ip = NULL;
1717 0 globus_object_free(globus_error_get(result));
1718 0 result = GLOBUS_SUCCESS;
1719 0 goto exit;
1720 }
1721
1722 0 if(empty_element)
1723 {
1724 0 result = globus_soap_message_deserialize_element_end(
1725 message_handle,
1726 element_qname);
1727 0 if(result != GLOBUS_SUCCESS)
1728 {
1729 0 result = GlobusSoapMessageErrorDeserializeFailed(
1730 result, element_qname);
1731 0 goto fail_deserialize;
1732 }
1733
1734 0 *ip = instance;
1735 0 goto exit;
1736 }
1737
1738 0 result = globus_soap_message_deserialize_element_begin_close(
1739 message_handle);
1740 0 if(result != GLOBUS_SUCCESS)
1741 {
1742 0 result = GlobusSoapMessageErrorDeserializeFailed(
1743 result, element_qname);
1744 0 goto exit;
1745 }
1746
1747 0 result = wsp_PolicyReferenceType_deserialize(
1748 element_qname,
1749 instance,
1750 message_handle,
1751 options | GLOBUS_XSD_ELEMENT_CONTENTS_ONLY);
1752 0 if(result != GLOBUS_SUCCESS)
1753 {
1754 0 result = GlobusSoapMessageErrorDeserializeFailed(
1755 result, element_qname);
1756 0 goto exit;
1757 }
1758
1759 0 result = globus_soap_message_deserialize_element_end(
1760 message_handle,
1761 element_qname);
1762 0 if(result != GLOBUS_SUCCESS)
1763 {
1764 0 result = GlobusSoapMessageErrorDeserializeFailed(
1765 result, element_qname);
1766 0 goto fail_deserialize;
1767 }
1768
1769 0 *ip = instance;
1770
1771 0 goto exit;
1772
1773 0 fail_deserialize:
1774
1775 0 xsd_anyAttributes_destroy:
1776 0 xsd_anyAttributes_destroy(instance->anyAttributes);
1777 0 instance->anyAttributes = NULL;
1778 0 xsd_anyAttributes_after_destroy:
1779
1780 0 _URI_destroy:
1781 /* output_fail_destroy_attribute() */
1782
1783 0 if(instance->_URI)
1784 {
1785 0 xsd_anyURI_destroy(
1786 instance->_URI);
1787 0 instance->_URI = NULL;
1788 }
1789
1790 0 _Ref_destroy:
1791 /* output_fail_destroy_attribute() */
1792
1793 0 if(instance->_Ref)
1794 {
1795 0 xsd_QName_destroy(
1796 instance->_Ref);
1797 0 instance->_Ref = NULL;
1798 }
1799
1800 0 _DigestAlgorithm_destroy:
1801 /* output_fail_destroy_attribute() */
1802
1803 0 if(instance->_DigestAlgorithm)
1804 {
1805 0 xsd_QName_destroy(
1806 instance->_DigestAlgorithm);
1807 0 instance->_DigestAlgorithm = NULL;
1808 }
1809
1810 0 _Digest_destroy:
1811 /* output_fail_destroy_attribute() */
1812
1813 0 if(instance->_Digest)
1814 {
1815 0 xsd_base64Binary_destroy(
1816 instance->_Digest);
1817 0 instance->_Digest = NULL;
1818 }
1819 0 xsd_any_array_destroy_contents(
1820 &instance->any);
1821
1822 0 any_destroy_array:
1823
1824 0 exit:
1825
1826 0 GlobusSoapMessageDebugExit();
1827 0 return result;
1828 }
1829
1830
1831 globus_result_t
1832 wsp_PolicyReferenceType_array_init_contents(
1833 wsp_PolicyReferenceType_array * array)
1834 0 {
1835 0 return globus_xsd_generic_array_init_contents(
1836 (globus_xsd_generic_array_t *) array,
1837 &wsp_PolicyReferenceType_info);
1838 }
1839 /* wsp_PolicyReferenceType_array_init_contents() */
1840
1841 globus_result_t
1842 wsp_PolicyReferenceType_array_init(
1843 wsp_PolicyReferenceType_array ** arr)
1844 0 {
1845 0 return globus_xsd_generic_array_init(
1846 (globus_xsd_generic_array_t **) arr,
1847 &wsp_PolicyReferenceType_info);
1848 }
1849 /* wsp_PolicyReferenceType_array_init() */
1850
1851 void
1852 wsp_PolicyReferenceType_array_destroy_contents(
1853 wsp_PolicyReferenceType_array * array)
1854 0 {
1855 0 globus_xsd_generic_array_destroy_contents(
1856 (globus_xsd_generic_array_t *) array);
1857 0 }
1858 /* wsp_PolicyReferenceType_array_destroy_contents() */
1859
1860 void
1861 wsp_PolicyReferenceType_array_destroy(
1862 wsp_PolicyReferenceType_array * array)
1863 0 {
1864 0 globus_xsd_generic_array_destroy(
1865 (globus_xsd_generic_array_t *) array);
1866 0 }
1867 /* wsp_PolicyReferenceType_array_destroy() */
1868
1869 globus_result_t
1870 wsp_PolicyReferenceType_array_copy(
1871 wsp_PolicyReferenceType_array ** dest_arr,
1872 const wsp_PolicyReferenceType_array * src_arr)
1873 0 {
1874 0 return globus_xsd_generic_array_copy(
1875 (globus_xsd_generic_array_t **) dest_arr,
1876 (globus_xsd_generic_array_t *) src_arr);
1877 }
1878 /* wsp_PolicyReferenceType_array_copy() */
1879
1880 globus_result_t
1881 wsp_PolicyReferenceType_array_copy_contents(
1882 wsp_PolicyReferenceType_array * dest_arr,
1883 const wsp_PolicyReferenceType_array * src_arr)
1884 0 {
1885 0 return globus_xsd_generic_array_copy_contents(
1886 (globus_xsd_generic_array_t *) dest_arr,
1887 (globus_xsd_generic_array_t *) src_arr);
1888 }
1889 /* wsp_PolicyReferenceType_array_copy_contents() */
1890
1891 wsp_PolicyReferenceType *
1892 wsp_PolicyReferenceType_array_push(
1893 wsp_PolicyReferenceType_array * array)
1894 0 {
1895 /* Some contents initializers don't initialize subelments but to set their
1896 * values to be NULL
1897 */
1898 0 if (array->type_info == NULL)
1899 {
1900 0 array->type_info = &wsp_PolicyReferenceType_info;
1901 }
1902
1903 0 return globus_xsd_generic_array_push(
1904 (globus_xsd_generic_array_t *) array);
1905 }
1906 /* wsp_PolicyReferenceType_array_push() */
1907
1908 globus_result_t
1909 wsp_PolicyReferenceType_array_serialize(
1910 const xsd_QName * element_qname,
1911 const wsp_PolicyReferenceType_array * array,
1912 globus_soap_message_handle_t message,
1913 globus_xsd_element_options_t options)
1914 0 {
1915 0 return globus_xsd_generic_array_serialize(
1916 element_qname,
1917 (const globus_xsd_generic_array_t *) array,
1918 message,
1919 options);
1920 }
1921 /* wsp_PolicyReferenceType_array_serialize() */
1922
1923 globus_result_t
1924 wsp_PolicyReferenceType_array_deserialize(
1925 const xsd_QName * element_qname,
1926 wsp_PolicyReferenceType_array * array,
1927 globus_soap_message_handle_t message,
1928 globus_xsd_element_options_t options)
1929 0 {
1930 /* Some initializers set the array's contents to NULL */
1931 0 if (array->type_info == NULL)
1932 {
1933 0 array->type_info = &wsp_PolicyReferenceType_info;
1934 }
1935 0 return globus_xsd_generic_array_deserialize(
1936 element_qname,
1937 (globus_xsd_generic_array_t *) array,
1938 message,
1939 options);