00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef W2C_SCHEMA_WRITER_H
00018 #define W2C_SCHEMA_WRITER_H
00019
00025 #include <axis2_utils.h>
00026 #include <axis2_hash.h>
00027 #include <w2c_schema_compiler_options.h>
00028 #include <xml_schema_element.h>
00029 #include <w2c_schema_writer_meta_info.h>
00030 #include <xml_schema_complex_type.h>
00031 #include <xml_schema_simple_type.h>
00032 #include <axis2_qname.h>
00033
00034 #ifdef __cplusplus
00035 extern "C"
00036 {
00037 #endif
00038
00039 #define W2C_SCHEMA_WRITER_XSLT_PATH "/conf/templates/"
00040
00047 typedef struct w2c_schema_writer w2c_schema_writer_t;
00048 typedef struct w2c_schema_writer_ops w2c_schema_writer_ops_t;
00049
00050 AXIS2_DECLARE_DATA struct w2c_schema_writer_ops
00051 {
00059 axis2_status_t (AXIS2_CALL *
00060 free)(w2c_schema_writer_t *schema_writer,
00061 const axis2_env_t *env);
00062
00063 axis2_hash_t* (AXIS2_CALL *
00064 get_model_map)( w2c_schema_writer_t *writer,
00065 const axis2_env_t *env);
00066
00067 axis2_status_t (AXIS2_CALL *
00068 init)( w2c_schema_writer_t *writer,
00069 const axis2_env_t *env,
00070 w2c_schema_compiler_options_t *options,
00071 axis2_char_t *template_name,
00072 axis2_hash_t *base_typemap);
00073
00074 axis2_char_t* (AXIS2_CALL *
00075 write_element)( w2c_schema_writer_t *writer,
00076 const axis2_env_t *env,
00077 xml_schema_element_t *element,
00078 axis2_hash_t *typemap,
00079 w2c_schema_writer_meta_info_t *meta_info);
00080
00081 axis2_char_t* (AXIS2_CALL *
00082 write_complex_type)( w2c_schema_writer_t *writer,
00083 const axis2_env_t *env,
00084 xml_schema_complex_type_t *type,
00085 axis2_hash_t *typemap,
00086 w2c_schema_writer_meta_info_t *meta_info);
00087
00088 axis2_status_t (AXIS2_CALL *
00089 write_batch)( w2c_schema_writer_t *writer,
00090 const axis2_env_t *env);
00091
00092 axis2_char_t* (AXIS2_CALL *
00093 write_simple_type)( w2c_schema_writer_t *writer,
00094 const axis2_env_t *env,
00095 xml_schema_complex_type_t *type,
00096 axis2_hash_t *typemap,
00097 w2c_schema_writer_meta_info_t *meta_info);
00098
00099 axis2_char_t* (AXIS2_CALL *
00100 make_fully_qualified_class_name)( w2c_schema_writer_t *writer,
00101 const axis2_env_t *env,
00102 axis2_qname_t *qname);
00103
00104
00105 axis2_status_t (AXIS2_CALL *
00106 register_extension_mapper_packagename)(w2c_schema_writer_t *writer,
00107 const axis2_env_t *env,
00108 axis2_char_t *package_name);
00109
00110 axis2_status_t (AXIS2_CALL *
00111 write_extension_mapper)( w2c_schema_writer_t *writer,
00112 const axis2_env_t *env,
00113 axis2_hash_t *meta_info_array);
00114
00115
00116 axis2_char_t* (AXIS2_CALL *
00117 get_extension_mapper_package_name)(w2c_schema_writer_t *writer,
00118 const axis2_env_t *env);
00119
00120
00121 };
00122
00123 AXIS2_DECLARE_DATA struct w2c_schema_writer
00124 {
00125 struct w2c_schema_writer_ops *ops;
00126 };
00127
00130
00131
00132 #define W2C_SCHEMA_WRITER_FREE(schema_writer, env) \
00133 ((schema_writer)->ops->free (schema_writer, env))
00134
00135 #define W2C_SCHEMA_WRITER_GET_MODEL_MAP(schema_writer, env) \
00136 ((schema_writer)->ops->get_model_map(schema_writer, env))
00137
00138 #define W2C_SCHEMA_WRITER_INIT(schema_writer, env, options, template_name, base_typemap) \
00139 ((schema_writer)->ops->init(schema_writer, env, options, template_name, base_typemap))
00140
00141 #define W2C_SCHEMA_WRITER_WRITE_ELEMENT(schema_writer, env, element, typemap, meta_info) \
00142 ((schema_writer)->ops->write_element(schema_writer, env, element, typemap, meta_info))
00143
00144 #define W2C_SCHEMA_WRITER_WRITE_COMPLEX_TYPE(schema_writer, env, type, typemap, meta_info) \
00145 ((schema_writer)->ops->write_complex_type(schema_writer, env, type, typemap, meta_info))
00146
00147 #define W2C_SCHEMA_WRITER_WRITE_BATCH(schema_writer, env) \
00148 ((schema_writer)->ops->write_batch(schema_writer, env))
00149
00150 #define W2C_SCHEMA_WRITER_WRITE_SIMPLE_TYPE(schema_writer, env, type, typemap, meta_info) \
00151 ((schema_writer)->ops->write_simple_type(schema_writer, env, type, typemap, meta_info))
00152
00153 #define W2C_SCHEMA_WRITER_MAKE_FULLY_QUALIFIED_CLASS_NAME(schema_writer, env, qname) \
00154 ((schema_writer)->ops->make_fully_qualified_class_name(schema_writer, env, qname))
00155
00156 #define W2C_SCHEMA_WRITER_REGISTER_EXTENSION_MAPPER_PACKAGENAME(schema_writer, env, package) \
00157 ((schema_writer)->ops->register_extension_mapper_packagename(schema_writer, env, package))
00158
00159 #define W2C_SCHEMA_WRITER_WRITE_EXTENSION_MAPPER(schema_writer, env, array) \
00160 ((schema_writer)->ops->write_extension_mapper(schema_writer, env, array))
00161
00162 #define W2C_SCHEMA_WRITER_GET_EXTENSION_MAPPER_PACKAGE_NAME(schema_writer, env) \
00163 ((schema_writer)->ops->get_extension_mapper_package_name(schema_writer, env))
00164
00167 #ifdef __cplusplus
00168 }
00169 #endif
00170
00171 #endif