00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef XML_SCHEMA_CONTENT_TYPE_H
00018 #define XML_SCHEMA_CONTENT_TYPE_H
00019
00028 #include <xml_schema_enum.h>
00029
00030
00031
00032 #ifdef __cplusplus
00033 extern "C"
00034 {
00035 #endif
00036
00042 typedef struct xml_schema_content_type
00043 xml_schema_content_type_t;
00044 typedef struct xml_schema_content_type_ops
00045 xml_schema_content_type_ops_t;
00046
00047 struct xml_schema_content_type_ops
00048 {
00053 axis2_status_t (AXIS2_CALL *
00054 free) (void *content_type,
00055 const axis2_env_t *env);
00056
00057 axis2_hash_t *(AXIS2_CALL *
00058 super_objs) (void *content_type,
00059 const axis2_env_t *env);
00060
00061 xml_schema_types_t (AXIS2_CALL *
00062 get_type) (void *content_type,
00063 const axis2_env_t *env);
00064
00065 xml_schema_enum_t *(AXIS2_CALL *
00066 get_base_impl) (void *content_type,
00067 const axis2_env_t *env);
00068
00069 axis2_array_list_t *(AXIS2_CALL *
00070 get_values)(void *content_type,
00071 const axis2_env_t *env);
00072
00073 };
00074
00075 struct xml_schema_content_type
00076 {
00077 xml_schema_enum_t base;
00078 xml_schema_content_type_ops_t *ops;
00079 };
00080
00081 AXIS2_EXTERN xml_schema_content_type_t * AXIS2_CALL
00082 xml_schema_content_type_create(const axis2_env_t *env,
00083 axis2_char_t* value);
00084
00085
00086 #define XML_SCHEMA_CONTENT_TYPE_FREE(content_type, env) \
00087 (((xml_schema_content_type_t *) content_type)->ops->free(content_type, env))
00088
00089 #define XML_SCHEMA_CONTENT_TYPE_GET_BASE_IMPL(content_type, env) \
00090 (((xml_schema_content_type_t *) content_type)->ops->get_base_impl(content_type, env))
00091
00092 #define XML_SCHEMA_CONTENT_TYPE_GET_VALUES(content_type, env) \
00093 (((xml_schema_content_type_t *) content_type)->ops->values(content_type, env))
00094
00095 #define XML_SCHEMA_CONTENT_TYPE_SUPER_OBJS(content_type, env) \
00096 (((xml_schema_content_type_t *) content_type)->ops->super_objs(content_type, env))
00097
00098 #define XML_SCHEMA_CONTENT_TYPE_GET_TYPE(content_type, env) \
00099 (((xml_schema_content_type_t *) content_type) \
00100 content_type)->ops->get_type(content_type, env))
00101
00103 #ifdef __cplusplus
00104 }
00105 #endif
00106 #endif