00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef XML_SCHEMA_DERIVATION_METHOD_H
00019 #define XML_SCHEMA_DERIVATION_METHOD_H
00020
00028 #include <xml_schema_enum.h>
00029
00037 #ifdef __cplusplus
00038 extern "C"
00039 {
00040 #endif
00041
00042 typedef struct xml_schema_derivation_method
00043 xml_schema_derivation_method_t;
00044 typedef struct xml_schema_derivation_method_ops
00045 xml_schema_derivation_method_ops_t;
00046
00047 struct xml_schema_derivation_method_ops
00048 {
00053 axis2_status_t (AXIS2_CALL *
00054 free) (void *derivation_method,
00055 const axis2_env_t *env);
00056
00057 xml_schema_enum_t *(AXIS2_CALL *
00058 get_base_impl) (void *derivation_method,
00059 const axis2_env_t *env);
00060
00061 axis2_array_list_t *(AXIS2_CALL *
00062 get_values)(void *derivation_method,
00063 const axis2_env_t *env);
00064
00065 axis2_hash_t* (AXIS2_CALL *
00066 super_objs)(void *derivation_method,
00067 const axis2_env_t *env);
00068
00069 xml_schema_types_t (AXIS2_CALL *
00070 get_type)(void *derivation_method,
00071 const axis2_env_t *env);
00072
00073 };
00074
00075 struct xml_schema_derivation_method
00076 {
00077 xml_schema_enum_t base;
00078 xml_schema_derivation_method_ops_t *ops;
00079 };
00080
00081 AXIS2_EXTERN xml_schema_derivation_method_t * AXIS2_CALL
00082 xml_schema_derivation_method_create(const axis2_env_t *env,
00083 axis2_char_t* value);
00084
00085
00086 #define XML_SCHEMA_DERIVATION_METHOD_FREE(derivation_method, env) \
00087 (((xml_schema_derivation_method_t *) \
00088 derivation_method)->ops->free(derivation_method, env))
00089
00090 #define XML_SCHEMA_DERIVATION_METHOD_GET_BASE_IMPL(derivation_method, env) \
00091 (((xml_schema_derivation_method_t *) \
00092 derivation_method)->ops->get_base_impl(derivation_method, env))
00093
00094 #define XML_SCHEMA_DERIVATION_METHOD_GET_VALUES(derivation_method, env) \
00095 (((xml_schema_derivation_method_t *) \
00096 derivation_method)->ops->values(derivation_method, env))
00097
00098 #define XML_SCHEMA_DERIVATION_METHOD_GET_TYPE(derivation_method, env) \
00099 (((xml_schema_derivation_method_t *) \
00100 derivation_method)->ops->get_type(derivation_method, env))
00101
00102 #define XML_SCHEMA_DERIVATION_METHOD_SUPER_OBJS(derivation_method, env) \
00103 (((xml_schema_derivation_method_t *) \
00104 derivation_method)->ops->super_objs(derivation_method, env))
00105
00106
00108 #ifdef __cplusplus
00109 }
00110 #endif
00111 #endif