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
00459 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00460 axiom_element_get_text(
00461 axiom_element_t * om_element,
00462 const axutil_env_t * env,
00463 axiom_node_t * element_node);
00464
00472 AXIS2_EXTERN axiom_element_t *AXIS2_CALL
00473 axiom_element_get_first_element(
00474 axiom_element_t * om_element,
00475 const axutil_env_t * env,
00476 axiom_node_t * element_node,
00477 axiom_node_t ** first_element_node);
00478
00486 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00487 axiom_element_to_string(
00488 axiom_element_t * om_element,
00489 const axutil_env_t * env,
00490 axiom_node_t * element_node);
00491
00500 AXIS2_EXTERN axiom_child_element_iterator_t *AXIS2_CALL
00501 axiom_element_get_child_elements(
00502 axiom_element_t * om_element,
00503 const axutil_env_t * env,
00504 axiom_node_t * element_node);
00505
00517 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00518 axiom_element_build(
00519 axiom_element_t * om_element,
00520 const axutil_env_t * env,
00521 axiom_node_t * element_node);
00522
00530 AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
00531 axiom_element_get_default_namespace(
00532 axiom_element_t * om_element,
00533 const axutil_env_t * env,
00534 axiom_node_t * element_node);
00535
00543 AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
00544 axiom_element_declare_default_namespace(
00545 axiom_element_t * om_element,
00546 const axutil_env_t * env,
00547 axis2_char_t * uri);
00548
00557 AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
00558 axiom_element_find_namespace_uri(
00559 axiom_element_t * om_element,
00560 const axutil_env_t * env,
00561 axis2_char_t * prefix,
00562 axiom_node_t * element_node);
00563
00574 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00575 axiom_element_set_namespace_with_no_find_in_current_scope(
00576 axiom_element_t * om_element,
00577 const axutil_env_t * env,
00578 axiom_namespace_t * om_ns);
00579
00588 AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
00589 axiom_element_extract_attributes(
00590 axiom_element_t * om_element,
00591 const axutil_env_t * env,
00592 axiom_node_t * ele_node);
00593
00602 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00603 axiom_element_get_attribute_value_by_name(
00604 axiom_element_t * om_ele,
00605 const axutil_env_t * env,
00606 axis2_char_t * attr_name);
00607
00617 AXIS2_EXTERN axiom_element_t *AXIS2_CALL
00618 axiom_element_create_str(
00619 const axutil_env_t * env,
00620 axiom_node_t * parent,
00621 axutil_string_t * localname,
00622 axiom_namespace_t * ns,
00623 axiom_node_t ** node);
00624
00633 AXIS2_EXTERN axutil_string_t *AXIS2_CALL
00634 axiom_element_get_localname_str(
00635 axiom_element_t * om_element,
00636 const axutil_env_t * env);
00637
00646 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00647 axiom_element_set_localname_str(
00648 axiom_element_t * om_element,
00649 const axutil_env_t * env,
00650 axutil_string_t * localname);
00651
00659 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00660 axiom_element_get_is_empty(
00661 axiom_element_t * om_element,
00662 const axutil_env_t * env);
00663
00672 AXIS2_EXTERN void AXIS2_CALL
00673 axiom_element_set_is_empty(
00674 axiom_element_t * om_element,
00675 const axutil_env_t * env,
00676 axis2_bool_t is_empty);
00677
00689 AXIS2_EXTERN axutil_hash_t * AXIS2_CALL
00690 axiom_element_gather_parent_namespaces(
00691 axiom_element_t * om_element,
00692 const axutil_env_t * env,
00693 axiom_node_t * om_node);
00694
00707 AXIS2_EXTERN void AXIS2_CALL
00708 axiom_element_use_parent_namespace(
00709 axiom_element_t * om_element,
00710 const axutil_env_t * env,
00711 axiom_node_t * om_node,
00712 axiom_namespace_t *ns,
00713 axiom_element_t * root_element,
00714 axutil_hash_t *inscope_namespaces);
00715
00730 AXIS2_EXTERN void AXIS2_CALL
00731 axiom_element_redeclare_parent_namespaces(
00732 axiom_element_t * om_element,
00733 const axutil_env_t * env,
00734 axiom_node_t * om_node,
00735 axiom_element_t * root_element,
00736 axutil_hash_t *inscope_namespaces);
00737
00740 #ifdef __cplusplus
00741 }
00742 #endif
00743
00744 #endif