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
00034 typedef struct xml_schema_derivation_method xml_schema_derivation_method_t;
00035 typedef struct xml_schema_derivation_method_ops xml_schema_derivation_method_ops_t;
00036
00037 #ifdef __cplusplus
00038 extern "C"
00039 {
00040 #endif
00041
00042 struct xml_schema_derivation_method_ops
00043 {
00048 axis2_status_t (AXIS2_CALL *
00049 free) (void *derivation_method,
00050 const axis2_env_t *env);
00051
00052 xml_schema_enum_t *(AXIS2_CALL *
00053 get_base_impl) (void *derivation_method,
00054 const axis2_env_t *env);
00055
00056 axis2_array_list_t *(AXIS2_CALL *
00057 get_values)(void *derivation_method,
00058 const axis2_env_t *env);
00059
00060 axis2_hash_t* (AXIS2_CALL *
00061 super_objs)(void *derivation_method,
00062 const axis2_env_t *env);
00063
00064 xml_schema_types_t (AXIS2_CALL *
00065 get_type)(void *derivation_method,
00066 const axis2_env_t *env);
00067
00068 };
00069
00070 struct xml_schema_derivation_method
00071 {
00072 xml_schema_enum_t base;
00073 xml_schema_derivation_method_ops_t *ops;
00074 };
00075
00076 AXIS2_EXTERN xml_schema_derivation_method_t * AXIS2_CALL
00077 xml_schema_derivation_method_create(const axis2_env_t *env,
00078 axis2_char_t* value);
00079
00080
00081 #define XML_SCHEMA_DERIVATION_METHOD_FREE(derivation_method, env) \
00082 (((xml_schema_derivation_method_t *) \
00083 derivation_method)->ops->free(derivation_method, env))
00084
00085 #define XML_SCHEMA_DERIVATION_METHOD_GET_BASE_IMPL(derivation_method, env) \
00086 (((xml_schema_derivation_method_t *) \
00087 derivation_method)->ops->get_base_impl(derivation_method, env))
00088
00089 #define XML_SCHEMA_DERIVATION_METHOD_GET_VALUES(derivation_method, env) \
00090 (((xml_schema_derivation_method_t *) \
00091 derivation_method)->ops->values(derivation_method, env))
00092
00093 #define XML_SCHEMA_DERIVATION_METHOD_GET_TYPE(derivation_method, env) \
00094 (((xml_schema_derivation_method_t *) \
00095 derivation_method)->ops->get_type(derivation_method, env))
00096
00097 #define XML_SCHEMA_DERIVATION_METHOD_SUPER_OBJS(derivation_method, env) \
00098 (((xml_schema_derivation_method_t *) \
00099 derivation_method)->ops->super_objs(derivation_method, env))
00100
00101
00103 #ifdef __cplusplus
00104 }
00105 #endif
00106 #endif