00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef WODEN_TYPES_ELEMENT_H
00018 #define WODEN_TYPES_ELEMENT_H
00019
00037 #include <axis2_allocator.h>
00038 #include <axis2_env.h>
00039 #include <axis2_error.h>
00040 #include <axis2_string.h>
00041 #include <axis2_utils.h>
00042 #include <axis2_hash.h>
00043 #include <axis2_qname.h>
00044 #include <axis2_uri.h>
00045 #include <woden.h>
00046 #include <woden_documentable_element.h>
00047 #include <xml_schema.h>
00048
00049 #ifdef __cplusplus
00050 extern "C"
00051 {
00052 #endif
00053
00054 typedef struct woden_types_element woden_types_element_t;
00055 typedef struct woden_types_element_ops woden_types_element_ops_t;
00056 struct xml_schema;
00057
00063 struct woden_types_element_ops
00064 {
00069 axis2_status_t (AXIS2_CALL *
00070 free) (
00071 void *types_el,
00072 const axis2_env_t *env);
00073
00074 woden_obj_types_t (AXIS2_CALL *
00075 type) (void *types_el,
00076 const axis2_env_t *env);
00077
00084 axis2_status_t (AXIS2_CALL *
00085 set_type_system) (void *types_el,
00086 const axis2_env_t *env,
00087 axis2_char_t *type_system);
00088
00093 axis2_char_t *(AXIS2_CALL *
00094 get_type_system) (void *types_el,
00095 const axis2_env_t *env);
00096
00103 axis2_status_t (AXIS2_CALL *
00104 add_schema) (void *types_el,
00105 const axis2_env_t *env,
00106 void *schema);
00107
00111 axis2_status_t (AXIS2_CALL *
00112 remove_schema) (
00113 void *types_el,
00114 const axis2_env_t *env,
00115 struct xml_schema *schema);
00116
00123 axis2_array_list_t *(AXIS2_CALL *
00124 get_schemas) (
00125 void *types_el,
00126 const axis2_env_t *env);
00127
00140 axis2_array_list_t *(AXIS2_CALL *
00141 get_schemas_with_namespace) (
00142 void *types_el,
00143 const axis2_env_t *env,
00144 axis2_uri_t *namespc);
00145
00152 axis2_array_list_t *(AXIS2_CALL *
00153 get_inlined_schemas) (
00154 void *types_el,
00155 const axis2_env_t *env);
00156
00163 axis2_array_list_t *(AXIS2_CALL *
00164 get_imported_schemas) (
00165 void *types_el,
00166 const axis2_env_t *env);
00167 };
00168
00169 struct woden_types_element
00170 {
00171 woden_documentable_element_t documentable_element;
00172 woden_types_element_ops_t *ops;
00173 };
00174
00175
00176 axis2_status_t AXIS2_CALL
00177 woden_types_element_resolve_methods(
00178 woden_types_element_t *types_element,
00179 const axis2_env_t *env,
00180 axis2_hash_t *methods);
00181
00182
00183 #define WODEN_TYPES_ELEMENT_FREE(types_el, env) \
00184 (((woden_types_element_t *) types_el)->ops->\
00185 free (types_el, env))
00186
00187 #define WODEN_TYPES_ELEMENT_TYPE(types_el, env) \
00188 (((woden_types_element_t *) types_el)->ops->\
00189 type (types_el, env))
00190
00191 #define WODEN_TYPES_ELEMENT_SET_TYPE_SYSTEM(types_el, env, type_system) \
00192 (((woden_types_element_t *) types_el)->ops->\
00193 set_type_system(types_el, env, type_system))
00194
00195 #define WODEN_TYPES_ELEMENT_GET_TYPE_SYSTEM(types_el, env) \
00196 (((woden_types_element_t *) types_el)->ops->\
00197 get_type_system(types_el, env))
00198
00199 #define WODEN_TYPES_ELEMENT_ADD_SCHEMA(types_el, env, schema) \
00200 (((woden_types_element_t *) types_el)->ops->\
00201 add_schema(types_el, env, schema))
00202
00203 #define WODEN_TYPES_ELEMENT_REMOVE_SCHEMA(types_el, env, schema) \
00204 (((woden_types_element_t *) types_el)->ops->\
00205 remove_schema(types_el, env, schema))
00206
00207 #define WODEN_TYPES_ELEMENT_GET_SCHEMAS(types_el, env) \
00208 (((woden_types_element_t *) types_el)->ops->\
00209 get_schemas(types_el, env))
00210
00211 #define WODEN_TYPES_ELEMENT_GET_SCHEMAS_WITH_NAMESPACE(types_el, env, \
00212 namespc) \
00213 (((woden_types_element_t *) types_el)->ops->\
00214 get_schemas_with_namespace(types_el, env, namespc))
00215
00216 #define WODEN_TYPES_ELEMENT_GET_INLINED_SCHEMAS(types_el, env) \
00217 (((woden_types_element_t *) types_el)->ops->\
00218 get_inlined_schemas(types_el, env))
00219
00220 #define WODEN_TYPES_ELEMENT_GET_IMPORTED_SCHEMAS(types_el, env) \
00221 (((woden_types_element_t *) types_el)->ops->\
00222 get_imported_schemas(types_el, env))
00223
00225 #ifdef __cplusplus
00226 }
00227 #endif
00228 #endif