00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
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