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