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
00035 typedef struct xml_schema_content_type
00036 xml_schema_content_type_t;
00037 typedef struct xml_schema_content_type_ops
00038 xml_schema_content_type_ops_t;
00039
00040 #ifdef __cplusplus
00041 extern "C"
00042 {
00043 #endif
00044
00045 struct xml_schema_content_type_ops
00046 {
00051 axis2_status_t (AXIS2_CALL *
00052 free) (void *content_type,
00053 const axis2_env_t *env);
00054
00055 axis2_hash_t *(AXIS2_CALL *
00056 super_objs) (void *content_type,
00057 const axis2_env_t *env);
00058
00059 xml_schema_types_t (AXIS2_CALL *
00060 get_type) (void *content_type,
00061 const axis2_env_t *env);
00062
00063 xml_schema_enum_t *(AXIS2_CALL *
00064 get_base_impl) (void *content_type,
00065 const axis2_env_t *env);
00066
00067 axis2_array_list_t *(AXIS2_CALL *
00068 get_values)(void *content_type,
00069 const axis2_env_t *env);
00070
00071 };
00072
00073 struct xml_schema_content_type
00074 {
00075 xml_schema_enum_t base;
00076 xml_schema_content_type_ops_t *ops;
00077 };
00078
00079 AXIS2_EXTERN xml_schema_content_type_t * AXIS2_CALL
00080 xml_schema_content_type_create(const axis2_env_t *env,
00081 axis2_char_t* value);
00082
00083
00084 #define XML_SCHEMA_CONTENT_TYPE_FREE(content_type, env) \
00085 (((xml_schema_content_type_t *) content_type)->ops->free(content_type, env))
00086
00087 #define XML_SCHEMA_CONTENT_TYPE_GET_BASE_IMPL(content_type, env) \
00088 (((xml_schema_content_type_t *) content_type)->ops->get_base_impl(content_type, env))
00089
00090 #define XML_SCHEMA_CONTENT_TYPE_GET_VALUES(content_type, env) \
00091 (((xml_schema_content_type_t *) content_type)->ops->values(content_type, env))
00092
00093 #define XML_SCHEMA_CONTENT_TYPE_SUPER_OBJS(content_type, env) \
00094 (((xml_schema_content_type_t *) content_type)->ops->super_objs(content_type, env))
00095
00096 #define XML_SCHEMA_CONTENT_TYPE_GET_TYPE(content_type, env) \
00097 (((xml_schema_content_type_t *) content_type) \
00098 content_type)->ops->get_type(content_type, env))
00099
00101 #ifdef __cplusplus
00102 }
00103 #endif
00104 #endif