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
00112 AXIS2_EXTERN void AXIS2_CALL
00113 axiom_node_free_tree(
00114 axiom_node_t * om_node,
00115 const axutil_env_t * env);
00116
00125 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00126 axiom_node_add_child(
00127 axiom_node_t * om_node,
00128 const axutil_env_t * env,
00129 axiom_node_t * child);
00130
00138 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00139 axiom_node_detach(
00140 axiom_node_t * om_node,
00141 const axutil_env_t * env);
00142
00150 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00151 axiom_node_insert_sibling_after(
00152 axiom_node_t * om_node,
00153 const axutil_env_t * env,
00154 axiom_node_t * node_to_insert);
00155
00163 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00164 axiom_node_insert_sibling_before(
00165 axiom_node_t * om_node,
00166 const axutil_env_t * env,
00167 axiom_node_t * node_to_insert);
00168
00177 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00178 axiom_node_serialize(
00179 axiom_node_t * om_node,
00180 const axutil_env_t * env,
00181 struct axiom_output *om_output);
00182
00190 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00191 axiom_node_get_parent(
00192 axiom_node_t * om_node,
00193 const axutil_env_t * env);
00194
00202 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00203 axiom_node_get_first_child(
00204 axiom_node_t * om_node,
00205 const axutil_env_t * env);
00206
00213 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00214 axiom_node_get_first_element(
00215 axiom_node_t * om_node,
00216 const axutil_env_t * env);
00217
00224 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00225 axiom_node_get_last_child(
00226 axiom_node_t * om_node,
00227 const axutil_env_t * env);
00228
00236 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00237 axiom_node_get_previous_sibling(
00238 axiom_node_t * om_node,
00239 const axutil_env_t * env);
00240
00247 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00248 axiom_node_get_next_sibling(
00249 axiom_node_t * om_node,
00250 const axutil_env_t * env);
00251
00260 AXIS2_EXTERN axiom_types_t AXIS2_CALL
00261 axiom_node_get_node_type(
00262 axiom_node_t * om_node,
00263 const axutil_env_t * env);
00264
00274 AXIS2_EXTERN void *AXIS2_CALL
00275 axiom_node_get_data_element(
00276 axiom_node_t * om_node,
00277 const axutil_env_t * env);
00278
00286 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00287 axiom_node_is_complete(
00288 axiom_node_t * om_node,
00289 const axutil_env_t * env);
00290
00301 AXIS2_EXTERN struct axiom_document *AXIS2_CALL
00302 axiom_node_get_document(
00303 axiom_node_t * om_node,
00304 const axutil_env_t * env);
00305
00313 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00314 axiom_node_to_string(
00315 axiom_node_t * om_node,
00316 const axutil_env_t * env);
00317
00326 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00327 axiom_node_serialize_sub_tree(
00328 axiom_node_t * om_node,
00329 const axutil_env_t * env,
00330 struct axiom_output *om_output);
00331
00339 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00340 axiom_node_sub_tree_to_string(
00341 axiom_node_t * om_node,
00342 const axutil_env_t * env);
00343
00352 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00353 axiom_node_to_string_non_optimized(
00354 axiom_node_t * om_node,
00355 const axutil_env_t * env);
00358 #ifdef __cplusplus
00359 }
00360 #endif
00361
00362 #endif