00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef XML_SCHEMA_ANNOTATION_H
00018 #define XML_SCHEMA_ANNOTATION_H
00019
00025 #include <xml_schema_defines.h>
00026 #include <xml_schema_obj.h>
00027 #include <xml_schema_obj_collection.h>
00028 #include <axis2_hash.h>
00029
00035 typedef struct xml_schema_annotation xml_schema_annotation_t;
00036 typedef struct xml_schema_annotation_ops xml_schema_annotation_ops_t;
00037
00038 #ifdef __cplusplus
00039 extern "C"
00040 {
00041 #endif
00042
00043 struct xml_schema_annotation_ops
00044 {
00049 axis2_status_t (AXIS2_CALL *
00050 free) (void *annotation,
00051 const axis2_env_t *env);
00052
00053 axis2_hash_t *(AXIS2_CALL *
00054 super_objs) (
00055 void *annotation,
00056 const axis2_env_t *env);
00057
00058 xml_schema_types_t (AXIS2_CALL *
00059 get_type) (
00060 void *annotation,
00061 const axis2_env_t *env);
00062
00063 xml_schema_obj_t *(AXIS2_CALL *
00064 get_base_impl) (void *annotation,
00065 const axis2_env_t *env);
00066
00067 xml_schema_obj_collection_t *(AXIS2_CALL *
00068 get_items)(void *annotation,
00069 const axis2_env_t *env);
00070
00071 };
00072
00073 struct xml_schema_annotation
00074 {
00075 xml_schema_obj_t base;
00076 xml_schema_annotation_ops_t *ops;
00077 };
00078
00079 AXIS2_EXTERN xml_schema_annotation_t * AXIS2_CALL
00080 xml_schema_annotation_create(const axis2_env_t *env);
00081
00082
00083
00084 #define XML_SCHEMA_ANNOTATION_FREE(annotation, env) \
00085 (((xml_schema_annotation_t *) annotation)->ops->\
00086 free(annotation, env))
00087
00088 #define XML_SCHEMA_ANNOTATION_SUPER_OBJS(annotation, env) \
00089 (((xml_schema_annotation_t *) annotation)->ops->\
00090 super_objs(annotation, env))
00091
00092 #define XML_SCHEMA_ANNOTATION_GET_TYPE(annotation, env) \
00093 (((xml_schema_annotation_t *) annotation)->ops->\
00094 get_type(annotation, env))
00095
00096 #define XML_SCHEMA_ANNOTATION_GET_ITEMS(annotation, env) \
00097 (((xml_schema_annotation_t *) annotation)->ops->\
00098 get_items(annotation, env))
00099
00100 #define XML_SCHEMA_ANNOTATION_GET_BASE_IMPL(annotation, env) \
00101 (((xml_schema_annotation_t *) annotation)->ops->\
00102 get_base_impl(annotation, env))
00103
00104
00106 #ifdef __cplusplus
00107 }
00108 #endif
00109 #endif