00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef XML_SCHEMA_GROUP_BASE_H
00019 #define XML_SCHEMA_GROUP_BASE_H
00020
00029 #include <xml_schema_defines.h>
00030 #include <xml_schema_particle.h>
00031 #include <xml_schema_obj_collection.h>
00032
00038 typedef struct xml_schema_group_base
00039 xml_schema_group_base_t;
00040 typedef struct xml_schema_group_base_ops
00041 xml_schema_group_base_ops_t;
00042
00043 #ifdef __cplusplus
00044 extern "C"
00045 {
00046 #endif
00047
00048 struct xml_schema_group_base_ops
00049 {
00054 axis2_status_t (AXIS2_CALL *
00055 free) (void *group_base,
00056 const axis2_env_t *env);
00057
00058 axis2_hash_t *(AXIS2_CALL *
00059 super_objs) (void *group_base,
00060 const axis2_env_t *env);
00061
00062 xml_schema_types_t (AXIS2_CALL *
00063 get_type) (void *group_base,
00064 const axis2_env_t *env);
00065
00066 xml_schema_particle_t *(AXIS2_CALL *
00067 get_base_impl) (void *group_base,
00068 const axis2_env_t *env);
00069
00070 xml_schema_obj_collection_t *(AXIS2_CALL *
00071 get_items)(void *group_base,
00072 const axis2_env_t *env);
00076 axis2_status_t (AXIS2_CALL *
00077 to_string)(void *group_base,
00078 const axis2_env_t *env,
00079 axis2_char_t *prefix,
00080 int tab);
00081
00082
00083 };
00084
00085 struct xml_schema_group_base
00086 {
00087 xml_schema_particle_t base;
00088 xml_schema_group_base_ops_t *ops;
00089 };
00090
00091
00092 AXIS2_EXTERN xml_schema_group_base_t * AXIS2_CALL
00093 xml_schema_group_base_create(const axis2_env_t *env);
00094
00095 AXIS2_EXTERN xml_schema_group_base_t * AXIS2_CALL
00096 xml_schema_all_create(const axis2_env_t *env);
00097
00098 AXIS2_EXTERN xml_schema_group_base_t * AXIS2_CALL
00099 xml_schema_sequence_create(const axis2_env_t *env);
00100
00101 AXIS2_EXTERN xml_schema_group_base_t * AXIS2_CALL
00102 xml_schema_choice_create(const axis2_env_t *env);
00103
00104
00105 #define XML_SCHEMA_GROUP_BASE_FREE(group_base, env) \
00106 (((xml_schema_group_base_t *) group_base)->ops->free(group_base, env))
00107
00108 #define XML_SCHEMA_GROUP_BASE_SUPER_OBJS(group_base, env) \
00109 (((xml_schema_group_base_t *) group_base)->ops->super_objs(group_base, env))
00110
00111 #define XML_SCHEMA_GROUP_BASE_GET_TYPE(group_base, env) \
00112 (((xml_schema_group_base_t *) group_base)->ops->get_type(group_base, env))
00113
00114 #define XML_SCHEMA_GROUP_BASE_GET_BASE_IMPL(group_base, env) \
00115 (((xml_schema_group_base_t *) group_base)->ops->get_base_impl(group_base, env))
00116
00117 #define XML_SCHEMA_GROUP_BASE_GET_ITEMS(group_base, env) \
00118 (((xml_schema_group_base_t *) group_base)->ops->get_items(group_base, env))
00119
00120 #define XML_SCHEMA_GROUP_BASE_TO_STRING(group_base, env, prefix, tab) \
00121 (((xml_schema_group_base_t *) group_base)->ops->to_string(group_base, \
00122 env, prefix, tab))
00123
00124
00126 #ifdef __cplusplus
00127 }
00128 #endif
00129 #endif