00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef XML_SCHEMA_XPATH_H
00019 #define XML_SCHEMA_XPATH_H
00020
00030 #include <xml_schema_annotated.h>
00031 #include <axiom_element.h>
00032 #include <axiom_node.h>
00033 #include <axis2_hash.h>
00034
00040 typedef struct xml_schema_xpath xml_schema_xpath_t;
00041 typedef struct xml_schema_xpath_ops xml_schema_xpath_ops_t;
00042
00043 #ifdef __cplusplus
00044 extern "C"
00045 {
00046 #endif
00047
00048 struct xml_schema_xpath_ops
00049 {
00054 axis2_status_t (AXIS2_CALL *
00055 free) (void *xpath,
00056 const axis2_env_t *env);
00057
00058 xml_schema_annotated_t *(AXIS2_CALL *
00059 get_base_impl) (void *xpath,
00060 const axis2_env_t *env);
00061
00062 xml_schema_types_t (AXIS2_CALL *
00063 get_type)(void *xpath,
00064 const axis2_env_t *env);
00065
00066 axis2_hash_t* (AXIS2_CALL *
00067 super_objs)(void *xpath,
00068 const axis2_env_t *env);
00069
00070 axis2_char_t *(AXIS2_CALL *
00071 get_xpath)(void *xpath,
00072 const axis2_env_t *env);
00073
00074 axis2_status_t (AXIS2_CALL *
00075 set_xpath)(void *xpath,
00076 const axis2_env_t *env,
00077 axis2_char_t *x_path);
00078
00079 };
00080
00081 struct xml_schema_xpath
00082 {
00083 xml_schema_annotated_t base;
00084 xml_schema_xpath_ops_t *ops;
00085 };
00086
00090 AXIS2_EXTERN xml_schema_xpath_t * AXIS2_CALL
00091 xml_schema_xpath_create(const axis2_env_t *env);
00092
00093
00094 #define XML_SCHEMA_XPATH_FREE(xpath, env) \
00095 (((xml_schema_xpath_t *) xpath)->ops->\
00096 free(xpath, env))
00097
00098 #define XML_SCHEMA_XPATH_GET_BASE_IMPL(xpath, env) \
00099 (((xml_schema_xpath_t *) xpath)->ops->\
00100 get_base_impl(xpath, env))
00101
00102 #define XML_SCHEMA_XPATH_GET_TYPE(xpath, env) \
00103 (((xml_schema_xpath_t *) xpath)->ops->\
00104 get_type(xpath, env))
00105
00106 #define XML_SCHEMA_XPATH_SUPER_OBJS(xpath, env) \
00107 (((xml_schema_xpath_t *) xpath)->ops->\
00108 super_objs(xpath, env))
00109
00110 #define XML_SCHEMA_XPATH_GET_XPATH(xpath, env) \
00111 (((xml_schema_xpath_t *) xpath)->ops->\
00112 get_xpath(xpath, env))
00113
00114 #define XML_SCHEMA_XPATH_SET_XPATH(xpath, env, x_path) \
00115 (((xml_schema_xpath_t *) xpath)->ops->\
00116 set_xpath(xpath, env, x_path))
00117
00119 #ifdef __cplusplus
00120 }
00121 #endif
00122 #endif