00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef XML_SCHEMA_GROUP_REF_H
00018 #define XML_SCHEMA_GROUP_REF_H
00019
00028 #include <xml_schema_defines.h>
00029 #include <xml_schema_particle.h>
00030 #include <axis2_hash.h>
00031 #include <axis2_qname.h>
00032
00038 typedef struct xml_schema_group_ref xml_schema_group_ref_t;
00039 typedef struct xml_schema_group_ref_ops xml_schema_group_ref_ops_t;
00040 struct xml_schema_group_base;
00041
00042 #ifdef __cplusplus
00043 extern "C"
00044 {
00045 #endif
00046
00047 struct xml_schema_group_ref_ops
00048 {
00049 axis2_status_t (AXIS2_CALL *
00050 free) (void *group_ref,
00051 const axis2_env_t *env);
00052
00053 axis2_hash_t *(AXIS2_CALL *
00054 super_objs) (
00055 void *group_ref,
00056 const axis2_env_t *env);
00057
00058 xml_schema_types_t (AXIS2_CALL *
00059 get_type) (
00060 void *group_ref,
00061 const axis2_env_t *env);
00062
00063 xml_schema_particle_t *(AXIS2_CALL *
00064 get_base_impl) (void *group_ref,
00065 const axis2_env_t *env);
00066
00067 axis2_qname_t *(AXIS2_CALL *
00068 get_ref_qname)(void *group_ref,
00069 const axis2_env_t *env);
00070
00071 axis2_status_t (AXIS2_CALL *
00072 set_ref_qname)(void *group_ref,
00073 const axis2_env_t *env,
00074 axis2_qname_t *ref_qname);
00075
00076 void *(AXIS2_CALL *
00077 get_particle)(void *group_ref,
00078 const axis2_env_t *env);
00079
00080 axis2_status_t (AXIS2_CALL *
00081 set_particle)(void *group_ref,
00082 const axis2_env_t *env,
00083 void *particle);
00084
00085
00086 };
00087
00088 struct xml_schema_group_ref
00089 {
00090 xml_schema_particle_t base;
00091 xml_schema_group_ref_ops_t *ops;
00092 };
00093
00097 AXIS2_EXTERN xml_schema_group_ref_t * AXIS2_CALL
00098 xml_schema_group_ref_create(const axis2_env_t *env);
00099
00100
00101 #define XML_SCHEMA_GROUP_REF_FREE(group_ref, env) \
00102 (((xml_schema_group_ref_t *) group_ref)->ops->\
00103 free(group_ref, env))
00104
00105 #define XML_SCHEMA_GROUP_REF_SUPER_OBJS(group_ref, env) \
00106 (((xml_schema_group_ref_t *) group_ref)->ops->super_objs(group_ref, env))
00107
00108 #define XML_SCHEMA_GROUP_REF_GET_TYPE(group_ref, env) \
00109 (((xml_schema_group_ref_t *) group_ref)->ops->get_type(group_ref, env))
00110
00111 #define XML_SCHEMA_GROUP_REF_GET_BASE_IMPL(group_ref, env) \
00112 (((xml_schema_group_ref_t *) group_ref)->ops->\
00113 get_base_impl(group_ref, env))
00114
00115 #define XML_SCHEMA_GROUP_REF_GET_REF_QNAME(group_ref, env) \
00116 (((xml_schema_group_ref_t *) group_ref)->ops->\
00117 get_ref_qname(group_ref, env))
00118
00119 #define XML_SCHEMA_GROUP_REF_SET_REF_QNAME(group_ref, env, ref_qname) \
00120 (((xml_schema_group_ref_t *) group_ref)->ops->\
00121 set_ref_qname(group_ref, env, ref_qname))
00122
00123 #define XML_SCHEMA_GROUP_REF_GET_PARTICLE(group_ref, env) \
00124 (((xml_schema_group_ref_t *) group_ref)->ops->\
00125 get_particle(group_ref, env))
00126
00127 #define XML_SCHEMA_GROUP_REF_SET_PARTICLE(group_ref, env, particle) \
00128 (((xml_schema_group_ref_t *) group_ref)->ops->\
00129 set_particle(group_ref, env, particle))
00130
00131
00132
00134 #ifdef __cplusplus
00135 }
00136 #endif
00137 #endif