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