00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef XML_SCHEMA_USE_H
00019 #define XML_SCHEMA_USE_H
00020
00028 #include <xml_schema_defines.h>
00029 #include <xml_schema_enum.h>
00030
00036 typedef struct xml_schema_use xml_schema_use_t;
00037 typedef struct xml_schema_use_ops xml_schema_use_ops_t;
00038
00039 #ifdef __cplusplus
00040 extern "C"
00041 {
00042 #endif
00043
00044 struct xml_schema_use_ops
00045 {
00050 axis2_status_t (AXIS2_CALL *
00051 free) (void *use,
00052 const axis2_env_t *env);
00053
00054 axis2_hash_t *(AXIS2_CALL *
00055 super_objs) (
00056 void *use,
00057 const axis2_env_t *env);
00058
00059 xml_schema_types_t (AXIS2_CALL *
00060 get_type) (
00061 void *use,
00062 const axis2_env_t *env);
00063
00064 xml_schema_enum_t *(AXIS2_CALL *
00065 get_base_impl) (void *use,
00066 const axis2_env_t *env);
00067
00068 axis2_array_list_t *(AXIS2_CALL *
00069 get_values)(void *use,
00070 const axis2_env_t *env);
00071
00072 };
00073
00074 struct xml_schema_use
00075 {
00076 xml_schema_enum_t base;
00077 xml_schema_use_ops_t *ops;
00078 };
00079
00080 AXIS2_EXTERN xml_schema_use_t * AXIS2_CALL
00081 xml_schema_use_create(const axis2_env_t *env,
00082 axis2_char_t* value);
00083
00084
00085
00086 #define XML_SCHEMA_USE_FREE(use, env) \
00087 (((xml_schema_use_t *) use)->ops->free(use, env))
00088
00089 #define XML_SCHEMA_USE_SUPER_OBJS(use, env) \
00090 (((xml_schema_use_t *) use)->ops->super_objs(use, env))
00091
00092 #define XML_SCHEMA_USE_GET_TYPE(use, env) \
00093 (((xml_schema_use_t *) use)->ops->get_type(use, env))
00094
00095 #define XML_SCHEMA_USE_GET_BASE_IMPL(use, env) \
00096 (((xml_schema_use_t *) use)->ops->get_base_impl(use, env))
00097
00098 #define XML_SCHEMA_USE_GET_VALUES(use, env) \
00099 (((xml_schema_use_t *) use)->ops->values(use, env))
00100
00102 #ifdef __cplusplus
00103 }
00104 #endif
00105 #endif