00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef WODEN_QNAME_OR_TOKEN_ANY_ATTR_H
00019 #define WODEN_QNAME_OR_TOKEN_ANY_ATTR_H
00020
00029 #include <woden.h>
00030 #include <woden_xml_attr.h>
00031 #include <axis2_array_list.h>
00032
00038 typedef struct woden_qname_or_token_any_attr
00039 woden_qname_or_token_any_attr_t;
00040 typedef struct woden_qname_or_token_any_attr_ops
00041 woden_qname_or_token_any_attr_ops_t;
00042 struct axiom_element;
00043 struct axiom_node;
00044
00045 #ifdef __cplusplus
00046 extern "C"
00047 {
00048 #endif
00049
00050 struct woden_qname_or_token_any_attr_ops
00051 {
00056 axis2_status_t (AXIS2_CALL *
00057 free) (
00058 void *token_attr,
00059 const axis2_env_t *env);
00060
00061 axis2_status_t (AXIS2_CALL *
00062 to_qname_or_token_any_attr_free) (
00063 void *token_attr,
00064 const axis2_env_t *env);
00065
00066 woden_obj_types_t (AXIS2_CALL *
00067 type) (
00068 void *token_attr,
00069 const axis2_env_t *env);
00070
00074 woden_xml_attr_t *(AXIS2_CALL *
00075 get_base_impl) (
00076 void *token_attr,
00077 const axis2_env_t *env);
00078
00079
00080
00081
00082
00083 axis2_bool_t (AXIS2_CALL *
00084 is_qname) (
00085 void *token_attr,
00086 const axis2_env_t *env);
00087
00088 axis2_bool_t (AXIS2_CALL *
00089 is_token) (
00090 void *token_attr,
00091 const axis2_env_t *env);
00092
00093
00094 axis2_qname_t *(AXIS2_CALL *
00095 get_qname) (
00096 void *token_attr,
00097 const axis2_env_t *env);
00098
00099 axis2_char_t *(AXIS2_CALL *
00100 get_token) (
00101 void *token_attr,
00102 const axis2_env_t *env);
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114 void *(AXIS2_CALL *
00115 convert) (
00116 void *token_attr,
00117 const axis2_env_t *env,
00118 struct axiom_element *owner_el,
00119 struct axiom_node *owner_node,
00120 axis2_char_t *attr_value);
00121
00122 };
00123
00124 struct woden_qname_or_token_any_attr
00125 {
00126 woden_xml_attr_t base;
00127 woden_qname_or_token_any_attr_ops_t *ops;
00128 };
00129
00130
00131
00132
00133
00134 AXIS2_EXTERN woden_qname_or_token_any_attr_t * AXIS2_CALL
00135 woden_qname_or_token_any_attr_create(
00136 const axis2_env_t *env,
00137 struct axiom_element *owner_el,
00138 struct axiom_node *owner_node,
00139 axis2_qname_t *attr_type,
00140 axis2_char_t *attr_value);
00141
00142
00143
00144 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00145 woden_qname_or_token_any_attr_resolve_methods(
00146 woden_qname_or_token_any_attr_t *token_attr,
00147 const axis2_env_t *env,
00148 axis2_hash_t *methods);
00149
00150
00151 #define WODEN_QNAME_OR_TOKEN_ANY_ATTR_FREE(token_attr, env) \
00152 (((woden_qname_or_token_any_attr_t *) \
00153 token_attr)->ops->free(token_attr, env))
00154
00155 #define WODEN_QNAME_OR_TOKEN_ANY_ATTR_TYPE(token_attr, env) \
00156 (((woden_qname_or_token_any_attr_t *) token_attr)->ops->\
00157 type(token_attr, env))
00158
00159 #define WODEN_QNAME_OR_TOKEN_ANY_ATTR_GET_BASE_IMPL(token_attr, \
00160 env) \
00161 (((woden_qname_or_token_any_attr_t *) token_attr)->ops->\
00162 get_base_impl(token_attr, env))
00163
00164 #define WODEN_QNAME_OR_TOKEN_ANY_ATTR_IS_QNAME(token_attr, env) \
00165 (((woden_qname_or_token_any_attr_t *) token_attr)->ops->\
00166 is_qname(token_attr, env))
00167
00168 #define WODEN_QNAME_OR_TOKEN_ANY_ATTR_IS_TOKEN(token_attr, env) \
00169 (((woden_qname_or_token_any_attr_t *) \
00170 token_attr)->ops->is_token(token_attr, env))
00171
00172 #define WODEN_QNAME_OR_TOKEN_ANY_ATTR_GET_QNAME(token_attr, env) \
00173 (((woden_qname_or_token_any_attr_t *) token_attr)->ops->\
00174 get_qname(token_attr, env))
00175
00176 #define WODEN_QNAME_OR_TOKEN_ANY_ATTR_GET_TOKEN(token_attr, env) \
00177 (((woden_qname_or_token_any_attr_t *) token_attr)->ops->\
00178 get_token(token_attr, env))
00179
00180 #define WODEN_QNAME_OR_TOKEN_ANY_ATTR_CONVERT(token_attr, env) \
00181 (((woden_qname_or_token_any_attr_t *) token_attr)->ops->\
00182 convert(token_attr, env))
00183
00185 #ifdef __cplusplus
00186 }
00187 #endif
00188 #endif