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 void AXIS2_CALL
00111 axiom_node_free_tree(
00112 axiom_node_t * om_node,
00113 const axutil_env_t * env);
00114
00123 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00124 axiom_node_add_child(
00125 axiom_node_t * om_node,
00126 const axutil_env_t * env,
00127 axiom_node_t * child);
00128
00136 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00137 axiom_node_detach(
00138 axiom_node_t * om_node,
00139 const axutil_env_t * env);
00140
00148 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00149 axiom_node_insert_sibling_after(
00150 axiom_node_t * om_node,
00151 const axutil_env_t * env,
00152 axiom_node_t * node_to_insert);
00153
00161 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00162 axiom_node_insert_sibling_before(
00163 axiom_node_t * om_node,
00164 const axutil_env_t * env,
00165 axiom_node_t * node_to_insert);
00166
00175 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00176 axiom_node_serialize(
00177 axiom_node_t * om_node,
00178 const axutil_env_t * env,
00179 struct axiom_output *om_output);
00180
00188 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00189 axiom_node_get_parent(
00190 axiom_node_t * om_node,
00191 const axutil_env_t * env);
00192
00200 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00201 axiom_node_get_first_child(
00202 axiom_node_t * om_node,
00203 const axutil_env_t * env);
00204
00211 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00212 axiom_node_get_first_element(
00213 axiom_node_t * om_node,
00214 const axutil_env_t * env);
00215
00222 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00223 axiom_node_get_last_child(
00224 axiom_node_t * om_node,
00225 const axutil_env_t * env);
00226
00234 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00235 axiom_node_get_previous_sibling(
00236 axiom_node_t * om_node,
00237 const axutil_env_t * env);
00238
00245 AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00246 axiom_node_get_next_sibling(
00247 axiom_node_t * om_node,
00248 const axutil_env_t * env);
00249
00258 AXIS2_EXTERN axiom_types_t AXIS2_CALL
00259 axiom_node_get_node_type(
00260 axiom_node_t * om_node,
00261 const axutil_env_t * env);
00262
00272 AXIS2_EXTERN void *AXIS2_CALL
00273 axiom_node_get_data_element(
00274 axiom_node_t * om_node,
00275 const axutil_env_t * env);
00276
00284 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00285 axiom_node_is_complete(
00286 axiom_node_t * om_node,
00287 const axutil_env_t * env);
00288
00297 AXIS2_EXTERN struct axiom_document *AXIS2_CALL
00298 axiom_node_get_document(
00299 axiom_node_t * om_node,
00300 const axutil_env_t * env);
00301
00302 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00303 axiom_node_to_string(
00304 axiom_node_t * om_node,
00305 const axutil_env_t * env);
00306
00307 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00308 axiom_node_serialize_sub_tree(
00309 axiom_node_t * om_node,
00310 const axutil_env_t * env,
00311 struct axiom_output *om_output);
00312
00313 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00314 axiom_node_sub_tree_to_string(
00315 axiom_node_t * om_node,
00316 const axutil_env_t * env);
00317
00322 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00323 axiom_node_to_string_non_optimized(
00324 axiom_node_t * om_node,
00325 const axutil_env_t * env);
00328 #ifdef __cplusplus
00329 }
00330 #endif
00331
00332 #endif