1 /*
2 * Copyright 1999-2006 University of Chicago
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17
18 /*
19 * This file is automatically generated by the Globus WSDLtoC converter
20 */
21
22 #include "xsd_QName.h"
23 #include "globus_soap_message.h"
24 #include "globus_xsd_type_info.h"
25 #include "ds_ObjectType.h"
26 #include "globus_xsd_generic_array.h"
27
28 #ifndef GLOBUS_DONT_DOCUMENT_INTERNAL
29 xsd_QName ds_ObjectType_qname =
30 {
31 DS_OBJECTTYPE_NS,
32 DS_OBJECTTYPE_LOCAL
33 };
34 #endif /* GLOBUS_DONT_DOCUMENT_INTERNAL */
35
36 static
37 globus_result_t
38 ds_ObjectType_serialize_wrapper(
39 const xsd_QName * element_qname,
40 const void * instance,
41 globus_soap_message_handle_t message_handle,
42 globus_xsd_element_options_t options)
43 0 {
44 0 return ds_ObjectType_serialize(
45 element_qname,
46 (const ds_ObjectType *) instance,
47 message_handle, options);
48 }
49
50 static
51 globus_result_t
52 ds_ObjectType_deserialize_pointer_wrapper(
53 const xsd_QName * element_qname,
54 void ** ip,
55 globus_soap_message_handle_t message_handle,
56 globus_xsd_element_options_t options)
57 0 {
58 0 return ds_ObjectType_deserialize_pointer(
59 element_qname,
60 (ds_ObjectType **) ip,
61 message_handle, options);
62 }
63
64 static
65 globus_result_t
66 ds_ObjectType_init_wrapper(void **object)
67 0 {
68 0 return ds_ObjectType_init(
69 (ds_ObjectType **) object);
70 }
71
72 static
73 void
74 ds_ObjectType_destroy_wrapper(
75 void * object)
76 0 {
77 0 ds_ObjectType_destroy(
78 (ds_ObjectType *) object);
79 0 }
80
81 static
82 globus_result_t
83 ds_ObjectType_copy_wrapper(
84 void ** dest_obj,
85 const void * src_obj)
86 0 {
87 0 return ds_ObjectType_copy(
88 (ds_ObjectType **) dest_obj,
89 (ds_ObjectType *) src_obj);
90 }
91
92 static
93 globus_result_t
94 ds_ObjectType_init_contents_wrapper(void *object)
95 0 {
96 0 return ds_ObjectType_init_contents(
97 (ds_ObjectType *) object);
98 }
99
100 static
101 void
102 ds_ObjectType_destroy_contents_wrapper(
103 void * object)
104 0 {
105 0 ds_ObjectType_destroy_contents(
106 (ds_ObjectType *) object);
107 0 }
108
109 static
110 globus_result_t
111 ds_ObjectType_copy_contents_wrapper(
112 void * dest_obj,
113 const void * src_obj)
114 0 {
115 0 return ds_ObjectType_copy_contents(
116 (ds_ObjectType *) dest_obj,
117 (const ds_ObjectType *) src_obj);
118 }
119
120 static
121 globus_result_t
122 ds_ObjectType_serialize_contents_wrapper(
123 const xsd_QName * element_qname,
124 const void * instance,
125 globus_soap_message_handle_t message_handle,
126 globus_xsd_element_options_t options)
127 0 {
128 0 return ds_ObjectType_serialize_contents(
129 element_qname,
130 (ds_ObjectType *) instance,
131 message_handle, options);
132 }
133
134 static
135 globus_result_t
136 ds_ObjectType_deserialize_contents_wrapper(
137 const xsd_QName * element_qname,
138 void ** instance,
139 globus_soap_message_handle_t message_handle,
140 globus_xsd_element_options_t options)
141 0 {
142 globus_result_t result;
143 GlobusFuncName(ds_ObjectType_deserialize_contents_wrapper);
144 0 GlobusSoapMessageDebugEnter();
145
146 0 if(!*instance)
147 {
148 0 result = ds_ObjectType_init(
149 (ds_ObjectType **)instance);
150 0 if(result != GLOBUS_SUCCESS)
151 {
152 0 goto error;
153 }
154 }
155
156 0 result = ds_ObjectType_deserialize_contents(
157 element_qname,
158 *(ds_ObjectType **)instance,
159 message_handle, options);
160 0 error:
161 0 GlobusSoapMessageDebugExit();
162 0 return result;
163 }
164
165 static
166 globus_result_t
167 ds_ObjectType_array_serialize_wrapper(
168 const xsd_QName * element,
169 const void * instance,
170 globus_soap_message_handle_t message,
171 globus_xsd_element_options_t options)
172 0 {
173 0 return ds_ObjectType_array_serialize(
174 element,
175 (ds_ObjectType_array *) instance,
176 message, options);
177 }
178
179 static
180 globus_result_t
181 ds_ObjectType_array_deserialize_wrapper(
182 const xsd_QName * element_qname,
183 void ** inst,
184 globus_soap_message_handle_t message,
185 globus_xsd_element_options_t options)
186 0 {
187 0 if(!*inst)
188 {
189 globus_result_t result;
190
191 0 result = ds_ObjectType_array_init(
192 (ds_ObjectType_array **)inst);
193 0 if(result != GLOBUS_SUCCESS)
194 {
195 0 return result;
196 }
197 }
198
199 0 return ds_ObjectType_array_deserialize(
200 element_qname,
201 *(ds_ObjectType_array **) inst,
202 message, options);
203 }
204
205 static
206 globus_result_t
207 ds_ObjectType_array_init_wrapper(
208 void ** arr)
209 0 {
210 0 return ds_ObjectType_array_init(
211 (ds_ObjectType_array **) arr);
212 }
213
214 static
215 void
216 ds_ObjectType_array_destroy_wrapper(
217 void * arr)
218 0 {
219 0 ds_ObjectType_array_destroy(
220 (ds_ObjectType_array *) arr);
221 0 }
222
223 static
224 globus_result_t
225 ds_ObjectType_array_copy_wrapper(
226 void ** dest_arr,
227 const void * src_arr)
228 0 {
229 0 return ds_ObjectType_array_copy(
230 (ds_ObjectType_array **) dest_arr,
231 (const ds_ObjectType_array *) src_arr);
232 }
233
234 static
235 globus_result_t
236 ds_ObjectType_array_init_contents_wrapper(
237 void * arr)
238 0 {
239 0 return ds_ObjectType_array_init_contents(
240 (ds_ObjectType_array *) arr);
241 }
242
243 static
244 void
245 ds_ObjectType_array_destroy_contents_wrapper(
246 void * arr)
247 0 {
248 0 ds_ObjectType_array_destroy_contents(
249 (ds_ObjectType_array *) arr);
250 0 }
251
252 static
253 globus_result_t
254 ds_ObjectType_array_copy_contents_wrapper(
255 void * dest_arr,
256 const void * src_arr)
257 0 {
258 0 return ds_ObjectType_array_copy_contents(
259 (ds_ObjectType_array *) dest_arr,
260 (const ds_ObjectType_array *) src_arr);
261 }
262
263 static
264 void *
265 ds_ObjectType_array_push_wrapper(
266 void * array)
267 0 {
268 0 return (void *) ds_ObjectType_array_push((ds_ObjectType_array *) array);
269 }
270
271 struct globus_xsd_type_info_s ds_ObjectType_contents_info =
272 {
273 &ds_ObjectType_qname,
274 ds_ObjectType_serialize_contents_wrapper,
275 ds_ObjectType_deserialize_contents_wrapper,
276 ds_ObjectType_init_wrapper,
277 ds_ObjectType_destroy_wrapper,
278 ds_ObjectType_copy_wrapper,
279 ds_ObjectType_init_contents_wrapper,
280 ds_ObjectType_destroy_contents_wrapper,
281 ds_ObjectType_copy_contents_wrapper,
282 sizeof(ds_ObjectType),
283 NULL,
284 NULL,
285 NULL
286 };
287
288 struct globus_xsd_type_info_s ds_ObjectType_array_info =
289 {
290 &ds_ObjectType_qname,
291 ds_ObjectType_array_serialize_wrapper,
292 ds_ObjectType_array_deserialize_wrapper,
293 ds_ObjectType_array_init_wrapper,
294 ds_ObjectType_array_destroy_wrapper,
295 ds_ObjectType_array_copy_wrapper,
296 ds_ObjectType_array_init_contents_wrapper,
297 ds_ObjectType_array_destroy_contents_wrapper,
298 ds_ObjectType_array_copy_contents_wrapper,
299 sizeof(ds_ObjectType),
300 ds_ObjectType_array_push_wrapper,
301 NULL,
302 NULL
303 };
304
305 struct globus_xsd_type_info_s ds_ObjectType_info =
306 {
307 &ds_ObjectType_qname,
308 ds_ObjectType_serialize_wrapper,
309 ds_ObjectType_deserialize_pointer_wrapper,
310 ds_ObjectType_init_wrapper,
311 ds_ObjectType_destroy_wrapper,
312 ds_ObjectType_copy_wrapper,
313 ds_ObjectType_init_contents_wrapper,
314 ds_ObjectType_destroy_contents_wrapper,
315 ds_ObjectType_copy_contents_wrapper,
316 sizeof(ds_ObjectType),
317 NULL,
318 &ds_ObjectType_contents_info,
319 &ds_ObjectType_array_info
320 };
321
322 globus_result_t
323 ds_ObjectType_init_contents(
324 ds_ObjectType * instance)
325 0 {
326 0 globus_result_t result = GLOBUS_SUCCESS;
327 GlobusFuncName(ds_ObjectType_init_contents);
328 0 GlobusSoapMessageDebugEnter();
329
330 0 memset(instance, 0, sizeof(ds_ObjectType));
331
332 0 GlobusSoapMessageDebugExit();
333 0 return result;
334 }
335
336 globus_result_t
337 ds_ObjectType_init(
338 ds_ObjectType ** object)
339 0 {
340 ds_ObjectType * instance;
341 0 globus_result_t result = GLOBUS_SUCCESS;
342 GlobusFuncName(ds_ObjectType_init);
343 0 GlobusSoapMessageDebugEnter();
344
345 0 instance = globus_malloc(sizeof(ds_ObjectType));
346 0 if(!instance)
347 {
348 0 result = GlobusSoapMessageErrorOutOfMemory;
349 0 goto exit;
350 }
351
352 0 memset(instance, 0, sizeof(ds_ObjectType));
353
354 0 *object = instance;
355
356 0 exit:
357 0 GlobusSoapMessageDebugExit();
358 0 return result;
359 }
360
361 void
362 ds_ObjectType_destroy(
363 ds_ObjectType * instance)
364 0 {
365 GlobusFuncName(ds_ObjectType_destroy);
366 0 GlobusSoapMessageDebugEnter();
367
368 0 if(!instance)
369 {
370 0 goto exit;
371 }
372
373 0 ds_ObjectType_destroy_contents(instance);
374 0 globus_free(instance);
375
376 0 exit:
377
378 0 GlobusSoapMessageDebugExit();
379 0 }
380
381
382 void
383 ds_ObjectType_destroy_contents(
384 ds_ObjectType * instance)
385 0 {
386 GlobusFuncName(ds_ObjectType_destroy_contents);
387 0 GlobusSoapMessageDebugEnter();
388
389 0 if(instance)
390 {
391
392
393 0 xsd_any_destroy_contents(
394 &instance->any);
395
396 0 if(instance->_Encoding)
397 {
398 0 xsd_anyURI_destroy(
399 instance->_Encoding);
400 0 instance->_Encoding = NULL;
401 }
402
403 0 if(instance->_Id)
404 {
405 0 xsd_ID_destroy(
406 instance->_Id);
407 0 instance->_Id = NULL;
408 }
409
410 0 if(instance->_MimeType)
411 {
412 0 xsd_string_destroy(
413 instance->_MimeType);
414 0 instance->_MimeType = NULL;
415 }
416
417 }
418
419 0 GlobusSoapMessageDebugExit();
420 0 }
421
422
423 globus_result_t
424 ds_ObjectType_copy(
425 ds_ObjectType ** dest_obj,
426 const ds_ObjectType * src_obj)
427 0 {
428 0 globus_result_t result = GLOBUS_SUCCESS;
429 ds_ObjectType * instance;
430 GlobusFuncName(ds_ObjectType_copy);
431
432 0 GlobusSoapMessageDebugEnter();
433
434 0 instance = calloc(1, sizeof(ds_ObjectType));
435 0 if (instance == NULL)
436 {
437 0 GlobusSoapMessageDebugExit();
438 0 return GlobusSoapMessageErrorOutOfMemory;
439 }
440
441 0 result = ds_ObjectType_copy_contents(instance, src_obj);
442 0 if(result != GLOBUS_SUCCESS)
443 {
444 0 globus_free(instance);
445 0 GlobusSoapMessageDebugExit();
446 0 return GlobusSoapMessageErrorOutOfMemory;
447 }
448
449 0 *dest_obj = instance;
450 0 GlobusSoapMessageDebugExit();
451 0 return result;
452 }
453
454 globus_result_t
455 ds_ObjectType_copy_contents(
456 ds_ObjectType * instance,
457 const ds_ObjectType * src_obj)
458 0 {
459 0 globus_result_t result = GLOBUS_SUCCESS;
460 GlobusFuncName(ds_ObjectType_copy_contents);
461
462 0 GlobusSoapMessageDebugEnter();
463
464 0 if(src_obj->_Encoding)
465 {
466 0 result = xsd_anyURI_copy(
467 &instance->_Encoding,
468 src_obj->_Encoding);
469 0 if(result != GLOBUS_SUCCESS)
470 {
471 0 result = GlobusSoapMessageErrorCopyFailed(
472 result, NULL, &xsd_anyURI_qname);
473 0 goto _Encoding_destroy;
474 }
475 }
476 else
477 {
478 0 instance->_Encoding = NULL;
479 }
480
481 0 if(src_obj->_Id)
482 {
483 0 result = xsd_ID_copy(
484 &instance->_Id,
485 src_obj->_Id);
486 0 if(result != GLOBUS_SUCCESS)
487 {
488 0 result = GlobusSoapMessageErrorCopyFailed(
489 result, NULL, &xsd_ID_qname);
490 0 goto _Id_destroy;
491 }
492 }
493 else
494 {
495 0 instance->_Id = NULL;
496 }
497
498 0 if(src_obj->_MimeType)
499 {
500 0 result = xsd_string_copy(
501 &instance->_MimeType,
502 src_obj->_MimeType);
503 0 if(result != GLOBUS_SUCCESS)
504 {
505 0 result = GlobusSoapMessageErrorCopyFailed(
506 result, NULL, &xsd_string_qname);
507 0 goto _MimeType_destroy;
508 }
509 }
510 else
511 {
512 0 instance->_MimeType = NULL;
513 }
514
515 0 result = xsd_any_copy_contents(
516 &instance->any,
517 &src_obj->any);
518 0 if(result != GLOBUS_SUCCESS)
519 {
520 0 result = GlobusSoapMessageErrorCopyFailed(
521 result, NULL, &xsd_any_qname);
522 0 goto any_destroy;
523 }
524
525 0 goto exit;
526
527 0 fail_deserialize:
528
529 0 _MimeType_destroy:
530
531 0 if(instance->_MimeType)
532 {
533 0 xsd_string_destroy(
534 instance->_MimeType);
535 0 instance->_MimeType = NULL;
536 }
537
538 0 _Id_destroy:
539
540 0 if(instance->_Id)
541 {
542 0 xsd_ID_destroy(
543 instance->_Id);
544 0 instance->_Id = NULL;
545 }
546
547 0 _Encoding_destroy:
548
549 0 if(instance->_Encoding)
550 {
551 0 xsd_anyURI_destroy(
552 instance->_Encoding);
553 0 instance->_Encoding = NULL;
554 }
555 0 xsd_any_destroy_contents(
556 &instance->any);
557
558 0 any_destroy:
559
560
561 0 exit:
562
563 0 GlobusSoapMessageDebugExit();
564 0 return result;
565 }
566
567
568
569 globus_result_t
570 ds_ObjectType_serialize_contents(
571 const xsd_QName * element_qname, /* ignored */
572 const ds_ObjectType * inst,
573 globus_soap_message_handle_t message_handle,
574 globus_xsd_element_options_t options)
575 0 {
576 0 globus_result_t result = GLOBUS_SUCCESS;
577 GlobusFuncName(ds_ObjectType_serialize_contents);
578 0 GlobusSoapMessageDebugEnter();
579
580 0 result = ds_ObjectType_serialize(
581 NULL,
582 inst,
583 message_handle,
584 options | GLOBUS_XSD_ELEMENT_CONTENTS_ONLY);
585 0 if(result != GLOBUS_SUCCESS)
586 {
587 0 result = GlobusSoapMessageErrorSerializeFailed(
588 result, NULL, element_qname);
589 0 goto exit;
590 }
591
592 0 exit:
593
594 0 GlobusSoapMessageDebugExit();
595 0 return result;
596 }
597
598
599
600 globus_result_t
601 ds_ObjectType_serialize(
602 const xsd_QName * element_qname,
603 const ds_ObjectType * instance,
604 globus_soap_message_handle_t message_handle,
605 globus_xsd_element_options_t options)
606 0 {
607 0 globus_result_t result = GLOBUS_SUCCESS;
608 xsd_QName subelement;
609 0 globus_list_t * any_attr_keys = NULL;
610 0 globus_list_t * any_attr_keys_iterator = NULL;
611 0 xsd_QName * type_attr = NULL;
612
613 0 xsd_QName * nil_attr = NULL;
614 0 char * prefix = NULL;
615 int prefix_created;
616 0 int define_prefix = 0;
617 0 int save_options = options;
618
619 GlobusFuncName(ds_ObjectType_serialize);
620 0 GlobusSoapMessageDebugEnter();
621
622
623 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
624 {
625 /* serialize ds_ObjectType element */
626 0 result = globus_soap_message_element_ns_set(
627 message_handle,
628 element_qname,
629 element_qname->Namespace,
630 &options);
631 0 if(result != GLOBUS_SUCCESS)
632 {
633 0 result = GlobusSoapMessageErrorSerializeFailed(
634 result, NULL, element_qname);
635 0 goto exit;
636 }
637
638 0 if(((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
639 !globus_soap_message_serialize_is_c14n_subset(message_handle)))
640 {
641 0 result = globus_soap_message_attribute_ns_set(
642 message_handle,
643 element_qname,
644 "http://www.w3.org/2001/XMLSchema-instance",
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 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
655 !globus_soap_message_serialize_is_c14n_subset(message_handle))
656 {
657
658 0 result = globus_soap_message_attribute_ns_set(
659 message_handle,
660 element_qname,
661 ds_ObjectType_qname.Namespace,
662 &options);
663 0 if(result != GLOBUS_SUCCESS)
664 {
665 0 result = GlobusSoapMessageErrorSerializeFailed(
666 result, NULL, element_qname);
667 0 goto exit;
668 }
669 }
670
671 0 if(instance->_Encoding)
672 {
673
674 0 if(result != GLOBUS_SUCCESS)
675 {
676 xsd_QName error_qname;
677 0 error_qname.local = prefix;
678 0 error_qname.Namespace = "";
679 0 result = GlobusSoapMessageErrorSerializeFailed(result,
680 NULL,
681 &error_qname);
682 0 goto exit;
683 }
684
685
686 }
687
688 0 if(instance->_Id)
689 {
690
691 0 if(result != GLOBUS_SUCCESS)
692 {
693 xsd_QName error_qname;
694 0 error_qname.local = prefix;
695 0 error_qname.Namespace = "";
696 0 result = GlobusSoapMessageErrorSerializeFailed(result,
697 NULL,
698 &error_qname);
699 0 goto exit;
700 }
701
702
703 }
704
705 0 if(instance->_MimeType)
706 {
707
708 0 if(result != GLOBUS_SUCCESS)
709 {
710 xsd_QName error_qname;
711 0 error_qname.local = prefix;
712 0 error_qname.Namespace = "";
713 0 result = GlobusSoapMessageErrorSerializeFailed(result,
714 NULL,
715 &error_qname);
716 0 goto exit;
717 }
718
719
720 }
721
722 0 result = globus_soap_message_serialize_element(
723 message_handle,
724 element_qname,
725 options,
726 &ds_ObjectType_qname);
727 0 if(result != GLOBUS_SUCCESS)
728 {
729 0 result = GlobusSoapMessageErrorSerializeFailed(
730 result, NULL, element_qname);
731 0 goto exit;
732 }
733
734 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
735 !globus_soap_message_serialize_is_c14n_subset(message_handle))
736 {
737 0 xsd_QName_init(&type_attr);
738
739 0 type_attr->local = globus_libc_strdup("type");
740 0 type_attr->Namespace = globus_libc_strdup(XSI_NS);
741 }
742
743 0 if (instance == NULL || (options & GLOBUS_XSD_ELEMENT_NIL))
744 {
745 0 xsd_QName_init(&nil_attr);
746
747 0 nil_attr->local = globus_libc_strdup("nil");
748 0 nil_attr->Namespace = globus_libc_strdup(XSI_NS);
749 }
750
751
752 /* serialize namespaces */
753 0 result = globus_soap_message_element_ns_add(
754 message_handle,
755 element_qname,
756 element_qname->Namespace,
757 &options);
758 0 if(result != GLOBUS_SUCCESS)
759 {
760 0 result = GlobusSoapMessageErrorSerializeFailed(
761 result, NULL, element_qname);
762 0 goto exit;
763 }
764
765 0 if(((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
766 !globus_soap_message_serialize_is_c14n_subset(message_handle)))
767 {
768 0 result = globus_soap_message_attribute_ns_add(
769 message_handle,
770 element_qname,
771 "http://www.w3.org/2001/XMLSchema-instance",
772 &options);
773 0 if(result != GLOBUS_SUCCESS)
774 {
775 0 result = GlobusSoapMessageErrorSerializeFailed(
776 result, NULL, element_qname);
777 0 goto exit;
778 }
779 }
780 0 if ((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
781 !globus_soap_message_serialize_is_c14n_subset(message_handle))
782 {
783
784 0 result = globus_soap_message_attribute_ns_add(
785 message_handle,
786 element_qname,
787 ds_ObjectType_qname.Namespace,
788 &options);
789 0 if(result != GLOBUS_SUCCESS)
790 {
791 0 result = GlobusSoapMessageErrorSerializeFailed(
792 result, NULL, element_qname);
793 0 goto exit;
794 }
795 }
796
797 0 if(instance->_Encoding)
798 {
799
800 }
801
802 0 if(instance->_Id)
803 {
804
805 }
806
807 0 if(instance->_MimeType)
808 {
809
810 }
811
812 /* serialize attributes */
813
814 0 subelement.Namespace = "";
815 0 subelement.local = "Encoding";
816
817 0 if(instance->_Encoding)
818 {
819
820 0 result = xsd_anyURI_serialize_attribute(
821 &subelement,
822 instance->_Encoding,
823 message_handle,
824 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
825 0 if(result != GLOBUS_SUCCESS)
826 {
827 0 result = GlobusSoapMessageErrorSerializeFailed(result,
828 NULL,
829 element_qname);
830 0 goto exit;
831 }
832
833 }
834
835 0 subelement.Namespace = "";
836 0 subelement.local = "Id";
837
838 0 if(instance->_Id)
839 {
840
841 0 result = xsd_ID_serialize_attribute(
842 &subelement,
843 instance->_Id,
844 message_handle,
845 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
846 0 if(result != GLOBUS_SUCCESS)
847 {
848 0 result = GlobusSoapMessageErrorSerializeFailed(result,
849 NULL,
850 element_qname);
851 0 goto exit;
852 }
853
854 }
855
856 0 subelement.Namespace = "";
857 0 subelement.local = "MimeType";
858
859 0 if(instance->_MimeType)
860 {
861
862 0 result = xsd_string_serialize_attribute(
863 &subelement,
864 instance->_MimeType,
865 message_handle,
866 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
867 0 if(result != GLOBUS_SUCCESS)
868 {
869 0 result = GlobusSoapMessageErrorSerializeFailed(result,
870 NULL,
871 element_qname);
872 0 goto exit;
873 }
874
875 }
876
877 0 if(instance == NULL || (options & GLOBUS_XSD_ELEMENT_NIL))
878 {
879 0 xsd_boolean nil = 1;
880
881 0 result = globus_soap_message_serialize_boolean_attribute(
882 message_handle,
883 nil_attr,
884 &nil);
885 0 if(result != GLOBUS_SUCCESS)
886 {
887 0 result = GlobusSoapMessageErrorSerializeFailed(
888 result, NULL, element_qname);
889 0 goto exit;
890 }
891 }
892
893 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
894 !globus_soap_message_serialize_is_c14n_subset(message_handle))
895 {
896 0 result = globus_soap_message_serialize_QName_attribute(
897 message_handle,
898 type_attr,
899 &ds_ObjectType_qname);
900 0 if(result != GLOBUS_SUCCESS)
901 {
902 0 result = GlobusSoapMessageErrorSerializeFailed(
903 result, NULL, element_qname);
904 0 goto exit;
905 }
906 }
907
908
909 }
910
911 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
912 {
913 0 result = globus_soap_message_serialize_element_begin_close(
914 message_handle, element_qname);
915 0 if(result != GLOBUS_SUCCESS)
916 {
917 0 result = GlobusSoapMessageErrorSerializeFailed(
918 result, NULL, element_qname);
919 0 goto exit;
920 }
921 }
922 0 options &= ~GLOBUS_XSD_ELEMENT_CONTENTS_ONLY;
923
924
925 0 if (instance != NULL && !(options & GLOBUS_XSD_ELEMENT_NIL))
926 {
927
928 /* serialize contents of type */
929
930 0 subelement.local = "any";
931 0 subelement.Namespace = "http://www.w3.org/2001/XMLSchema";
932
933 0 result = xsd_any_serialize(
934 &subelement,
935 &instance->any,
936 message_handle,
937 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
938 0 if(result != GLOBUS_SUCCESS)
939 {
940 0 result = GlobusSoapMessageErrorSerializeFailed(
941 result, NULL, &xsd_any_qname);
942 0 goto exit;
943 }
944
945 }
946
947 0 options = save_options;
948
949 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
950 {
951 /* add end element */
952 0 result = globus_soap_message_serialize_element_end(
953 message_handle,
954 element_qname,
955 options,
956 &ds_ObjectType_qname);
957 0 if(result != GLOBUS_SUCCESS)
958 {
959 0 result = GlobusSoapMessageErrorSerializeFailed(
960 result, NULL, element_qname);
961 0 goto exit;
962 }
963
964 0 globus_soap_message_element_ns_remove(
965 message_handle,
966 element_qname->Namespace,
967 &options);
968
969 /* remove namespace/prefix mappings for these types */
970
971 0 if(((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
972 !globus_soap_message_serialize_is_c14n_subset(message_handle)))
973 {
974 0 globus_soap_message_attribute_ns_remove(
975 message_handle,
976 "http://www.w3.org/2001/XMLSchema-instance",
977 &options);
978 }
979 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
980 !globus_soap_message_serialize_is_c14n_subset(message_handle))
981 {
982 0 globus_soap_message_attribute_ns_remove(
983 message_handle,
984 ds_ObjectType_qname.Namespace,
985 &options);
986 }
987
988 0 if(instance->_Encoding)
989 {
990
991 0 globus_soap_message_attribute_ns_remove(
992 message_handle,
993 NULL,
994 &options);
995
996 }
997
998 0 if(instance->_Id)
999 {
1000
1001 0 globus_soap_message_attribute_ns_remove(
1002 message_handle,
1003 NULL,
1004 &options);
1005
1006 }
1007
1008 0 if(instance->_MimeType)
1009 {
1010
1011 0 globus_soap_message_attribute_ns_remove(
1012 message_handle,
1013 NULL,
1014 &options);
1015
1016 }
1017
1018 }
1019
1020 0 exit:
1021 0 if (type_attr)
1022 {
1023 0 xsd_QName_destroy(type_attr);
1024 }
1025
1026 0 if (nil_attr)
1027 {
1028 0 xsd_QName_destroy(nil_attr);
1029 }
1030
1031
1032 0 if(any_attr_keys)
1033 {
1034 0 globus_list_free(any_attr_keys);
1035 }
1036
1037 0 GlobusSoapMessageDebugExit();
1038 0 return result;
1039 }
1040
1041
1042
1043 globus_result_t
1044 ds_ObjectType_deserialize_contents(
1045 const xsd_QName * element_qname, /* ignored */
1046 ds_ObjectType * inst,
1047 globus_soap_message_handle_t message_handle,
1048 globus_xsd_element_options_t options)
1049 0 {
1050 0 globus_result_t result = GLOBUS_SUCCESS;
1051 GlobusFuncName(ds_ObjectType_deserialize_contents);
1052 0 GlobusSoapMessageDebugEnter();
1053
1054 0 result = ds_ObjectType_deserialize(
1055 NULL,
1056 inst,
1057 message_handle,
1058 options | GLOBUS_XSD_ELEMENT_CONTENTS_ONLY);
1059 0 if(result != GLOBUS_SUCCESS)
1060 {
1061 0 result = GlobusSoapMessageErrorDeserializeFailed(
1062 result, element_qname);
1063 0 goto exit;
1064 }
1065
1066 0 exit:
1067
1068 0 GlobusSoapMessageDebugExit();
1069 0 return result;
1070 }
1071
1072
1073
1074 globus_result_t
1075 ds_ObjectType_deserialize(
1076 const xsd_QName * element_qname,
1077 ds_ObjectType * instance,
1078 globus_soap_message_handle_t message_handle,
1079 globus_xsd_element_options_t options)
1080 0 {
1081 0 globus_result_t result = GLOBUS_SUCCESS;
1082 xsd_QName subelement;
1083 GlobusFuncName(ds_ObjectType_deserialize);
1084 0 GlobusSoapMessageDebugEnter();
1085
1086
1087 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
1088 {
1089 0 result = globus_soap_message_deserialize_element(
1090 message_handle, element_qname);
1091 0 if(result != GLOBUS_SUCCESS)
1092 {
1093 0 result = GlobusSoapMessageErrorDeserializeFailed(
1094 result, element_qname);
1095 0 goto exit;
1096 }
1097
1098 0 subelement.Namespace = "";
1099 0 subelement.local = "Encoding";
1100
1101 0 result = xsd_anyURI_deserialize_attribute_pointer(
1102 &subelement,
1103 &instance->_Encoding,
1104 message_handle,
1105 0);
1106 0 if(result != GLOBUS_SUCCESS)
1107 {
1108 0 result = GlobusSoapMessageErrorDeserializeFailed(result, &subelement);
1109 0 goto _Encoding_destroy;
1110 }
1111
1112
1113 0 subelement.Namespace = "";
1114 0 subelement.local = "Id";
1115
1116 0 result = xsd_ID_deserialize_attribute_pointer(
1117 &subelement,
1118 &instance->_Id,
1119 message_handle,
1120 0);
1121 0 if(result != GLOBUS_SUCCESS)
1122 {
1123 0 result = GlobusSoapMessageErrorDeserializeFailed(result, &subelement);
1124 0 goto _Id_destroy;
1125 }
1126
1127
1128 0 subelement.Namespace = "";
1129 0 subelement.local = "MimeType";
1130
1131 0 result = xsd_string_deserialize_attribute_pointer(
1132 &subelement,
1133 &instance->_MimeType,
1134 message_handle,
1135 0);
1136 0 if(result != GLOBUS_SUCCESS)
1137 {
1138 0 result = GlobusSoapMessageErrorDeserializeFailed(result, &subelement);
1139 0 goto _MimeType_destroy;
1140 }
1141
1142
1143
1144 0 result = globus_soap_message_deserialize_element_begin_close(
1145 message_handle);
1146 0 if(result != GLOBUS_SUCCESS)
1147 {
1148 0 result = GlobusSoapMessageErrorDeserializeFailed(
1149 result, element_qname);
1150 0 goto fail_deserialize;
1151 }
1152 }
1153
1154 0 subelement.local = "any";
1155
1156 0 subelement.Namespace = "##any";
1157
1158 0 result = xsd_any_deserialize(
1159 &subelement,
1160 &instance->any,
1161 message_handle,
1162 0);
1163 0 if(result != GLOBUS_SUCCESS)
1164 {
1165 0 result = GlobusSoapMessageErrorDeserializeFailed(
1166 result,
1167 &xsd_any_qname);
1168 0 goto any_destroy;
1169 }
1170
1171 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
1172 {
1173 0 result = globus_soap_message_deserialize_element_end(
1174 message_handle,
1175 element_qname);
1176 0 if(result != GLOBUS_SUCCESS)
1177 {
1178 0 result = GlobusSoapMessageErrorDeserializeFailed(
1179 result, element_qname);
1180 0 goto fail_deserialize;
1181 }
1182 }
1183
1184 0 goto exit;
1185
1186 0 fail_deserialize:
1187
1188 0 _MimeType_destroy:
1189 /* output_fail_destroy_attribute() */
1190
1191 0 if(instance->_MimeType)
1192 {
1193 0 xsd_string_destroy(
1194 instance->_MimeType);
1195 0 instance->_MimeType = NULL;
1196 }
1197
1198 0 _Id_destroy:
1199 /* output_fail_destroy_attribute() */
1200
1201 0 if(instance->_Id)
1202 {
1203 0 xsd_ID_destroy(
1204 instance->_Id);
1205 0 instance->_Id = NULL;
1206 }
1207
1208 0 _Encoding_destroy:
1209 /* output_fail_destroy_attribute() */
1210
1211 0 if(instance->_Encoding)
1212 {
1213 0 xsd_anyURI_destroy(
1214 instance->_Encoding);
1215 0 instance->_Encoding = NULL;
1216 }
1217 0 xsd_any_destroy_contents(
1218 &instance->any);
1219
1220 0 any_destroy:
1221
1222
1223 0 exit:
1224
1225 0 GlobusSoapMessageDebugExit();
1226 0 return result;
1227 }
1228
1229
1230
1231 globus_result_t
1232 ds_ObjectType_deserialize_pointer(
1233 const xsd_QName * element_qname,
1234 ds_ObjectType ** ip,
1235 globus_soap_message_handle_t message_handle,
1236 globus_xsd_element_options_t options)
1237 0 {
1238 0 ds_ObjectType * instance = NULL;
1239 0 globus_result_t result = GLOBUS_SUCCESS;
1240 xsd_QName subelement;
1241 0 int found_attrs = 0;
1242 0 int empty_element = 0;
1243 GlobusFuncName(ds_ObjectType_deserialize_pointer);
1244 0 GlobusSoapMessageDebugEnter();
1245
1246 0 *ip = NULL;
1247
1248 0 result = globus_soap_message_deserialize_element(
1249 message_handle, element_qname);
1250 0 if(result != GLOBUS_SUCCESS &&
1251 (GlobusSoapMessageStatusElementNotFoundCheck(result) ||
1252 GlobusSoapMessageStatusFailedElementCheck(result) ||
1253 GlobusSoapMessageStatusFailedWithTextCheck(result)))
1254 {
1255 0 result = GLOBUS_SUCCESS;
1256 0 goto exit;
1257 }
1258
1259 0 if(result != GLOBUS_SUCCESS)
1260 {
1261 0 result = GlobusSoapMessageErrorDeserializeFailed(
1262 result, element_qname);
1263 0 goto exit;
1264 }
1265
1266 0 if(globus_soap_message_deserialize_element_is_empty(
1267 message_handle))
1268 {
1269 0 empty_element = 1;
1270 }
1271
1272 0 result = ds_ObjectType_init(&instance);
1273 0 if(result != GLOBUS_SUCCESS)
1274 {
1275 0 result = GlobusSoapMessageErrorDeserializeFailed(
1276 result, element_qname);
1277 0 goto exit;
1278 }
1279
1280
1281 0 subelement.Namespace = "";
1282 0 subelement.local = "Encoding";
1283
1284 0 result = xsd_anyURI_deserialize_attribute_pointer(
1285 &subelement,
1286 &instance->_Encoding,
1287 message_handle,
1288 0);
1289 0 if(result != GLOBUS_SUCCESS)
1290 {
1291 0 result = GlobusSoapMessageErrorDeserializeFailed(result, &subelement);
1292 0 goto _Encoding_destroy;
1293 }
1294
1295
1296 0 if(instance->_Encoding)
1297 {
1298 0 found_attrs++;
1299 }
1300
1301 0 subelement.Namespace = "";
1302 0 subelement.local = "Id";
1303
1304 0 result = xsd_ID_deserialize_attribute_pointer(
1305 &subelement,
1306 &instance->_Id,
1307 message_handle,
1308 0);
1309 0 if(result != GLOBUS_SUCCESS)
1310 {
1311 0 result = GlobusSoapMessageErrorDeserializeFailed(result, &subelement);
1312 0 goto _Id_destroy;
1313 }
1314
1315
1316 0 if(instance->_Id)
1317 {
1318 0 found_attrs++;
1319 }
1320
1321 0 subelement.Namespace = "";
1322 0 subelement.local = "MimeType";
1323
1324 0 result = xsd_string_deserialize_attribute_pointer(
1325 &subelement,
1326 &instance->_MimeType,
1327 message_handle,
1328 0);
1329 0 if(result != GLOBUS_SUCCESS)
1330 {
1331 0 result = GlobusSoapMessageErrorDeserializeFailed(result, &subelement);
1332 0 goto _MimeType_destroy;
1333 }
1334
1335
1336 0 if(instance->_MimeType)
1337 {
1338 0 found_attrs++;
1339 }
1340
1341 0 if(found_attrs == 0 &&
1342 globus_soap_message_deserialize_element_is_nil(message_handle))
1343 {
1344 0 ds_ObjectType_destroy(instance);
1345
1346 0 result = globus_soap_message_deserialize_element_end(
1347 message_handle,
1348 element_qname);
1349 0 if(result != GLOBUS_SUCCESS)
1350 {
1351 0 result = GlobusSoapMessageErrorDeserializeFailed(
1352 result, element_qname);
1353 0 goto exit;
1354 }
1355
1356 0 *ip = NULL;
1357 0 globus_object_free(globus_error_get(result));
1358 0 result = GLOBUS_SUCCESS;
1359 0 goto exit;
1360 }
1361
1362 0 if(empty_element)
1363 {
1364 0 result = globus_soap_message_deserialize_element_end(
1365 message_handle,
1366 element_qname);
1367 0 if(result != GLOBUS_SUCCESS)
1368 {
1369 0 result = GlobusSoapMessageErrorDeserializeFailed(
1370 result, element_qname);
1371 0 goto fail_deserialize;
1372 }
1373
1374 0 *ip = instance;
1375 0 goto exit;
1376 }
1377
1378 0 result = globus_soap_message_deserialize_element_begin_close(
1379 message_handle);
1380 0 if(result != GLOBUS_SUCCESS)
1381 {
1382 0 result = GlobusSoapMessageErrorDeserializeFailed(
1383 result, element_qname);
1384 0 goto exit;
1385 }
1386
1387 0 result = ds_ObjectType_deserialize(
1388 element_qname,
1389 instance,
1390 message_handle,
1391 options | GLOBUS_XSD_ELEMENT_CONTENTS_ONLY);
1392 0 if(result != GLOBUS_SUCCESS)
1393 {
1394 0 result = GlobusSoapMessageErrorDeserializeFailed(
1395 result, element_qname);
1396 0 goto exit;
1397 }
1398
1399 0 result = globus_soap_message_deserialize_element_end(
1400 message_handle,
1401 element_qname);
1402 0 if(result != GLOBUS_SUCCESS)
1403 {
1404 0 result = GlobusSoapMessageErrorDeserializeFailed(
1405 result, element_qname);
1406 0 goto fail_deserialize;
1407 }
1408
1409 0 *ip = instance;
1410
1411 0 goto exit;
1412
1413 0 fail_deserialize:
1414
1415 0 _MimeType_destroy:
1416 /* output_fail_destroy_attribute() */
1417
1418 0 if(instance->_MimeType)
1419 {
1420 0 xsd_string_destroy(
1421 instance->_MimeType);
1422 0 instance->_MimeType = NULL;
1423 }
1424
1425 0 _Id_destroy:
1426 /* output_fail_destroy_attribute() */
1427
1428 0 if(instance->_Id)
1429 {
1430 0 xsd_ID_destroy(
1431 instance->_Id);
1432 0 instance->_Id = NULL;
1433 }
1434
1435 0 _Encoding_destroy:
1436 /* output_fail_destroy_attribute() */
1437
1438 0 if(instance->_Encoding)
1439 {
1440 0 xsd_anyURI_destroy(
1441 instance->_Encoding);
1442 0 instance->_Encoding = NULL;
1443 }
1444 0 xsd_any_destroy_contents(
1445 &instance->any);
1446
1447 0 any_destroy:
1448
1449 0 exit:
1450
1451 0 GlobusSoapMessageDebugExit();
1452 0 return result;
1453 }
1454
1455
1456 globus_result_t
1457 ds_ObjectType_array_init_contents(
1458 ds_ObjectType_array * array)
1459 0 {
1460 0 return globus_xsd_generic_array_init_contents(
1461 (globus_xsd_generic_array_t *) array,
1462 &ds_ObjectType_info);
1463 }
1464 /* ds_ObjectType_array_init_contents() */
1465
1466 globus_result_t
1467 ds_ObjectType_array_init(
1468 ds_ObjectType_array ** arr)
1469 0 {
1470 0 return globus_xsd_generic_array_init(
1471 (globus_xsd_generic_array_t **) arr,
1472 &ds_ObjectType_info);
1473 }
1474 /* ds_ObjectType_array_init() */
1475
1476 void
1477 ds_ObjectType_array_destroy_contents(
1478 ds_ObjectType_array * array)
1479 0 {
1480 0 globus_xsd_generic_array_destroy_contents(
1481 (globus_xsd_generic_array_t *) array);
1482 0 }
1483 /* ds_ObjectType_array_destroy_contents() */
1484
1485 void
1486 ds_ObjectType_array_destroy(
1487 ds_ObjectType_array * array)
1488 0 {
1489 0 globus_xsd_generic_array_destroy(
1490 (globus_xsd_generic_array_t *) array);
1491 0 }
1492 /* ds_ObjectType_array_destroy() */
1493
1494 globus_result_t
1495 ds_ObjectType_array_copy(
1496 ds_ObjectType_array ** dest_arr,
1497 const ds_ObjectType_array * src_arr)
1498 0 {
1499 0 return globus_xsd_generic_array_copy(
1500 (globus_xsd_generic_array_t **) dest_arr,
1501 (globus_xsd_generic_array_t *) src_arr);
1502 }
1503 /* ds_ObjectType_array_copy() */
1504
1505 globus_result_t
1506 ds_ObjectType_array_copy_contents(
1507 ds_ObjectType_array * dest_arr,
1508 const ds_ObjectType_array * src_arr)
1509 0 {
1510 0 return globus_xsd_generic_array_copy_contents(
1511 (globus_xsd_generic_array_t *) dest_arr,
1512 (globus_xsd_generic_array_t *) src_arr);
1513 }
1514 /* ds_ObjectType_array_copy_contents() */
1515
1516 ds_ObjectType *
1517 ds_ObjectType_array_push(
1518 ds_ObjectType_array * array)
1519 0 {
1520 /* Some contents initializers don't initialize subelments but to set their
1521 * values to be NULL
1522 */
1523 0 if (array->type_info == NULL)
1524 {
1525 0 array->type_info = &ds_ObjectType_info;
1526 }
1527
1528 0 return globus_xsd_generic_array_push(
1529 (globus_xsd_generic_array_t *) array);
1530 }
1531 /* ds_ObjectType_array_push() */
1532
1533 globus_result_t
1534 ds_ObjectType_array_serialize(
1535 const xsd_QName * element_qname,
1536 const ds_ObjectType_array * array,
1537 globus_soap_message_handle_t message,
1538 globus_xsd_element_options_t options)
1539 0 {
1540 0 return globus_xsd_generic_array_serialize(
1541 element_qname,
1542 (const globus_xsd_generic_array_t *) array,
1543 message,
1544 options);
1545 }
1546 /* ds_ObjectType_array_serialize() */
1547
1548 globus_result_t
1549 ds_ObjectType_array_deserialize(
1550 const xsd_QName * element_qname,
1551 ds_ObjectType_array * array,
1552 globus_soap_message_handle_t message,
1553 globus_xsd_element_options_t options)
1554 0 {
1555 /* Some initializers set the array's contents to NULL */
1556 0 if (array->type_info == NULL)
1557 {
1558 0 array->type_info = &ds_ObjectType_info;
1559 }
1560 0 return globus_xsd_generic_array_deserialize(
1561 element_qname,
1562 (globus_xsd_generic_array_t *) array,
1563 message,
1564 options);