00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef AXIOM_ELEMENT_H
00020 #define AXIOM_ELEMENT_H
00021
00022 #include <axiom_namespace.h>
00023 #include <axiom_attribute.h>
00024 #include <axiom_output.h>
00025 #include <axiom_node.h>
00026 #include <axiom_children_iterator.h>
00027 #include <axiom_children_qname_iterator.h>
00028 #include <axiom_child_element_iterator.h>
00029 #include <axutil_hash.h>
00030 #include <axutil_utils.h>
00031
00032 #ifdef __cplusplus
00033 extern "C"
00034 {
00035 #endif
00036
00037 typedef struct axiom_element axiom_element_t;
00038
00062 AXIS2_EXTERN axiom_element_t *AXIS2_CALL
00063 axiom_element_create(
00064 const axutil_env_t * env,
00065 axiom_node_t * parent,
00066 const axis2_char_t * localname,
00067 axiom_namespace_t * ns,
00068 axiom_node_t ** node);
00069
00080 AXIS2_EXTERN axiom_element_t *AXIS2_CALL
00081 axiom_element_create_with_qname(
00082 const axutil_env_t * env,
00083 axiom_node_t * parent,
00084 const axutil_qname_t * qname,
00085 axiom_node_t ** node);
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098 AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
00099 axiom_element_find_namespace(
00100 axiom_element_t * om_element,
00101 const axutil_env_t * env,
00102 axiom_node_t * node,
00103 const axis2_char_t * uri,
00104 const axis2_char_t * prefix);
00105
00115 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00116 axiom_element_declare_namespace(
00117 axiom_element_t * om_element,
00118 const axutil_env_t * env,
00119 axiom_node_t * node,
00120 axiom_namespace_t * ns);
00128 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00129 axiom_element_declare_namespace_assume_param_ownership(
00130 axiom_element_t * om_element,
00131 const axutil_env_t * env,
00132 axiom_namespace_t * ns);
00133
00144 AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
00145 axiom_element_find_namespace_with_qname(
00146 axiom_element_t * om_element,
00147 const axutil_env_t * env,
00148 axiom_node_t * node,
00149 axutil_qname_t * qname);
00150
00159 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00160 axiom_element_add_attribute(
00161 axiom_element_t * om_element,
00162 const axutil_env_t * env,
00163 axiom_attribute_t * attribute,
00164 axiom_node_t * node);
00165
00174 AXIS2_EXTERN axiom_attribute_t *AXIS2_CALL
00175 axiom_element_get_attribute(
00176 axiom_element_t * om_element,
00177 const axutil_env_t * env,
00178 axutil_qname_t * qname);
00179
00188 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00189 axiom_element_get_attribute_value(
00190 axiom_element_t * om_element,
00191 const axutil_env_t * env,
00192 axutil_qname_t * qname);
00193
00200 AXIS2_EXTERN void AXIS2_CALL
00201 axiom_element_free(
00202 axiom_element_t * element,
00203 const axutil_env_t * env);
00204
00212 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00213 axiom_element_serialize_start_part(
00214 axiom_element_t * om_element,
00215 const axutil_env_t * env,
00216 axiom_output_t * om_output,
00217 axiom_node_t * ele_node);
00218
00228 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00229 axiom_element_serialize_end_part(
00230 axiom_element_t * om_element,
00231 const axutil_env_t * env,
00232 axiom_output_t * om_output);
00233
00244 AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
00245 axiom_element_find_declared_namespace(
00246 axiom_element_t * om_element,
00247 const axutil_env_t * env,
00248 const axis2_char_t * uri,
00249 const axis2_char_t * prefix);
00250
00257 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00258 axiom_element_get_localname(
00259 axiom_element_t * om_element,
00260 const axutil_env_t * env);
00261
00270 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00271 axiom_element_set_localname(
00272 axiom_element_t * om_element,
00273 const axutil_env_t * env,
00274 const axis2_char_t * localname);
00275
00284 AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
00285 axiom_element_get_namespace(
00286 axiom_element_t * om_element,
00287 const axutil_env_t * env,
00288 axiom_node_t * ele_node);
00289
00301 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00302 axiom_element_set_namespace(
00303 axiom_element_t * om_element,
00304 const axutil_env_t * env,
00305 axiom_namespace_t * ns,
00306 axiom_node_t * node);
00307
00308
00318 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00319 axiom_element_set_namespace_assume_param_ownership(
00320 axiom_element_t * om_element,
00321 const axutil_env_t * env,
00322 axiom_namespace_t * ns);
00323
00331 AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
00332 axiom_element_get_all_attributes(
00333 axiom_element_t * om_element,
00334 const axutil_env_t * env);
00335
00343 AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
00344 axiom_element_get_namespaces(
00345 axiom_element_t * om_element,
00346 const axutil_env_t * env);
00347
00359 AXIS2_EXTERN axutil_qname_t *AXIS2_CALL
00360 axiom_element_get_qname(
00361 axiom_element_t * om_element,
00362 const axutil_env_t * env,
00363 axiom_node_t * ele_node);
00364
00375 AXIS2_EXTERN axiom_children_iterator_t *AXIS2_CALL
00376 axiom_element_get_children(
00377 axiom_element_t * om_element,
00378 const axutil_env_t * env,
00379 axiom_node_t * element_node);
00380
00391 AXIS2_EXTERN axiom_children_qname_iterator_t *AXIS2_CALL
00392 axiom_element_get_children_with_qname(
00393 axiom_element_t * om_element,
00394 const axutil_env_t * env,
00395 axutil_qname_t * element_qname,
00396 axiom_node_t * element_node);
00397
00409 AXIS2_EXTERN axiom_element_t *AXIS2_CALL
00410 axiom_element_get_first_child_with_qname(
00411 axiom_element_t * om_element,
00412 const axutil_env_t * env,
00413 axutil_qname_t * element_qname,
00414 axiom_node_t * element_node,
00415 axiom_node_t ** child_node);
00416
00427 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00428 axiom_element_remove_attribute(
00429 axiom_element_t * om_element,
00430 const axutil_env_t * env,
00431 axiom_attribute_t * om_attribute);
00432
00444 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00445 axiom_element_set_text(
00446 axiom_element_t * om_element,
00447 const axutil_env_t * env,
00448 const axis2_char_t * text,
00449 axiom_node_t * element_node);
00450
00462 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00463 axiom_element_get_text(
00464 axiom_element_t * om_element,
00465 const axutil_env_t * env,
00466 axiom_node_t * element_node);
00467
00475 AXIS2_EXTERN axiom_element_t *AXIS2_CALL
00476 axiom_element_get_first_element(
00477 axiom_element_t * om_element,
00478 const axutil_env_t * env,
00479 axiom_node_t * element_node,
00480 axiom_node_t ** first_element_node);
00481
00489 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00490 axiom_element_to_string(
00491 axiom_element_t * om_element,
00492 const axutil_env_t * env,
00493 axiom_node_t * element_node);
00494
00503 AXIS2_EXTERN axiom_child_element_iterator_t *AXIS2_CALL
00504 axiom_element_get_child_elements(
00505 axiom_element_t * om_element,
00506 const axutil_env_t * env,
00507 axiom_node_t * element_node);
00508
00520 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00521 axiom_element_build(
00522 axiom_element_t * om_element,
00523 const axutil_env_t * env,
00524 axiom_node_t * element_node);
00525
00533 AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
00534 axiom_element_get_default_namespace(
00535 axiom_element_t * om_element,
00536 const axutil_env_t * env,
00537 axiom_node_t * element_node);
00538
00546 AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
00547 axiom_element_declare_default_namespace(
00548 axiom_element_t * om_element,
00549 const axutil_env_t * env,
00550 axis2_char_t * uri);
00551
00560 AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
00561 axiom_element_find_namespace_uri(
00562 axiom_element_t * om_element,
00563 const axutil_env_t * env,
00564 const axis2_char_t * prefix,
00565 axiom_node_t * element_node);
00566
00577 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00578 axiom_element_set_namespace_with_no_find_in_current_scope(
00579 axiom_element_t * om_element,
00580 const axutil_env_t * env,
00581 axiom_namespace_t * om_ns);
00582
00591 AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
00592 axiom_element_extract_attributes(
00593 axiom_element_t * om_element,
00594 const axutil_env_t * env,
00595 axiom_node_t * ele_node);
00596
00605 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00606 axiom_element_get_attribute_value_by_name(
00607 axiom_element_t * om_ele,
00608 const axutil_env_t * env,
00609 axis2_char_t * attr_name);
00610
00620 AXIS2_EXTERN axiom_element_t *AXIS2_CALL
00621 axiom_element_create_str(
00622 const axutil_env_t * env,
00623 axiom_node_t * parent,
00624 axutil_string_t * localname,
00625 axiom_namespace_t * ns,
00626 axiom_node_t ** node);
00627
00636 AXIS2_EXTERN axutil_string_t *AXIS2_CALL
00637 axiom_element_get_localname_str(
00638 axiom_element_t * om_element,
00639 const axutil_env_t * env);
00640
00649 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00650 axiom_element_set_localname_str(
00651 axiom_element_t * om_element,
00652 const axutil_env_t * env,
00653 axutil_string_t * localname);
00654
00662 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00663 axiom_element_get_is_empty(
00664 axiom_element_t * om_element,
00665 const axutil_env_t * env);
00666
00675 AXIS2_EXTERN void AXIS2_CALL
00676 axiom_element_set_is_empty(
00677 axiom_element_t * om_element,
00678 const axutil_env_t * env,
00679 axis2_bool_t is_empty);
00680
00692 AXIS2_EXTERN axutil_hash_t * AXIS2_CALL
00693 axiom_element_gather_parent_namespaces(
00694 axiom_element_t * om_element,
00695 const axutil_env_t * env,
00696 axiom_node_t * om_node);
00697
00710 AXIS2_EXTERN void AXIS2_CALL
00711 axiom_element_use_parent_namespace(
00712 axiom_element_t * om_element,
00713 const axutil_env_t * env,
00714 axiom_node_t * om_node,
00715 axiom_namespace_t *ns,
00716 axiom_element_t * root_element,
00717 axutil_hash_t *inscope_namespaces);
00718
00733 AXIS2_EXTERN void AXIS2_CALL
00734 axiom_element_redeclare_parent_namespaces(
00735 axiom_element_t * om_element,
00736 const axutil_env_t * env,
00737 axiom_node_t * om_node,
00738 axiom_element_t * root_element,
00739 axutil_hash_t *inscope_namespaces);
00740
00743 #ifdef __cplusplus
00744 }
00745 #endif
00746
00747 #endif