00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef AXIOM_NODE_H
00020 #define AXIOM_NODE_H
00021
00039 #include <axutil_env.h>
00040 #include <axutil_utils.h>
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;
00051
00061 typedef enum axiom_types_t
00062 {
00063
00065 AXIOM_INVALID = 0,
00066
00068 AXIOM_DOCUMENT,
00069
00071 AXIOM_ELEMENT,
00072
00074 AXIOM_DOCTYPE,
00075
00077 AXIOM_COMMENT,
00078
00080 AXIOM_ATTRIBUTE,
00081
00083 AXIOM_NAMESPACE,
00084
00086 AXIOM_PROCESSING_INSTRUCTION,
00087
00089 AXIOM_TEXT,
00090
00092 AXIOM_DATA_SOURCE
00093 } axiom_types_t;
00094
00100 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00101 axiom_node_create(
00102 const axutil_env_t * env);
00103
00110 AXIS2_EXTERN axiom_node_t* AXIS2_CALL
00111 axiom_node_create_from_buffer(
00112 const axutil_env_t * env,
00113 axis2_char_t *buffer);
00114
00115
00124 AXIS2_EXTERN void AXIS2_CALL
00125 axiom_node_free_tree(
00126 axiom_node_t * om_node,
00127 const axutil_env_t * env);
00128
00137 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00138 axiom_node_add_child(
00139 axiom_node_t * om_node,
00140 const axutil_env_t * env,
00141 axiom_node_t * child);
00142
00150 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00151 axiom_node_detach(
00152 axiom_node_t * om_node,
00153 const axutil_env_t * env);
00154
00162 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00163 axiom_node_insert_sibling_after(
00164 axiom_node_t * om_node,
00165 const axutil_env_t * env,
00166 axiom_node_t * node_to_insert);
00167
00175 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00176 axiom_node_insert_sibling_before(
00177 axiom_node_t * om_node,
00178 const axutil_env_t * env,
00179 axiom_node_t * node_to_insert);
00180
00189 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00190 axiom_node_serialize(
00191 axiom_node_t * om_node,
00192 const axutil_env_t * env,
00193 struct axiom_output *om_output);
00194
00202 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00203 axiom_node_get_parent(
00204 axiom_node_t * om_node,
00205 const axutil_env_t * env);
00206
00214 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00215 axiom_node_get_first_child(
00216 axiom_node_t * om_node,
00217 const axutil_env_t * env);
00218
00225 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00226 axiom_node_get_first_element(
00227 axiom_node_t * om_node,
00228 const axutil_env_t * env);
00229
00236 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00237 axiom_node_get_last_child(
00238 axiom_node_t * om_node,
00239 const axutil_env_t * env);
00240
00248 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00249 axiom_node_get_previous_sibling(
00250 axiom_node_t * om_node,
00251 const axutil_env_t * env);
00252
00259 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00260 axiom_node_get_next_sibling(
00261 axiom_node_t * om_node,
00262 const axutil_env_t * env);
00263
00272 AXIS2_EXTERN axiom_types_t AXIS2_CALL
00273 axiom_node_get_node_type(
00274 axiom_node_t * om_node,
00275 const axutil_env_t * env);
00276
00286 AXIS2_EXTERN void *AXIS2_CALL
00287 axiom_node_get_data_element(
00288 axiom_node_t * om_node,
00289 const axutil_env_t * env);
00290
00298 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00299 axiom_node_is_complete(
00300 axiom_node_t * om_node,
00301 const axutil_env_t * env);
00302
00313 AXIS2_EXTERN struct axiom_document *AXIS2_CALL
00314 axiom_node_get_document(
00315 axiom_node_t * om_node,
00316 const axutil_env_t * env);
00317
00325 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00326 axiom_node_to_string(
00327 axiom_node_t * om_node,
00328 const axutil_env_t * env);
00329
00338 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00339 axiom_node_serialize_sub_tree(
00340 axiom_node_t * om_node,
00341 const axutil_env_t * env,
00342 struct axiom_output *om_output);
00343
00351 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00352 axiom_node_sub_tree_to_string(
00353 axiom_node_t * om_node,
00354 const axutil_env_t * env);
00355
00364 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00365 axiom_node_to_string_non_optimized(
00366 axiom_node_t * om_node,
00367 const axutil_env_t * env);
00370 #ifdef __cplusplus
00371 }
00372 #endif
00373
00374 #endif