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 "ds_DigestMethodType.h"
26 #include "globus_xsd_generic_array.h"
27
28 #ifndef GLOBUS_DONT_DOCUMENT_INTERNAL
29 xsd_QName ds_DigestMethodType_qname =
30 {
31 DS_DIGESTMETHODTYPE_NS,
32 DS_DIGESTMETHODTYPE_LOCAL
33 };
34 #endif /* GLOBUS_DONT_DOCUMENT_INTERNAL */
35
36 static
37 globus_result_t
38 ds_DigestMethodType_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 ds_DigestMethodType_serialize(
45 element_qname,
46 (const ds_DigestMethodType *) instance,
47 message_handle, options);
48 }
49
50 static
51 globus_result_t
52 ds_DigestMethodType_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 ds_DigestMethodType_deserialize_pointer(
59 element_qname,
60 (ds_DigestMethodType **) ip,
61 message_handle, options);
62 }
63
64 static
65 globus_result_t
66 ds_DigestMethodType_init_wrapper(void **object)
67 0 {
68 0 return ds_DigestMethodType_init(
69 (ds_DigestMethodType **) object);
70 }
71
72 static
73 void
74 ds_DigestMethodType_destroy_wrapper(
75 void * object)
76 0 {
77 0 ds_DigestMethodType_destroy(
78 (ds_DigestMethodType *) object);
79 0 }
80
81 static
82 globus_result_t
83 ds_DigestMethodType_copy_wrapper(
84 void ** dest_obj,
85 const void * src_obj)
86 0 {
87 0 return ds_DigestMethodType_copy(
88 (ds_DigestMethodType **) dest_obj,
89 (ds_DigestMethodType *) src_obj);
90 }
91
92 static
93 globus_result_t
94 ds_DigestMethodType_init_contents_wrapper(void *object)
95 0 {
96 0 return ds_DigestMethodType_init_contents(
97 (ds_DigestMethodType *) object);
98 }
99
100 static
101 void
102 ds_DigestMethodType_destroy_contents_wrapper(
103 void * object)
104 0 {
105 0 ds_DigestMethodType_destroy_contents(
106 (ds_DigestMethodType *) object);
107 0 }
108
109 static
110 globus_result_t
111 ds_DigestMethodType_copy_contents_wrapper(
112 void * dest_obj,
113 const void * src_obj)
114 0 {
115 0 return ds_DigestMethodType_copy_contents(
116 (ds_DigestMethodType *) dest_obj,
117 (const ds_DigestMethodType *) src_obj);
118 }
119
120 static
121 globus_result_t
122 ds_DigestMethodType_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 ds_DigestMethodType_serialize_contents(
129 element_qname,
130 (ds_DigestMethodType *) instance,
131 message_handle, options);
132 }
133
134 static
135 globus_result_t
136 ds_DigestMethodType_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(ds_DigestMethodType_deserialize_contents_wrapper);
144 0 GlobusSoapMessageDebugEnter();
145
146 0 if(!*instance)
147 {
148 0 result = ds_DigestMethodType_init(
149 (ds_DigestMethodType **)instance);
150 0 if(result != GLOBUS_SUCCESS)
151 {
152 0 goto error;
153 }
154 }
155
156 0 result = ds_DigestMethodType_deserialize_contents(
157 element_qname,
158 *(ds_DigestMethodType **)instance,
159 message_handle, options);
160 0 error:
161 0 GlobusSoapMessageDebugExit();
162 0 return result;
163 }
164
165 static
166 globus_result_t
167 ds_DigestMethodType_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 ds_DigestMethodType_array_serialize(
174 element,
175 (ds_DigestMethodType_array *) instance,
176 message, options);
177 }
178
179 static
180 globus_result_t
181 ds_DigestMethodType_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 = ds_DigestMethodType_array_init(
192 (ds_DigestMethodType_array **)inst);
193 0 if(result != GLOBUS_SUCCESS)
194 {
195 0 return result;
196 }
197 }
198
199 0 return ds_DigestMethodType_array_deserialize(
200 element_qname,
201 *(ds_DigestMethodType_array **) inst,
202 message, options);
203 }
204
205 static
206 globus_result_t
207 ds_DigestMethodType_array_init_wrapper(
208 void ** arr)
209 0 {
210 0 return ds_DigestMethodType_array_init(
211 (ds_DigestMethodType_array **) arr);
212 }
213
214 static
215 void
216 ds_DigestMethodType_array_destroy_wrapper(
217 void * arr)
218 0 {
219 0 ds_DigestMethodType_array_destroy(
220 (ds_DigestMethodType_array *) arr);
221 0 }
222
223 static
224 globus_result_t
225 ds_DigestMethodType_array_copy_wrapper(
226 void ** dest_arr,
227 const void * src_arr)
228 0 {
229 0 return ds_DigestMethodType_array_copy(
230 (ds_DigestMethodType_array **) dest_arr,
231 (const ds_DigestMethodType_array *) src_arr);
232 }
233
234 static
235 globus_result_t
236 ds_DigestMethodType_array_init_contents_wrapper(
237 void * arr)
238 0 {
239 0 return ds_DigestMethodType_array_init_contents(
240 (ds_DigestMethodType_array *) arr);
241 }
242
243 static
244 void
245 ds_DigestMethodType_array_destroy_contents_wrapper(
246 void * arr)
247 0 {
248 0 ds_DigestMethodType_array_destroy_contents(
249 (ds_DigestMethodType_array *) arr);
250 0 }
251
252 static
253 globus_result_t
254 ds_DigestMethodType_array_copy_contents_wrapper(
255 void * dest_arr,
256 const void * src_arr)
257 0 {
258 0 return ds_DigestMethodType_array_copy_contents(
259 (ds_DigestMethodType_array *) dest_arr,
260 (const ds_DigestMethodType_array *) src_arr);
261 }
262
263 static
264 void *
265 ds_DigestMethodType_array_push_wrapper(
266 void * array)
267 0 {
268 0 return (void *) ds_DigestMethodType_array_push((ds_DigestMethodType_array *) array);
269 }
270
271 struct globus_xsd_type_info_s ds_DigestMethodType_contents_info =
272 {
273 &ds_DigestMethodType_qname,
274 ds_DigestMethodType_serialize_contents_wrapper,
275 ds_DigestMethodType_deserialize_contents_wrapper,
276 ds_DigestMethodType_init_wrapper,
277 ds_DigestMethodType_destroy_wrapper,
278 ds_DigestMethodType_copy_wrapper,
279 ds_DigestMethodType_init_contents_wrapper,
280 ds_DigestMethodType_destroy_contents_wrapper,
281 ds_DigestMethodType_copy_contents_wrapper,
282 sizeof(ds_DigestMethodType),
283 NULL,
284 NULL,
285 NULL
286 };
287
288 struct globus_xsd_type_info_s ds_DigestMethodType_array_info =
289 {
290 &ds_DigestMethodType_qname,
291 ds_DigestMethodType_array_serialize_wrapper,
292 ds_DigestMethodType_array_deserialize_wrapper,
293 ds_DigestMethodType_array_init_wrapper,
294 ds_DigestMethodType_array_destroy_wrapper,
295 ds_DigestMethodType_array_copy_wrapper,
296 ds_DigestMethodType_array_init_contents_wrapper,
297 ds_DigestMethodType_array_destroy_contents_wrapper,
298 ds_DigestMethodType_array_copy_contents_wrapper,
299 sizeof(ds_DigestMethodType),
300 ds_DigestMethodType_array_push_wrapper,
301 NULL,
302 NULL
303 };
304
305 struct globus_xsd_type_info_s ds_DigestMethodType_info =
306 {
307 &ds_DigestMethodType_qname,
308 ds_DigestMethodType_serialize_wrapper,
309 ds_DigestMethodType_deserialize_pointer_wrapper,
310 ds_DigestMethodType_init_wrapper,
311 ds_DigestMethodType_destroy_wrapper,
312 ds_DigestMethodType_copy_wrapper,
313 ds_DigestMethodType_init_contents_wrapper,
314 ds_DigestMethodType_destroy_contents_wrapper,
315 ds_DigestMethodType_copy_contents_wrapper,
316 sizeof(ds_DigestMethodType),
317 NULL,
318 &ds_DigestMethodType_contents_info,
319 &ds_DigestMethodType_array_info
320 };
321
322 globus_result_t
323 ds_DigestMethodType_init_contents(
324 ds_DigestMethodType * instance)
325 0 {
326 0 globus_result_t result = GLOBUS_SUCCESS;
327 GlobusFuncName(ds_DigestMethodType_init_contents);
328 0 GlobusSoapMessageDebugEnter();
329
330 0 memset(instance, 0, sizeof(ds_DigestMethodType));
331
332 0 GlobusSoapMessageDebugExit();
333 0 return result;
334 }
335
336 globus_result_t
337 ds_DigestMethodType_init(
338 ds_DigestMethodType ** object)
339 0 {
340 ds_DigestMethodType * instance;
341 0 globus_result_t result = GLOBUS_SUCCESS;
342 GlobusFuncName(ds_DigestMethodType_init);
343 0 GlobusSoapMessageDebugEnter();
344
345 0 instance = globus_malloc(sizeof(ds_DigestMethodType));
346 0 if(!instance)
347 {
348 0 result = GlobusSoapMessageErrorOutOfMemory;
349 0 goto exit;
350 }
351
352 0 memset(instance, 0, sizeof(ds_DigestMethodType));
353
354 0 *object = instance;
355
356 0 exit:
357 0 GlobusSoapMessageDebugExit();
358 0 return result;
359 }
360
361 void
362 ds_DigestMethodType_destroy(
363 ds_DigestMethodType * instance)
364 0 {
365 GlobusFuncName(ds_DigestMethodType_destroy);
366 0 GlobusSoapMessageDebugEnter();
367
368 0 if(!instance)
369 {
370 0 goto exit;
371 }
372
373 0 ds_DigestMethodType_destroy_contents(instance);
374 0 globus_free(instance);
375
376 0 exit:
377
378 0 GlobusSoapMessageDebugExit();
379 0 }
380
381
382 void
383 ds_DigestMethodType_destroy_contents(
384 ds_DigestMethodType * instance)
385 0 {
386 GlobusFuncName(ds_DigestMethodType_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_anyURI_destroy_contents(
396 &instance->_Algorithm);
397
398 }
399
400 0 GlobusSoapMessageDebugExit();
401 0 }
402
403
404 globus_result_t
405 ds_DigestMethodType_copy(
406 ds_DigestMethodType ** dest_obj,
407 const ds_DigestMethodType * src_obj)
408 0 {
409 0 globus_result_t result = GLOBUS_SUCCESS;
410 ds_DigestMethodType * instance;
411 GlobusFuncName(ds_DigestMethodType_copy);
412
413 0 GlobusSoapMessageDebugEnter();
414
415 0 instance = calloc(1, sizeof(ds_DigestMethodType));
416 0 if (instance == NULL)
417 {
418 0 GlobusSoapMessageDebugExit();
419 0 return GlobusSoapMessageErrorOutOfMemory;
420 }
421
422 0 result = ds_DigestMethodType_copy_contents(instance, src_obj);
423 0 if(result != GLOBUS_SUCCESS)
424 {
425 0 globus_free(instance);
426 0 GlobusSoapMessageDebugExit();
427 0 return GlobusSoapMessageErrorOutOfMemory;
428 }
429
430 0 *dest_obj = instance;
431 0 GlobusSoapMessageDebugExit();
432 0 return result;
433 }
434
435 globus_result_t
436 ds_DigestMethodType_copy_contents(
437 ds_DigestMethodType * instance,
438 const ds_DigestMethodType * src_obj)
439 0 {
440 0 globus_result_t result = GLOBUS_SUCCESS;
441 GlobusFuncName(ds_DigestMethodType_copy_contents);
442
443 0 GlobusSoapMessageDebugEnter();
444
445 0 result = xsd_anyURI_copy_contents(
446 &instance->_Algorithm,
447 &src_obj->_Algorithm);
448 0 if(result != GLOBUS_SUCCESS)
449 {
450 0 result = GlobusSoapMessageErrorCopyFailed(
451 result, NULL, &xsd_anyURI_qname);
452 0 goto _Algorithm_destroy;
453 }
454
455 0 result = xsd_any_array_copy_contents(
456 &instance->any,
457 &src_obj->any);
458 0 if(result != GLOBUS_SUCCESS)
459 {
460 0 result = GlobusSoapMessageErrorCopyFailed(
461 result, NULL, &xsd_any_qname);
462 0 goto any_destroy_array;
463 }
464
465 0 goto exit;
466
467 0 fail_deserialize:
468
469 0 _Algorithm_destroy:
470
471 0 xsd_anyURI_destroy_contents(
472 &instance->_Algorithm);
473 0 xsd_any_array_destroy_contents(
474 &instance->any);
475
476 0 any_destroy_array:
477
478
479 0 exit:
480
481 0 GlobusSoapMessageDebugExit();
482 0 return result;
483 }
484
485
486
487 globus_result_t
488 ds_DigestMethodType_serialize_contents(
489 const xsd_QName * element_qname, /* ignored */
490 const ds_DigestMethodType * inst,
491 globus_soap_message_handle_t message_handle,
492 globus_xsd_element_options_t options)
493 0 {
494 0 globus_result_t result = GLOBUS_SUCCESS;
495 GlobusFuncName(ds_DigestMethodType_serialize_contents);
496 0 GlobusSoapMessageDebugEnter();
497
498 0 result = ds_DigestMethodType_serialize(
499 NULL,
500 inst,
501 message_handle,
502 options | GLOBUS_XSD_ELEMENT_CONTENTS_ONLY);
503 0 if(result != GLOBUS_SUCCESS)
504 {
505 0 result = GlobusSoapMessageErrorSerializeFailed(
506 result, NULL, element_qname);
507 0 goto exit;
508 }
509
510 0 exit:
511
512 0 GlobusSoapMessageDebugExit();
513 0 return result;
514 }
515
516
517
518 globus_result_t
519 ds_DigestMethodType_serialize(
520 const xsd_QName * element_qname,
521 const ds_DigestMethodType * instance,
522 globus_soap_message_handle_t message_handle,
523 globus_xsd_element_options_t options)
524 0 {
525 0 globus_result_t result = GLOBUS_SUCCESS;
526 xsd_QName subelement;
527 0 globus_list_t * any_attr_keys = NULL;
528 0 globus_list_t * any_attr_keys_iterator = NULL;
529 0 xsd_QName * type_attr = NULL;
530
531 0 xsd_QName * nil_attr = NULL;
532 0 char * prefix = NULL;
533 int prefix_created;
534 0 int define_prefix = 0;
535 0 int save_options = options;
536
537 GlobusFuncName(ds_DigestMethodType_serialize);
538 0 GlobusSoapMessageDebugEnter();
539
540
541 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
542 {
543 /* serialize ds_DigestMethodType element */
544 0 result = globus_soap_message_element_ns_set(
545 message_handle,
546 element_qname,
547 element_qname->Namespace,
548 &options);
549 0 if(result != GLOBUS_SUCCESS)
550 {
551 0 result = GlobusSoapMessageErrorSerializeFailed(
552 result, NULL, element_qname);
553 0 goto exit;
554 }
555
556 0 if(((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
557 !globus_soap_message_serialize_is_c14n_subset(message_handle)))
558 {
559 0 result = globus_soap_message_attribute_ns_set(
560 message_handle,
561 element_qname,
562 "http://www.w3.org/2001/XMLSchema-instance",
563 &options);
564 0 if(result != GLOBUS_SUCCESS)
565 {
566 0 result = GlobusSoapMessageErrorSerializeFailed(
567 result, NULL, element_qname);
568 0 goto exit;
569 }
570 }
571
572 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
573 !globus_soap_message_serialize_is_c14n_subset(message_handle))
574 {
575
576 0 result = globus_soap_message_attribute_ns_set(
577 message_handle,
578 element_qname,
579 ds_DigestMethodType_qname.Namespace,
580 &options);
581 0 if(result != GLOBUS_SUCCESS)
582 {
583 0 result = GlobusSoapMessageErrorSerializeFailed(
584 result, NULL, element_qname);
585 0 goto exit;
586 }
587 }
588
589 0 if(result != GLOBUS_SUCCESS)
590 {
591 xsd_QName error_qname;
592 0 error_qname.local = prefix;
593 0 error_qname.Namespace = "";
594 0 result = GlobusSoapMessageErrorSerializeFailed(result,
595 NULL,
596 &error_qname);
597 0 goto exit;
598 }
599
600
601 0 result = globus_soap_message_serialize_element(
602 message_handle,
603 element_qname,
604 options,
605 &ds_DigestMethodType_qname);
606 0 if(result != GLOBUS_SUCCESS)
607 {
608 0 result = GlobusSoapMessageErrorSerializeFailed(
609 result, NULL, element_qname);
610 0 goto exit;
611 }
612
613 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
614 !globus_soap_message_serialize_is_c14n_subset(message_handle))
615 {
616 0 xsd_QName_init(&type_attr);
617
618 0 type_attr->local = globus_libc_strdup("type");
619 0 type_attr->Namespace = globus_libc_strdup(XSI_NS);
620 }
621
622 0 if (instance == NULL || (options & GLOBUS_XSD_ELEMENT_NIL))
623 {
624 0 xsd_QName_init(&nil_attr);
625
626 0 nil_attr->local = globus_libc_strdup("nil");
627 0 nil_attr->Namespace = globus_libc_strdup(XSI_NS);
628 }
629
630
631 /* serialize namespaces */
632 0 result = globus_soap_message_element_ns_add(
633 message_handle,
634 element_qname,
635 element_qname->Namespace,
636 &options);
637 0 if(result != GLOBUS_SUCCESS)
638 {
639 0 result = GlobusSoapMessageErrorSerializeFailed(
640 result, NULL, element_qname);
641 0 goto exit;
642 }
643
644 0 if(((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
645 !globus_soap_message_serialize_is_c14n_subset(message_handle)))
646 {
647 0 result = globus_soap_message_attribute_ns_add(
648 message_handle,
649 element_qname,
650 "http://www.w3.org/2001/XMLSchema-instance",
651 &options);
652 0 if(result != GLOBUS_SUCCESS)
653 {
654 0 result = GlobusSoapMessageErrorSerializeFailed(
655 result, NULL, element_qname);
656 0 goto exit;
657 }
658 }
659 0 if ((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
660 !globus_soap_message_serialize_is_c14n_subset(message_handle))
661 {
662
663 0 result = globus_soap_message_attribute_ns_add(
664 message_handle,
665 element_qname,
666 ds_DigestMethodType_qname.Namespace,
667 &options);
668 0 if(result != GLOBUS_SUCCESS)
669 {
670 0 result = GlobusSoapMessageErrorSerializeFailed(
671 result, NULL, element_qname);
672 0 goto exit;
673 }
674 }
675
676 /* serialize attributes */
677
678 0 subelement.Namespace = "";
679 0 subelement.local = "Algorithm";
680
681 0 result = xsd_anyURI_serialize_attribute(
682 &subelement,
683 &instance->_Algorithm,
684 message_handle,
685 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
686 0 if(result != GLOBUS_SUCCESS)
687 {
688 0 result = GlobusSoapMessageErrorSerializeFailed(result,
689 NULL,
690 element_qname);
691 0 goto exit;
692 }
693
694 0 if(instance == NULL || (options & GLOBUS_XSD_ELEMENT_NIL))
695 {
696 0 xsd_boolean nil = 1;
697
698 0 result = globus_soap_message_serialize_boolean_attribute(
699 message_handle,
700 nil_attr,
701 &nil);
702 0 if(result != GLOBUS_SUCCESS)
703 {
704 0 result = GlobusSoapMessageErrorSerializeFailed(
705 result, NULL, element_qname);
706 0 goto exit;
707 }
708 }
709
710 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
711 !globus_soap_message_serialize_is_c14n_subset(message_handle))
712 {
713 0 result = globus_soap_message_serialize_QName_attribute(
714 message_handle,
715 type_attr,
716 &ds_DigestMethodType_qname);
717 0 if(result != GLOBUS_SUCCESS)
718 {
719 0 result = GlobusSoapMessageErrorSerializeFailed(
720 result, NULL, element_qname);
721 0 goto exit;
722 }
723 }
724
725
726 }
727
728 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
729 {
730 0 result = globus_soap_message_serialize_element_begin_close(
731 message_handle, element_qname);
732 0 if(result != GLOBUS_SUCCESS)
733 {
734 0 result = GlobusSoapMessageErrorSerializeFailed(
735 result, NULL, element_qname);
736 0 goto exit;
737 }
738 }
739 0 options &= ~GLOBUS_XSD_ELEMENT_CONTENTS_ONLY;
740
741
742 0 if (instance != NULL && !(options & GLOBUS_XSD_ELEMENT_NIL))
743 {
744
745 /* serialize contents of type */
746
747 0 subelement.local = "any";
748 0 subelement.Namespace = "http://www.w3.org/2001/XMLSchema";
749
750 0 result = xsd_any_array_serialize(
751 &subelement,
752 &instance->any,
753 message_handle,
754 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
755 0 if(result != GLOBUS_SUCCESS)
756 {
757 0 result = GlobusSoapMessageErrorSerializeFailed(
758 result, NULL, &xsd_any_qname);
759 0 goto exit;
760 }
761
762 }
763
764 0 options = save_options;
765
766 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
767 {
768 /* add end element */
769 0 result = globus_soap_message_serialize_element_end(
770 message_handle,
771 element_qname,
772 options,
773 &ds_DigestMethodType_qname);
774 0 if(result != GLOBUS_SUCCESS)
775 {
776 0 result = GlobusSoapMessageErrorSerializeFailed(
777 result, NULL, element_qname);
778 0 goto exit;
779 }
780
781 0 globus_soap_message_element_ns_remove(
782 message_handle,
783 element_qname->Namespace,
784 &options);
785
786 /* remove namespace/prefix mappings for these types */
787
788 0 if(((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
789 !globus_soap_message_serialize_is_c14n_subset(message_handle)))
790 {
791 0 globus_soap_message_attribute_ns_remove(
792 message_handle,
793 "http://www.w3.org/2001/XMLSchema-instance",
794 &options);
795 }
796 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
797 !globus_soap_message_serialize_is_c14n_subset(message_handle))
798 {
799 0 globus_soap_message_attribute_ns_remove(
800 message_handle,
801 ds_DigestMethodType_qname.Namespace,
802 &options);
803 }
804
805 0 globus_soap_message_attribute_ns_remove(
806 message_handle,
807 NULL,
808 &options);
809
810 }
811
812 0 exit:
813 0 if (type_attr)
814 {
815 0 xsd_QName_destroy(type_attr);
816 }
817
818 0 if (nil_attr)
819 {
820 0 xsd_QName_destroy(nil_attr);
821 }
822
823
824 0 if(any_attr_keys)
825 {
826 0 globus_list_free(any_attr_keys);
827 }
828
829 0 GlobusSoapMessageDebugExit();
830 0 return result;
831 }
832
833
834
835 globus_result_t
836 ds_DigestMethodType_deserialize_contents(
837 const xsd_QName * element_qname, /* ignored */
838 ds_DigestMethodType * inst,
839 globus_soap_message_handle_t message_handle,
840 globus_xsd_element_options_t options)
841 0 {
842 0 globus_result_t result = GLOBUS_SUCCESS;
843 GlobusFuncName(ds_DigestMethodType_deserialize_contents);
844 0 GlobusSoapMessageDebugEnter();
845
846 0 result = ds_DigestMethodType_deserialize(
847 NULL,
848 inst,
849 message_handle,
850 options | GLOBUS_XSD_ELEMENT_CONTENTS_ONLY);
851 0 if(result != GLOBUS_SUCCESS)
852 {
853 0 result = GlobusSoapMessageErrorDeserializeFailed(
854 result, element_qname);
855 0 goto exit;
856 }
857
858 0 exit:
859
860 0 GlobusSoapMessageDebugExit();
861 0 return result;
862 }
863
864
865
866 globus_result_t
867 ds_DigestMethodType_deserialize(
868 const xsd_QName * element_qname,
869 ds_DigestMethodType * instance,
870 globus_soap_message_handle_t message_handle,
871 globus_xsd_element_options_t options)
872 0 {
873 0 globus_result_t result = GLOBUS_SUCCESS;
874 xsd_QName subelement;
875 GlobusFuncName(ds_DigestMethodType_deserialize);
876 0 GlobusSoapMessageDebugEnter();
877
878
879 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
880 {
881 0 result = globus_soap_message_deserialize_element(
882 message_handle, element_qname);
883 0 if(result != GLOBUS_SUCCESS)
884 {
885 0 result = GlobusSoapMessageErrorDeserializeFailed(
886 result, element_qname);
887 0 goto exit;
888 }
889
890 0 subelement.Namespace = "";
891 0 subelement.local = "Algorithm";
892
893 0 result = xsd_anyURI_deserialize_attribute(
894 &subelement,
895 &instance->_Algorithm,
896 message_handle,
897 0);
898 0 if(result != GLOBUS_SUCCESS)
899 {
900 0 result = GlobusSoapMessageErrorDeserializeFailed(result, &subelement);
901 0 goto _Algorithm_destroy;
902 }
903
904
905 0 result = globus_soap_message_deserialize_element_begin_close(
906 message_handle);
907 0 if(result != GLOBUS_SUCCESS)
908 {
909 0 result = GlobusSoapMessageErrorDeserializeFailed(
910 result, element_qname);
911 0 goto fail_deserialize;
912 }
913 }
914
915 0 subelement.local = "any";
916
917 0 subelement.Namespace = "##other{http://www.w3.org/2000/09/xmldsig#}";
918
919 0 result = xsd_any_array_deserialize(
920 &subelement,
921 &instance->any,
922 message_handle,
923 0);
924 0 if(result != GLOBUS_SUCCESS)
925 {
926 0 result = GlobusSoapMessageErrorDeserializeFailed(
927 result,
928 (&subelement));
929 0 goto any_destroy_array;
930 }
931
932 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
933 {
934 0 result = globus_soap_message_deserialize_element_end(
935 message_handle,
936 element_qname);
937 0 if(result != GLOBUS_SUCCESS)
938 {
939 0 result = GlobusSoapMessageErrorDeserializeFailed(
940 result, element_qname);
941 0 goto fail_deserialize;
942 }
943 }
944
945 0 goto exit;
946
947 0 fail_deserialize:
948
949 0 _Algorithm_destroy:
950 /* output_fail_destroy_attribute() */
951
952 0 xsd_anyURI_destroy_contents(
953 &instance->_Algorithm);
954 0 xsd_any_array_destroy_contents(
955 &instance->any);
956
957 0 any_destroy_array:
958
959
960 0 exit:
961
962 0 GlobusSoapMessageDebugExit();
963 0 return result;
964 }
965
966
967
968 globus_result_t
969 ds_DigestMethodType_deserialize_pointer(
970 const xsd_QName * element_qname,
971 ds_DigestMethodType ** ip,
972 globus_soap_message_handle_t message_handle,
973 globus_xsd_element_options_t options)
974 0 {
975 0 ds_DigestMethodType * instance = NULL;
976 0 globus_result_t result = GLOBUS_SUCCESS;
977 xsd_QName subelement;
978 0 int found_attrs = 0;
979 0 int empty_element = 0;
980 GlobusFuncName(ds_DigestMethodType_deserialize_pointer);
981 0 GlobusSoapMessageDebugEnter();
982
983 0 *ip = NULL;
984
985 0 result = globus_soap_message_deserialize_element(
986 message_handle, element_qname);
987 0 if(result != GLOBUS_SUCCESS &&
988 (GlobusSoapMessageStatusElementNotFoundCheck(result) ||
989 GlobusSoapMessageStatusFailedElementCheck(result) ||
990 GlobusSoapMessageStatusFailedWithTextCheck(result)))
991 {
992 0 result = GLOBUS_SUCCESS;
993 0 goto exit;
994 }
995
996 0 if(result != GLOBUS_SUCCESS)
997 {
998 0 result = GlobusSoapMessageErrorDeserializeFailed(
999 result, element_qname);
1000 0 goto exit;
1001 }
1002
1003 0 if(globus_soap_message_deserialize_element_is_empty(
1004 message_handle))
1005 {
1006 0 empty_element = 1;
1007 }
1008
1009 0 result = ds_DigestMethodType_init(&instance);
1010 0 if(result != GLOBUS_SUCCESS)
1011 {
1012 0 result = GlobusSoapMessageErrorDeserializeFailed(
1013 result, element_qname);
1014 0 goto exit;
1015 }
1016
1017
1018 0 subelement.Namespace = "";
1019 0 subelement.local = "Algorithm";
1020
1021 0 result = xsd_anyURI_deserialize_attribute(
1022 &subelement,
1023 &instance->_Algorithm,
1024 message_handle,
1025 0);
1026 0 if(result != GLOBUS_SUCCESS)
1027 {
1028 0 result = GlobusSoapMessageErrorDeserializeFailed(result, &subelement);
1029 0 goto _Algorithm_destroy;
1030 }
1031
1032 0 found_attrs++;
1033
1034 0 if(found_attrs == 0 &&
1035 globus_soap_message_deserialize_element_is_nil(message_handle))
1036 {
1037 0 ds_DigestMethodType_destroy(instance);
1038
1039 0 result = globus_soap_message_deserialize_element_end(
1040 message_handle,
1041 element_qname);
1042 0 if(result != GLOBUS_SUCCESS)
1043 {
1044 0 result = GlobusSoapMessageErrorDeserializeFailed(
1045 result, element_qname);
1046 0 goto exit;
1047 }
1048
1049 0 *ip = NULL;
1050 0 globus_object_free(globus_error_get(result));
1051 0 result = GLOBUS_SUCCESS;
1052 0 goto exit;
1053 }
1054
1055 0 if(empty_element)
1056 {
1057 0 result = globus_soap_message_deserialize_element_end(
1058 message_handle,
1059 element_qname);
1060 0 if(result != GLOBUS_SUCCESS)
1061 {
1062 0 result = GlobusSoapMessageErrorDeserializeFailed(
1063 result, element_qname);
1064 0 goto fail_deserialize;
1065 }
1066
1067 0 *ip = instance;
1068 0 goto exit;
1069 }
1070
1071 0 result = globus_soap_message_deserialize_element_begin_close(
1072 message_handle);
1073 0 if(result != GLOBUS_SUCCESS)
1074 {
1075 0 result = GlobusSoapMessageErrorDeserializeFailed(
1076 result, element_qname);
1077 0 goto exit;
1078 }
1079
1080 0 result = ds_DigestMethodType_deserialize(
1081 element_qname,
1082 instance,
1083 message_handle,
1084 options | GLOBUS_XSD_ELEMENT_CONTENTS_ONLY);
1085 0 if(result != GLOBUS_SUCCESS)
1086 {
1087 0 result = GlobusSoapMessageErrorDeserializeFailed(
1088 result, element_qname);
1089 0 goto exit;
1090 }
1091
1092 0 result = globus_soap_message_deserialize_element_end(
1093 message_handle,
1094 element_qname);
1095 0 if(result != GLOBUS_SUCCESS)
1096 {
1097 0 result = GlobusSoapMessageErrorDeserializeFailed(
1098 result, element_qname);
1099 0 goto fail_deserialize;
1100 }
1101
1102 0 *ip = instance;
1103
1104 0 goto exit;
1105
1106 0 fail_deserialize:
1107
1108 0 _Algorithm_destroy:
1109 /* output_fail_destroy_attribute() */
1110
1111 0 xsd_anyURI_destroy_contents(
1112 &instance->_Algorithm);
1113 0 xsd_any_array_destroy_contents(
1114 &instance->any);
1115
1116 0 any_destroy_array:
1117
1118 0 exit:
1119
1120 0 GlobusSoapMessageDebugExit();
1121 0 return result;
1122 }
1123
1124
1125 globus_result_t
1126 ds_DigestMethodType_array_init_contents(
1127 ds_DigestMethodType_array * array)
1128 0 {
1129 0 return globus_xsd_generic_array_init_contents(
1130 (globus_xsd_generic_array_t *) array,
1131 &ds_DigestMethodType_info);
1132 }
1133 /* ds_DigestMethodType_array_init_contents() */
1134
1135 globus_result_t
1136 ds_DigestMethodType_array_init(
1137 ds_DigestMethodType_array ** arr)
1138 0 {
1139 0 return globus_xsd_generic_array_init(
1140 (globus_xsd_generic_array_t **) arr,
1141 &ds_DigestMethodType_info);
1142 }
1143 /* ds_DigestMethodType_array_init() */
1144
1145 void
1146 ds_DigestMethodType_array_destroy_contents(
1147 ds_DigestMethodType_array * array)
1148 0 {
1149 0 globus_xsd_generic_array_destroy_contents(
1150 (globus_xsd_generic_array_t *) array);
1151 0 }
1152 /* ds_DigestMethodType_array_destroy_contents() */
1153
1154 void
1155 ds_DigestMethodType_array_destroy(
1156 ds_DigestMethodType_array * array)
1157 0 {
1158 0 globus_xsd_generic_array_destroy(
1159 (globus_xsd_generic_array_t *) array);
1160 0 }
1161 /* ds_DigestMethodType_array_destroy() */
1162
1163 globus_result_t
1164 ds_DigestMethodType_array_copy(
1165 ds_DigestMethodType_array ** dest_arr,
1166 const ds_DigestMethodType_array * src_arr)
1167 0 {
1168 0 return globus_xsd_generic_array_copy(
1169 (globus_xsd_generic_array_t **) dest_arr,
1170 (globus_xsd_generic_array_t *) src_arr);
1171 }
1172 /* ds_DigestMethodType_array_copy() */
1173
1174 globus_result_t
1175 ds_DigestMethodType_array_copy_contents(
1176 ds_DigestMethodType_array * dest_arr,
1177 const ds_DigestMethodType_array * src_arr)
1178 0 {
1179 0 return globus_xsd_generic_array_copy_contents(
1180 (globus_xsd_generic_array_t *) dest_arr,
1181 (globus_xsd_generic_array_t *) src_arr);
1182 }
1183 /* ds_DigestMethodType_array_copy_contents() */
1184
1185 ds_DigestMethodType *
1186 ds_DigestMethodType_array_push(
1187 ds_DigestMethodType_array * array)
1188 0 {
1189 /* Some contents initializers don't initialize subelments but to set their
1190 * values to be NULL
1191 */
1192 0 if (array->type_info == NULL)
1193 {
1194 0 array->type_info = &ds_DigestMethodType_info;
1195 }
1196
1197 0 return globus_xsd_generic_array_push(
1198 (globus_xsd_generic_array_t *) array);
1199 }
1200 /* ds_DigestMethodType_array_push() */
1201
1202 globus_result_t
1203 ds_DigestMethodType_array_serialize(
1204 const xsd_QName * element_qname,
1205 const ds_DigestMethodType_array * array,
1206 globus_soap_message_handle_t message,
1207 globus_xsd_element_options_t options)
1208 0 {
1209 0 return globus_xsd_generic_array_serialize(
1210 element_qname,
1211 (const globus_xsd_generic_array_t *) array,
1212 message,
1213 options);
1214 }
1215 /* ds_DigestMethodType_array_serialize() */
1216
1217 globus_result_t
1218 ds_DigestMethodType_array_deserialize(
1219 const xsd_QName * element_qname,
1220 ds_DigestMethodType_array * array,
1221 globus_soap_message_handle_t message,
1222 globus_xsd_element_options_t options)
1223 0 {
1224 /* Some initializers set the array's contents to NULL */
1225 0 if (array->type_info == NULL)
1226 {
1227 0 array->type_info = &ds_DigestMethodType_info;
1228 }
1229 0 return globus_xsd_generic_array_deserialize(
1230 element_qname,
1231 (globus_xsd_generic_array_t *) array,
1232 message,
1233 options);