xml_schema_data_type.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 XML_SCHEMA_DATA_TYPE_H
00018 #define XML_SCHEMA_DATA_TYPE_H
00019 
00025 #include <axis2_allocator.h>
00026 #include <axis2_env.h>
00027 #include <axis2_error.h>
00028 #include <axis2_string.h>
00029 #include <axis2_array_list.h>
00030 #include <axis2_hash.h>
00031 
00032 #ifdef __cplusplus
00033 extern "C"
00034 {
00035 #endif
00036 
00037 typedef struct xml_schema_data_type xml_schema_data_type_t;
00038 typedef struct xml_schema_data_type_ops xml_schema_data_type_ops_t;
00039 struct xml_schema_tokenized_type;
00040 
00046 struct xml_schema_data_type_ops
00047 {
00052     axis2_status_t (AXIS2_CALL *
00053     free) (void *data_type,
00054             const axis2_env_t *env);
00055 
00056     void * (AXIS2_CALL *
00057     parse_value) (void *data_type,
00058                     const axis2_env_t *env,
00059                     void *input);
00060 
00061     void *(AXIS2_CALL *
00062     value_type) (void *data_type,
00063                     const axis2_env_t *env);
00064 
00065     struct xml_schema_tokenized_type *(AXIS2_CALL *
00066     tokenized_type) (void *data_type,
00067                         const axis2_env_t *env);
00068 
00069 };
00070 
00071 struct xml_schema_data_type
00072 {
00073     xml_schema_data_type_ops_t *ops;
00074 };
00075 
00076 AXIS2_EXTERN xml_schema_data_type_t * AXIS2_CALL
00077 xml_schema_data_type_create(const axis2_env_t *env);
00078 
00079 #define XML_SCHEMA_DATA_TYPE_FREE(data_type, env) \
00080       (((xml_schema_data_type_t *) data_type)->ops->free (data_type, env))
00081 
00082 #define XML_SCHEMA_DATA_TYPE_PARSE_VALUE(data_type, env, input) \
00083       (((xml_schema_data_type_t *) data_type)->ops->parse_value (\
00084         data_type, env, input))
00085 
00086 #define XML_SCHEMA_DATA_TYPE_VALUE_TYPE(data_type, env, line_num) \
00087       (((xml_schema_data_type_t *) data_type)->ops->value_type (\
00088         data_type, env, line_num))
00089 
00090 #define XML_SCHEMA_DATA_TYPE_TOKENIZED_TYPE(data_type, env) \
00091       (((xml_schema_data_type_t *) data_type)->ops->tokenized_type (\
00092         data_type, env))
00093 
00095 #ifdef __cplusplus
00096 }
00097 #endif
00098 #endif /* XML_SCHEMA_DATA_TYPE_H */

Generated on Tue Oct 3 18:21:11 2006 for Axis2/C by  doxygen 1.4.7