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