00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef AXIOM_ELEMENT_H
00019 #define AXIOM_ELEMENT_H
00020
00021 #include <axiom_namespace.h>
00022 #include <axiom_attribute.h>
00023 #include <axiom_output.h>
00024 #include <axiom_node.h>
00025 #include <axiom_children_iterator.h>
00026 #include <axiom_children_qname_iterator.h>
00027 #include <axiom_child_element_iterator.h>
00028 #include <axutil_hash.h>
00029 #include <axutil_utils.h>
00030
00031 #ifdef __cplusplus
00032 extern "C"
00033 {
00034 #endif
00035
00036 typedef struct axiom_element axiom_element_t;
00037
00056 AXIS2_EXTERN axiom_element_t * AXIS2_CALL
00057 axiom_element_create(const axutil_env_t *env,
00058 axiom_node_t *parent,
00059 const axis2_char_t *localname,
00060 axiom_namespace_t *ns,
00061 axiom_node_t **node);
00062
00073 AXIS2_EXTERN axiom_element_t * AXIS2_CALL
00074 axiom_element_create_with_qname(const axutil_env_t *env,
00075 axiom_node_t *parent,
00076 const axutil_qname_t *qname,
00077 axiom_node_t ** node);
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090 AXIS2_EXTERN axiom_namespace_t* AXIS2_CALL
00091 axiom_element_find_namespace(axiom_element_t *om_element,
00092 const axutil_env_t *env,
00093 axiom_node_t *node,
00094 const axis2_char_t *uri,
00095 const axis2_char_t *prefix);
00105 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00106 axiom_element_declare_namespace(axiom_element_t *om_element,
00107 const axutil_env_t *env,
00108 axiom_node_t *node,
00109 axiom_namespace_t * ns);
00110
00111 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00112 axiom_element_declare_namespace_assume_param_ownership(axiom_element_t *om_element,
00113 const axutil_env_t *env,
00114 axiom_namespace_t *ns);
00115
00126 AXIS2_EXTERN axiom_namespace_t * AXIS2_CALL
00127 axiom_element_find_namespace_with_qname(axiom_element_t *om_element,
00128 const axutil_env_t *env,
00129 axiom_node_t *node,
00130 axutil_qname_t *qname);
00131
00140 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00141 axiom_element_add_attribute(axiom_element_t *om_element,
00142 const axutil_env_t *env,
00143 axiom_attribute_t *attribute,
00144 axiom_node_t *node);
00145
00154 AXIS2_EXTERN axiom_attribute_t *AXIS2_CALL
00155 axiom_element_get_attribute(axiom_element_t *om_element,
00156 const axutil_env_t *env,
00157 axutil_qname_t * qname);
00158
00167 AXIS2_EXTERN axis2_char_t * AXIS2_CALL
00168 axiom_element_get_attribute_value(axiom_element_t *om_element,
00169 const axutil_env_t *env,
00170 axutil_qname_t * qname);
00171
00178 AXIS2_EXTERN void AXIS2_CALL
00179 axiom_element_free(axiom_element_t *element,
00180 const axutil_env_t *env);
00181
00189 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00190 axiom_element_serialize_start_part(axiom_element_t *om_element,
00191 const axutil_env_t *env,
00192 axiom_output_t * om_output,
00193 axiom_node_t *ele_node);
00194
00203 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00204 axiom_element_serialize_end_part(axiom_element_t *om_element,
00205 const axutil_env_t *env,
00206 axiom_output_t * om_output);
00216 AXIS2_EXTERN axiom_namespace_t* AXIS2_CALL
00217 axiom_element_find_declared_namespace(axiom_element_t *om_element,
00218 const axutil_env_t *env,
00219 const axis2_char_t *uri,
00220 const axis2_char_t *prefix);
00221
00222
00229 AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00230 axiom_element_get_localname(axiom_element_t *om_element,
00231 const axutil_env_t *env);
00240 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00241 axiom_element_set_localname(axiom_element_t *om_element,
00242 const axutil_env_t *env,
00243 const axis2_char_t *localname);
00252 AXIS2_EXTERN axiom_namespace_t * AXIS2_CALL
00253 axiom_element_get_namespace(axiom_element_t *om_element,
00254 const axutil_env_t *env,
00255 axiom_node_t *ele_node);
00264 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00265 axiom_element_set_namespace(axiom_element_t *om_element,
00266 const axutil_env_t *env,
00267 axiom_namespace_t *ns,
00268 axiom_node_t *node);
00269
00270 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00271 axiom_element_set_namespace_assume_param_ownership(axiom_element_t *om_element,
00272 const axutil_env_t *env,
00273 axiom_namespace_t *ns);
00281 AXIS2_EXTERN axutil_hash_t* AXIS2_CALL
00282 axiom_element_get_all_attributes(axiom_element_t *om_element,
00283 const axutil_env_t *env);
00291 AXIS2_EXTERN axutil_hash_t* AXIS2_CALL
00292 axiom_element_get_namespaces(axiom_element_t *om_element,
00293 const axutil_env_t *env);
00301 AXIS2_EXTERN axutil_qname_t* AXIS2_CALL
00302 axiom_element_get_qname(axiom_element_t *om_element,
00303 const axutil_env_t *env,
00304 axiom_node_t *ele_node);
00305
00310 AXIS2_EXTERN axiom_children_iterator_t* AXIS2_CALL
00311 axiom_element_get_children(axiom_element_t *om_element,
00312 const axutil_env_t *env,
00313 axiom_node_t *element_node);
00314
00326 AXIS2_EXTERN axiom_children_qname_iterator_t * AXIS2_CALL
00327 axiom_element_get_children_with_qname(axiom_element_t *om_element,
00328 const axutil_env_t *env,
00329 axutil_qname_t *element_qname,
00330 axiom_node_t* element_node);
00335 AXIS2_EXTERN axiom_element_t* AXIS2_CALL
00336 axiom_element_get_first_child_with_qname(axiom_element_t *om_element,
00337 const axutil_env_t *env,
00338 axutil_qname_t *element_qname,
00339 axiom_node_t* element_node,
00340 axiom_node_t **child_node);
00351 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00352 axiom_element_remove_attribute(axiom_element_t *om_element,
00353 const axutil_env_t *env,
00354 axiom_attribute_t *om_attribute);
00360 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00361 axiom_element_set_text(axiom_element_t *om_element,
00362 const axutil_env_t *env,
00363 const axis2_char_t *text,
00364 axiom_node_t *element_node);
00371 AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00372 axiom_element_get_text(axiom_element_t *om_element,
00373 const axutil_env_t *env,
00374 axiom_node_t *element_node);
00375
00381 AXIS2_EXTERN axiom_element_t* AXIS2_CALL
00382 axiom_element_get_first_element(
00383 axiom_element_t *om_element,
00384 const axutil_env_t *env,
00385 axiom_node_t *element_node,
00386 axiom_node_t **first_element_node);
00392 AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00393 axiom_element_to_string(axiom_element_t *om_element,
00394 const axutil_env_t *env,
00395 axiom_node_t *element_node);
00404 AXIS2_EXTERN axiom_child_element_iterator_t* AXIS2_CALL
00405 axiom_element_get_child_elements(
00406 axiom_element_t *om_element,
00407 const axutil_env_t *env,
00408 axiom_node_t *element_node);
00419 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00420 axiom_element_build(axiom_element_t *om_element,
00421 const axutil_env_t *env,
00422 axiom_node_t *element_node);
00423
00430 AXIS2_EXTERN axiom_namespace_t* AXIS2_CALL
00431 axiom_element_get_default_namespace(
00432 axiom_element_t *om_element,
00433 const axutil_env_t *env,
00434 axiom_node_t *element_node);
00435
00443 AXIS2_EXTERN axiom_namespace_t* AXIS2_CALL
00444 axiom_element_declare_default_namespace(axiom_element_t *om_element,
00445 const axutil_env_t *env,
00446 axis2_char_t *uri);
00447
00457 AXIS2_EXTERN axiom_namespace_t* AXIS2_CALL
00458 axiom_element_find_namespace_uri(axiom_element_t *om_element,
00459 const axutil_env_t *env,
00460 axis2_char_t *prefix,
00461 axiom_node_t *element_node);
00469 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00470 axiom_element_set_namespace_with_no_find_in_current_scope(axiom_element_t *om_element,
00471 const axutil_env_t *env,
00472 axiom_namespace_t *om_ns);
00473
00478 AXIS2_EXTERN axutil_hash_t* AXIS2_CALL
00479 axiom_element_extract_attributes(axiom_element_t *om_element,
00480 const axutil_env_t *env,
00481 axiom_node_t *ele_node);
00482
00483 AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00484 axiom_element_get_attribute_value_by_name(axiom_element_t *om_ele,
00485 const axutil_env_t *env,
00486 axis2_char_t *attr_name);
00487
00488 AXIS2_EXTERN axiom_element_t *AXIS2_CALL
00489 axiom_element_create_str(const axutil_env_t *env,
00490 axiom_node_t *parent,
00491 axutil_string_t *localname,
00492 axiom_namespace_t *ns,
00493 axiom_node_t **node);
00494
00495 AXIS2_EXTERN axutil_string_t* AXIS2_CALL
00496 axiom_element_get_localname_str(axiom_element_t *om_element,
00497 const axutil_env_t *env);
00498
00499 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00500 axiom_element_set_localname_str(axiom_element_t *om_element,
00501 const axutil_env_t *env,
00502 axutil_string_t *localname);
00503
00504
00508 #ifdef __cplusplus
00509 }
00510 #endif
00511
00512 #endif