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