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