00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef XML_SCHEMA_EXTERNAL_H
00019 #define XML_SCHEMA_EXTERNAL_H
00020
00027 #include <xml_schema_annotated.h>
00028 #include <axis2_hash.h>
00029
00035 typedef struct xml_schema_external
00036 xml_schema_external_t;
00037 typedef struct xml_schema_external_ops
00038 xml_schema_external_ops_t;
00039
00040 struct xml_schema;
00041
00042 #ifdef __cplusplus
00043 extern "C"
00044 {
00045 #endif
00046
00047 struct xml_schema_external_ops
00048 {
00053 axis2_status_t (AXIS2_CALL *
00054 free) (void *external,
00055 const axis2_env_t *env);
00056
00057 xml_schema_annotated_t* (AXIS2_CALL *
00058 get_base_impl)(
00059 void *external,
00060 const axis2_env_t *env);
00061
00062 xml_schema_types_t (AXIS2_CALL *
00063 get_type)(
00064 void *external,
00065 const axis2_env_t *env);
00066
00067
00068 axis2_hash_t* (AXIS2_CALL *
00069 super_objs)(
00070 void *external,
00071 const axis2_env_t *env);
00072
00073 struct xml_schema* (AXIS2_CALL *
00074 get_schema)(
00075 void *external,
00076 const axis2_env_t *env);
00077
00078 axis2_status_t (AXIS2_CALL *
00079 set_schema)(
00080 void *external,
00081 const axis2_env_t *env,
00082 struct xml_schema* schema);
00083
00084 axis2_char_t* (AXIS2_CALL *
00085 get_schema_location)(
00086 void *external,
00087 const axis2_env_t *env);
00088
00089 axis2_status_t (AXIS2_CALL *
00090 set_schema_location)(
00091 void *external,
00092 const axis2_env_t *env,
00093 axis2_char_t *location);
00094
00095 };
00096
00097 struct xml_schema_external
00098 {
00099 xml_schema_annotated_t base;
00100 xml_schema_external_ops_t *ops;
00101 };
00102
00106 AXIS2_EXTERN xml_schema_external_t * AXIS2_CALL
00107 xml_schema_external_create(const axis2_env_t *env);
00108
00109 AXIS2_EXTERN xml_schema_external_t * AXIS2_CALL
00110 xml_schema_include_create(const axis2_env_t *env);
00111
00115 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00116 xml_schema_external_resolve_methods(
00117 xml_schema_external_t *external,
00118 const axis2_env_t *env,
00119 xml_schema_external_t *external_impl,
00120 XML_SCHEMA_SUPER_OBJS_FN super_objs,
00121 XML_SCHEMA_GET_TYPE_FN get_type,
00122 XML_SCHEMA_FREE_FN free_fn);
00123
00124
00125 #define XML_SCHEMA_EXTERNAL_FREE(external, env) \
00126 (((xml_schema_external_t *) external)->ops->\
00127 free(external, env))
00128
00129 #define XML_SCHEMA_EXTERNAL_GET_BASE_IMPL(external, env) \
00130 (((xml_schema_external_t *) external)->ops->\
00131 get_base_impl(external, env))
00132
00133 #define XML_SCHEMA_EXTERNAL_SUPER_OBJS(external, env) \
00134 (((xml_schema_external_t *) external)->ops->\
00135 super_objs(external, env))
00136
00137 #define XML_SCHEMA_EXTERNAL_GET_TYPE(external, env) \
00138 (((xml_schema_external_t *) external)->ops->\
00139 get_type(external, env))
00140
00141 #define XML_SCHEMA_EXTERNAL_GET_SCHEMA(external, env) \
00142 (((xml_schema_external_t *) external)->ops->\
00143 get_schema(external, env))
00144
00145 #define XML_SCHEMA_EXTERNAL_SET_SCHEMA(external, env, sch) \
00146 (((xml_schema_external_t *) external)->ops->\
00147 set_schema(external, env, sch))
00148
00149 #define XML_SCHEMA_EXTERNAL_GET_SCHEMA_LOCATION(external, env) \
00150 (((xml_schema_external_t *) external)->ops->\
00151 get_schema_location(external, env))
00152
00153 #define XML_SCHEMA_EXTERNAL_SET_SCHEMA_LOCATION(external, env, location) \
00154 (((xml_schema_external_t *) external)->ops->\
00155 set_schema_location(external, env, location))
00156
00158 #ifdef __cplusplus
00159 }
00160 #endif
00161 #endif