w2c_schema_writer.h

Go to the documentation of this file.
00001 /*
00002  * Copyright 2004,2005 The Apache Software Foundation.
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *      http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
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 /*************************** Function macros **********************************/
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 /* W2C_SCHEMA_WRITER_H */

Generated on Thu Oct 26 21:11:24 2006 for Axis2/C by  doxygen 1.4.7