00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef W2C_SCHEMA_COMPILER_H
00018 #define W2C_SCHEMA_COMPILER_H
00019
00025 #include <axis2_utils.h>
00026 #include <w2c_schema_compiler_options.h>
00027 #include <xml_schema.h>
00028 #include <w2c_typemapper.h>
00029
00030 #ifdef __cplusplus
00031 extern "C"
00032 {
00033 #endif
00034
00040 typedef struct w2c_schema_compiler w2c_schema_compiler_t;
00041 typedef struct w2c_schema_compiler_ops w2c_schema_compiler_ops_t;
00042
00043 AXIS2_DECLARE_DATA struct w2c_schema_compiler_ops
00044 {
00052 axis2_status_t (AXIS2_CALL *
00053 free)(w2c_schema_compiler_t *schema_compiler,
00054 const axis2_env_t *env);
00055
00064 axis2_status_t (AXIS2_CALL *
00065 compile)( w2c_schema_compiler_t *compiler,
00066 const axis2_env_t *env,
00067 xml_schema_t *xml_schema);
00068
00076 w2c_typemapper_t *(AXIS2_CALL *
00077 compile_schema_list)( w2c_schema_compiler_t *compiler,
00078 const axis2_env_t *env,
00079 axis2_array_list_t *schema_list);
00080
00081 };
00082
00083 AXIS2_DECLARE_DATA struct w2c_schema_compiler
00084 {
00085 struct w2c_schema_compiler_ops *ops;
00086 };
00087
00094 AXIS2_EXTERN w2c_schema_compiler_t* AXIS2_CALL
00095 w2c_schema_compiler_create( const axis2_env_t *env,
00096 w2c_schema_compiler_options_t *options);
00097
00098
00099
00100 #define W2C_SCHEMA_COMPILER_FREE(schema_compiler, env) \
00101 ((schema_compiler)->ops->free (schema_compiler, env))
00102
00103 #define W2C_SCHEMA_COMPILER_COMPILE_SCHEMA_LIST(schema_compiler, env, list) \
00104 ((schema_compiler)->ops->compile_schema_list(schema_compiler, env, list))
00105
00106 #define W2C_SCHEMA_COMPILER_COMPILE(schema_compiler, env, schema) \
00107 ((schema_compiler)->ops->compile(schema_compiler, env, schema))
00108
00111 #ifdef __cplusplus
00112 }
00113 #endif
00114
00115 #endif