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);
00121
00122 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00123
00124 axiom_element_declare_namespace_assume_param_ownership(
00125 axiom_element_t * om_element,
00126 const axutil_env_t * env,
00127 axiom_namespace_t * ns);
00128
00139 AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
00140
00141 axiom_element_find_namespace_with_qname(
00142 axiom_element_t * om_element,
00143 const axutil_env_t * env,
00144 axiom_node_t * node,
00145 axutil_qname_t * qname);
00146
00155 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00156 axiom_element_add_attribute(
00157 axiom_element_t * om_element,
00158 const axutil_env_t * env,
00159 axiom_attribute_t * attribute,
00160 axiom_node_t * node);
00161
00170 AXIS2_EXTERN axiom_attribute_t *AXIS2_CALL
00171 axiom_element_get_attribute(
00172 axiom_element_t * om_element,
00173 const axutil_env_t * env,
00174 axutil_qname_t * qname);
00175
00184 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00185 axiom_element_get_attribute_value(
00186 axiom_element_t * om_element,
00187 const axutil_env_t * env,
00188 axutil_qname_t * qname);
00189
00196 AXIS2_EXTERN void AXIS2_CALL
00197 axiom_element_free(
00198 axiom_element_t * element,
00199 const axutil_env_t * env);
00200
00208 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00209
00210 axiom_element_serialize_start_part(
00211 axiom_element_t * om_element,
00212 const axutil_env_t * env,
00213 axiom_output_t * om_output,
00214 axiom_node_t * ele_node);
00215
00224 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00225 axiom_element_serialize_end_part(
00226 axiom_element_t * om_element,
00227 const axutil_env_t * env,
00228 axiom_output_t * om_output);
00229
00240 AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
00241 axiom_element_find_declared_namespace(
00242 axiom_element_t * om_element,
00243 const axutil_env_t * env,
00244 const axis2_char_t * uri,
00245 const axis2_char_t * prefix);
00246
00253 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00254 axiom_element_get_localname(
00255 axiom_element_t * om_element,
00256 const axutil_env_t * env);
00257
00266 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00267 axiom_element_set_localname(
00268 axiom_element_t * om_element,
00269 const axutil_env_t * env,
00270 const axis2_char_t * localname);
00271
00280 AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
00281 axiom_element_get_namespace(
00282 axiom_element_t * om_element,
00283 const axutil_env_t * env,
00284 axiom_node_t * ele_node);
00285
00297 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00298 axiom_element_set_namespace(
00299 axiom_element_t * om_element,
00300 const axutil_env_t * env,
00301 axiom_namespace_t * ns,
00302 axiom_node_t * node);
00303
00304
00314 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00315 axiom_element_set_namespace_assume_param_ownership(
00316 axiom_element_t * om_element,
00317 const axutil_env_t * env,
00318 axiom_namespace_t * ns);
00319
00327 AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
00328 axiom_element_get_all_attributes(
00329 axiom_element_t * om_element,
00330 const axutil_env_t * env);
00331
00339 AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
00340 axiom_element_get_namespaces(
00341 axiom_element_t * om_element,
00342 const axutil_env_t * env);
00343
00351 AXIS2_EXTERN axutil_qname_t *AXIS2_CALL
00352 axiom_element_get_qname(
00353 axiom_element_t * om_element,
00354 const axutil_env_t * env,
00355 axiom_node_t * ele_node);
00356
00363 AXIS2_EXTERN axiom_children_iterator_t *AXIS2_CALL
00364
00365 axiom_element_get_children(
00366 axiom_element_t * om_element,
00367 const axutil_env_t * env,
00368 axiom_node_t * element_node);
00369
00381 AXIS2_EXTERN axiom_children_qname_iterator_t *AXIS2_CALL
00382
00383 axiom_element_get_children_with_qname(
00384 axiom_element_t * om_element,
00385 const axutil_env_t * env,
00386 axutil_qname_t * element_qname,
00387 axiom_node_t * element_node);
00388
00393 AXIS2_EXTERN axiom_element_t *AXIS2_CALL
00394
00395 axiom_element_get_first_child_with_qname(
00396 axiom_element_t * om_element,
00397 const axutil_env_t * env,
00398 axutil_qname_t * element_qname,
00399 axiom_node_t * element_node,
00400 axiom_node_t ** child_node);
00401
00412 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00413 axiom_element_remove_attribute(
00414 axiom_element_t * om_element,
00415 const axutil_env_t * env,
00416 axiom_attribute_t * om_attribute);
00417
00429 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00430 axiom_element_set_text(
00431 axiom_element_t * om_element,
00432 const axutil_env_t * env,
00433 const axis2_char_t * text,
00434 axiom_node_t * element_node);
00435
00442 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00443 axiom_element_get_text(
00444 axiom_element_t * om_element,
00445 const axutil_env_t * env,
00446 axiom_node_t * element_node);
00447
00453 AXIS2_EXTERN axiom_element_t *AXIS2_CALL
00454 axiom_element_get_first_element(
00455 axiom_element_t * om_element,
00456 const axutil_env_t * env,
00457 axiom_node_t * element_node,
00458 axiom_node_t ** first_element_node);
00459
00465 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00466 axiom_element_to_string(
00467 axiom_element_t * om_element,
00468 const axutil_env_t * env,
00469 axiom_node_t * element_node);
00470
00479 AXIS2_EXTERN axiom_child_element_iterator_t *AXIS2_CALL
00480
00481 axiom_element_get_child_elements(
00482 axiom_element_t * om_element,
00483 const axutil_env_t * env,
00484 axiom_node_t * element_node);
00485
00496 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00497 axiom_element_build(
00498 axiom_element_t * om_element,
00499 const axutil_env_t * env,
00500 axiom_node_t * element_node);
00501
00508 AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
00509
00510 axiom_element_get_default_namespace(
00511 axiom_element_t * om_element,
00512 const axutil_env_t * env,
00513 axiom_node_t * element_node);
00514
00522 AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
00523
00524 axiom_element_declare_default_namespace(
00525 axiom_element_t * om_element,
00526 const axutil_env_t * env,
00527 axis2_char_t * uri);
00528
00537 AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
00538 axiom_element_find_namespace_uri(
00539 axiom_element_t * om_element,
00540 const axutil_env_t * env,
00541 axis2_char_t * prefix,
00542 axiom_node_t * element_node);
00543
00551 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00552 axiom_element_set_namespace_with_no_find_in_current_scope(
00553 axiom_element_t * om_element,
00554 const axutil_env_t * env,
00555 axiom_namespace_t * om_ns);
00556
00561 AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
00562 axiom_element_extract_attributes(
00563 axiom_element_t * om_element,
00564 const axutil_env_t * env,
00565 axiom_node_t * ele_node);
00566
00567 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00568
00569 axiom_element_get_attribute_value_by_name(
00570 axiom_element_t * om_ele,
00571 const axutil_env_t * env,
00572 axis2_char_t * attr_name);
00573
00574 AXIS2_EXTERN axiom_element_t *AXIS2_CALL
00575 axiom_element_create_str(
00576 const axutil_env_t * env,
00577 axiom_node_t * parent,
00578 axutil_string_t * localname,
00579 axiom_namespace_t * ns,
00580 axiom_node_t ** node);
00581
00582 AXIS2_EXTERN axutil_string_t *AXIS2_CALL
00583 axiom_element_get_localname_str(
00584 axiom_element_t * om_element,
00585 const axutil_env_t * env);
00586
00587 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00588 axiom_element_set_localname_str(
00589 axiom_element_t * om_element,
00590 const axutil_env_t * env,
00591 axutil_string_t * localname);
00592
00593 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00594 axiom_element_get_is_empty(
00595 axiom_element_t * om_element,
00596 const axutil_env_t * env);
00597
00598 AXIS2_EXTERN void AXIS2_CALL
00599 axiom_element_set_is_empty(
00600 axiom_element_t * om_element,
00601 const axutil_env_t * env,
00602 axis2_bool_t is_empty);
00603
00615 AXIS2_EXTERN axutil_hash_t * AXIS2_CALL
00616 axiom_element_gather_parent_namespaces(
00617 axiom_element_t * om_element,
00618 const axutil_env_t * env,
00619 axiom_node_t * om_node);
00620
00633 AXIS2_EXTERN void AXIS2_CALL
00634 axiom_element_use_parent_namespace(
00635 axiom_element_t * om_element,
00636 const axutil_env_t * env,
00637 axiom_node_t * om_node,
00638 axiom_namespace_t *ns,
00639 axiom_element_t * root_element,
00640 axutil_hash_t *inscope_namespaces);
00641
00655 AXIS2_EXTERN void AXIS2_CALL
00656 axiom_element_redeclare_parent_namespaces(
00657 axiom_element_t * om_element,
00658 const axutil_env_t * env,
00659 axiom_node_t * om_node,
00660 axiom_element_t * root_element,
00661 axutil_hash_t *inscope_namespaces);
00662
00665 #ifdef __cplusplus
00666 }
00667 #endif
00668
00669 #endif