00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef AXIOM_NODE_H
00019 #define AXIOM_NODE_H
00020
00038 #include <axutil_env.h>
00039 #include <axutil_utils.h>
00040
00041
00042 #ifdef __cplusplus
00043 extern "C"
00044 {
00045 #endif
00046
00047 typedef struct axiom_node axiom_node_t;
00048 struct axiom_output;
00049 struct axiom_document;
00050 struct axiom_stax_builder;
00060 typedef enum axiom_types_t
00061 {
00063 AXIOM_INVALID = 0,
00065 AXIOM_DOCUMENT,
00067 AXIOM_ELEMENT,
00069 AXIOM_DOCTYPE,
00071 AXIOM_COMMENT,
00073 AXIOM_ATTRIBUTE,
00075 AXIOM_NAMESPACE,
00077 AXIOM_PROCESSING_INSTRUCTION,
00079 AXIOM_TEXT,
00081 AXIOM_DATA_SOURCE
00082 } axiom_types_t;
00083
00089 AXIS2_EXTERN axiom_node_t * AXIS2_CALL
00090 axiom_node_create(const axutil_env_t *env);
00091
00098 AXIS2_EXTERN void AXIS2_CALL
00099 axiom_node_free_tree(axiom_node_t *om_node,
00100 const axutil_env_t *env);
00109 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00110 axiom_node_add_child(axiom_node_t* om_node,
00111 const axutil_env_t *env,
00112 axiom_node_t *child);
00113
00121 AXIS2_EXTERN axiom_node_t* AXIS2_CALL
00122 axiom_node_detach(axiom_node_t *om_node,
00123 const axutil_env_t *env);
00124
00132 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00133 axiom_node_insert_sibling_after(axiom_node_t *om_node,
00134 const axutil_env_t *env,
00135 axiom_node_t * node_to_insert);
00136
00144 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00145 axiom_node_insert_sibling_before(axiom_node_t *om_node,
00146 const axutil_env_t *env,
00147 axiom_node_t * node_to_insert);
00148
00157 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00158 axiom_node_serialize(axiom_node_t * om_node,
00159 const axutil_env_t *env,
00160 struct axiom_output *om_output);
00161
00169 AXIS2_EXTERN axiom_node_t * AXIS2_CALL
00170 axiom_node_get_parent(axiom_node_t *om_node,
00171 const axutil_env_t *env);
00172
00180 AXIS2_EXTERN axiom_node_t * AXIS2_CALL
00181 axiom_node_get_first_child(axiom_node_t *om_node,
00182 const axutil_env_t *env);
00183
00190 AXIS2_EXTERN axiom_node_t * AXIS2_CALL
00191 axiom_node_get_first_element(axiom_node_t *om_node,
00192 const axutil_env_t *env);
00193
00200 AXIS2_EXTERN axiom_node_t * AXIS2_CALL
00201 axiom_node_get_last_child(axiom_node_t *om_node,
00202 const axutil_env_t *env);
00210 AXIS2_EXTERN axiom_node_t * AXIS2_CALL
00211 axiom_node_get_previous_sibling(axiom_node_t *om_node,
00212 const axutil_env_t *env);
00219 AXIS2_EXTERN axiom_node_t * AXIS2_CALL
00220 axiom_node_get_next_sibling(axiom_node_t *om_node,
00221 const axutil_env_t *env);
00230 AXIS2_EXTERN axiom_types_t AXIS2_CALL
00231 axiom_node_get_node_type(axiom_node_t *om_node,
00232 const axutil_env_t *env);
00242 AXIS2_EXTERN void* AXIS2_CALL
00243 axiom_node_get_data_element(axiom_node_t *om_node,
00244 const axutil_env_t *env);
00252 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00253 axiom_node_is_complete(axiom_node_t *om_node,
00254 const axutil_env_t *env);
00263 AXIS2_EXTERN struct axiom_document* AXIS2_CALL
00264 axiom_node_get_document(axiom_node_t *om_node,
00265 const axutil_env_t *env);
00266
00267 AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00268 axiom_node_to_string(axiom_node_t *om_node,
00269 const axutil_env_t *env);
00270
00271 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00272 axiom_node_serialize_sub_tree(axiom_node_t *om_node,
00273 const axutil_env_t *env,
00274 struct axiom_output *om_output);
00275
00278 #ifdef __cplusplus
00279 }
00280 #endif
00281
00282 #endif