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