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