00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIS2_QNAME_H
00018 #define AXIS2_QNAME_H
00019
00025 #include <axis2_defines.h>
00026 #include <axis2_env.h>
00027
00028 #include <axis2_string.h>
00029
00030 struct axis2_qname;
00031 struct axis2_qname_ops;
00032
00033 static const axis2_char_t XML_NAMESPACE_URI[] =
00034 "http://www.w3c.org/XML/1998/namespace";
00035
00048 AXIS2_DECLARE_DATA typedef struct axis2_qname_ops
00049 {
00054 axis2_status_t (AXIS2_CALL *free) (struct axis2_qname * qname,
00055 axis2_env_t **env);
00056
00064 axis2_bool_t (AXIS2_CALL *equals) (struct axis2_qname * qname,
00065 axis2_env_t **env,
00066 struct axis2_qname * qname1);
00074 struct axis2_qname* (AXIS2_CALL *clone)(struct axis2_qname *qname,
00075 axis2_env_t **env);
00076
00077 axis2_char_t* (AXIS2_CALL *get_uri)(struct axis2_qname *qname,
00078 axis2_env_t **env);
00079
00080 axis2_char_t* (AXIS2_CALL *get_prefix)(struct axis2_qname *qname,
00081 axis2_env_t **env);
00082
00083 axis2_char_t* (AXIS2_CALL *get_localpart)(struct axis2_qname *qname,
00084 axis2_env_t **env);
00085
00086 axis2_status_t (AXIS2_CALL *set_uri)(struct axis2_qname *qname,
00087 axis2_env_t **env,
00088 const axis2_char_t *uri);
00089
00090 axis2_status_t (AXIS2_CALL *set_prefix)(struct axis2_qname *qname,
00091 axis2_env_t **env,
00092 const axis2_char_t *prefix);
00093
00094 axis2_status_t (AXIS2_CALL *set_localpart)(struct axis2_qname *qname,
00095 axis2_env_t **env,
00096 const axis2_char_t *localpart);
00097
00098
00099 } axis2_qname_ops_t;
00100
00101 typedef struct axis2_qname
00102 {
00104 axis2_qname_ops_t *ops;
00105 } axis2_qname_t;
00106
00118 AXIS2_DECLARE(axis2_qname_t *)
00119 axis2_qname_create (axis2_env_t **env,
00120 const axis2_char_t * localpart,
00121 const axis2_char_t * namespace_uri,
00122 const axis2_char_t * prefix);
00123
00124
00125 #define AXIS2_QNAME_FREE(qname, env) \
00126 ((qname)->ops->free(qname,env))
00127
00128 #define AXIS2_QNAME_EQUALS(qname, env, qname1) \
00129 ((qname)->ops->equals(qname, env, qname1))
00130
00131 #define AXIS2_QNAME_CLONE(qname, env) \
00132 ((qname)->ops->clone(qname, env))
00133
00134 #define AXIS2_QNAME_GET_URI(qname, env) \
00135 ((qname)->ops->get_uri(qname, env))
00136
00137 #define AXIS2_QNAME_GET_PREFIX(qname, env) \
00138 ((qname)->ops->get_prefix(qname, env))
00139
00140 #define AXIS2_QNAME_GET_LOCALPART(qname, env) \
00141 ((qname)->ops->get_localpart(qname, env))
00142
00143 #define AXIS2_QNAME_SET_PREFIX(qname, env, prefix) \
00144 ((qname)->ops->set_prefix(qname, env, prefix))
00145
00146 #define AXIS2_QNAME_SET_URI(qname, env, prefix) \
00147 ((qname)->ops->set_uri(qname, env, uri))
00148
00149 #define AXIS2_QNAME_SET_LOCALPART(qname, env,localpart) \
00150 ((qname)->ops->set_localpart(qname, env, localpart))
00151
00155 #endif