00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef XML_SCHEMA_COMPLEX_CONTENT_EXTENSION_H
00019 #define XML_SCHEMA_COMPLEX_CONTENT_EXTENSION_H
00020
00025 #include <xml_schema_annotated.h>
00026 #include <xml_schema_obj_collection.h>
00027 #include <xml_schema_any_attribute.h>
00028 #include <xml_schema_particle.h>
00029 #include <axis2_hash.h>
00030 #include <axis2_qname.h>
00035 #ifdef __cplusplus
00036 extern "C"
00037 {
00038 #endif
00039
00040 typedef struct xml_schema_complex_content_extension
00041 xml_schema_complex_content_extension_t;
00042
00043 typedef struct xml_schema_complex_content_extension_ops
00044 xml_schema_complex_content_extension_ops_t;
00045
00046 struct xml_schema_complex_content_extension_ops
00047 {
00048 axis2_status_t (AXIS2_CALL *
00049 free)(void *cmp_content_ext,
00050 const axis2_env_t *env);
00051
00052 xml_schema_annotated_t *(AXIS2_CALL *
00053 get_base_impl) (
00054 void *cmp_content_ext,
00055 const axis2_env_t *env);
00056
00057 xml_schema_types_t (AXIS2_CALL *
00058 get_type) (
00059 void *cmp_content_ext,
00060 const axis2_env_t *env);
00061
00062 axis2_hash_t* (AXIS2_CALL *
00063 super_objs)(
00064 void *cmp_content_ext,
00065 const axis2_env_t *env);
00066
00067 xml_schema_any_attribute_t* (AXIS2_CALL *
00068 get_any_attribute)(
00069 void *cmp_content_ext,
00070 const axis2_env_t *env);
00071
00072 axis2_status_t (AXIS2_CALL *
00073 set_any_attribute)(
00074 void *cmp_content_ext,
00075 const axis2_env_t *env,
00076 xml_schema_any_attribute_t *any_attr);
00077
00078 xml_schema_obj_collection_t* (AXIS2_CALL *
00079 get_attributes)(
00080 void *cmp_content_ext,
00081 const axis2_env_t *env);
00082
00083 axis2_qname_t* (AXIS2_CALL*
00084 get_base_type_name)(
00085 void *cmp_content_ext,
00086 const axis2_env_t *env);
00087
00088 axis2_status_t (AXIS2_CALL *
00089 set_base_type_name)(
00090 void *cmp_content_ext,
00091 const axis2_env_t *env,
00092 axis2_qname_t *qname);
00093
00094 xml_schema_particle_t* (AXIS2_CALL *
00095 get_particle)(
00096 void *cmp_content_ext,
00097 const axis2_env_t *env);
00098
00099 axis2_status_t (AXIS2_CALL *
00100 set_particle)(
00101 void *cmp_content_ext,
00102 const axis2_env_t *env,
00103 xml_schema_particle_t *particle);
00104
00105 axis2_char_t* (AXIS2_CALL *
00106 to_string)(
00107 void *cmp_content_ext,
00108 const axis2_env_t *env,
00109 axis2_char_t *prefix,
00110 int tab);
00111
00112 };
00113
00114 struct xml_schema_complex_content_extension
00115 {
00116 xml_schema_annotated_t base;
00117 xml_schema_complex_content_extension_ops_t *ops;
00118 };
00119
00123 AXIS2_EXTERN xml_schema_complex_content_extension_t * AXIS2_CALL
00124 xml_schema_complex_content_extension_create(const axis2_env_t *env);
00125
00126 #define XML_SCHEMA_COMPLEX_CONTENT_EXTENSION_FREE(cmp_content_ext, env) \
00127 (((xml_schema_complex_content_extension_t *)cmp_content_ext)->ops->free(cmp_content_ext, env))
00128
00129 #define XML_SCHEMA_COMPLEX_CONTENT_EXTENSION_GET_BASE_IMPL(cmp_content_ext, env) \
00130 (((xml_schema_complex_content_extension_t *)cmp_content_ext)->ops->\
00131 get_base_impl(cmp_content_ext, env))
00132
00133 #define XML_SCHEMA_COMPLEX_CONTENT_EXTENSION_GET_TYPE(cmp_content_ext, env) \
00134 (((xml_schema_complex_content_extension_t *)cmp_content_ext)->ops->\
00135 get_type(cmp_content_ext, env))
00136
00137 #define XML_SCHEMA_COMPLEX_CONTENT_EXTENSION_SUPER_OBJS(cmp_content_ext, env) \
00138 (((xml_schema_complex_content_extension_t *)cmp_content_ext)->ops->\
00139 super_objs(cmp_content_ext, env))
00140
00141
00142 #define XML_SCHEMA_COMPLEX_CONTENT_EXTENSION_GET_ANY_ATTRIBUTE(cmp_content_ext, env) \
00143 (((xml_schema_complex_content_extension_t *)cmp_content_ext)->ops->get_any_attribute(cmp_content_ext, env))
00144
00145 #define XML_SCHEMA_COMPLEX_CONTENT_EXTENSION_SET_ANY_ATTRIBUTE(cmp_content_ext, \
00146 env, any_attr)\
00147 (((xml_schema_complex_content_extension_t *)cmp_content_ext)->ops->\
00148 set_any_attribute(cmp_content_ext, env, any_attr ))
00149
00150 #define XML_SCHEMA_COMPLEX_CONTENT_EXTENSION_GET_ATTRIBUTES(cmp_content_ext, env) \
00151 (((xml_schema_complex_content_extension_t *)cmp_content_ext)->ops->get_attributes(cmp_content_ext, env))
00152
00153 #define XML_SCHEMA_COMPLEX_CONTENT_EXTENSION_GET_BASE_TYPE_NAME(cmp_content_ext, env)\
00154 (((xml_schema_complex_content_extension_t *)cmp_content_ext)->ops->get_base_type_name(cmp_content_ext, env))
00155
00156 #define XML_SCHEMA_COMPLEX_CONTENT_EXTENSION_SET_BASE_TYPE_NAME(cmp_content_ext,\
00157 env, base_type_name) \
00158 (((xml_schema_complex_content_extension_t *)cmp_content_ext)->ops->set_base_type_name(cmp_content_ext, env, base_type_name))
00159
00160 #define XML_SCHEMA_COMPLEX_CONTENT_EXTENSION_GET_PARTICLE(cmp_content_ext, env) \
00161 (((xml_schema_complex_content_extension_t *)cmp_content_ext)->ops->get_particle(cmp_content_ext, env))
00162
00163 #define XML_SCHEMA_COMPLEX_CONTENT_EXTENSION_SET_PARTICLE(cmp_content_ext, env, particle) \
00164 (((xml_schema_complex_content_extension_t *)cmp_content_ext)->ops->set_particle(cmp_content_ext, env, particle))
00165
00166 #define XML_SCHEMA_COMPLEX_CONTENT_EXTENSION_TO_STRING(cmp_content_ext, env, prefix, tab) \
00167 (((xml_schema_complex_content_extension_t *)cmp_content_ext)->ops->to_string(cmp_content_ext, env, prefix, tab))
00168
00169 #ifdef __cplusplus
00170 }
00171 #endif
00172 #endif