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
00056 AXIS2_EXTERN axiom_element_t *AXIS2_CALL
00057 axiom_element_create(
00058 const axutil_env_t * env,
00059 axiom_node_t * parent,
00060 const axis2_char_t * localname,
00061 axiom_namespace_t * ns,
00062 axiom_node_t ** node);
00063
00074 AXIS2_EXTERN axiom_element_t *AXIS2_CALL
00075 axiom_element_create_with_qname(
00076 const axutil_env_t * env,
00077 axiom_node_t * parent,
00078 const axutil_qname_t * qname,
00079 axiom_node_t ** node);
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092 AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
00093 axiom_element_find_namespace(
00094 axiom_element_t * om_element,
00095 const axutil_env_t * env,
00096 axiom_node_t * node,
00097 const axis2_char_t * uri,
00098 const axis2_char_t * prefix);
00099
00109 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00110 axiom_element_declare_namespace(
00111 axiom_element_t * om_element,
00112 const axutil_env_t * env,
00113 axiom_node_t * node,
00114 axiom_namespace_t * ns);
00115
00116 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00117
00118 axiom_element_declare_namespace_assume_param_ownership(
00119 axiom_element_t * om_element,
00120 const axutil_env_t * env,
00121 axiom_namespace_t * ns);
00122
00133 AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
00134
00135 axiom_element_find_namespace_with_qname(
00136 axiom_element_t * om_element,
00137 const axutil_env_t * env,
00138 axiom_node_t * node,
00139 axutil_qname_t * qname);
00140
00149 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00150 axiom_element_add_attribute(
00151 axiom_element_t * om_element,
00152 const axutil_env_t * env,
00153 axiom_attribute_t * attribute,
00154 axiom_node_t * node);
00155
00164 AXIS2_EXTERN axiom_attribute_t *AXIS2_CALL
00165 axiom_element_get_attribute(
00166 axiom_element_t * om_element,
00167 const axutil_env_t * env,
00168 axutil_qname_t * qname);
00169
00178 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00179 axiom_element_get_attribute_value(
00180 axiom_element_t * om_element,
00181 const axutil_env_t * env,
00182 axutil_qname_t * qname);
00183
00190 AXIS2_EXTERN void AXIS2_CALL
00191 axiom_element_free(
00192 axiom_element_t * element,
00193 const axutil_env_t * env);
00194
00202 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00203
00204 axiom_element_serialize_start_part(
00205 axiom_element_t * om_element,
00206 const axutil_env_t * env,
00207 axiom_output_t * om_output,
00208 axiom_node_t * ele_node);
00209
00218 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00219 axiom_element_serialize_end_part(
00220 axiom_element_t * om_element,
00221 const axutil_env_t * env,
00222 axiom_output_t * om_output);
00223
00233 AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
00234
00235 axiom_element_find_declared_namespace(
00236 axiom_element_t * om_element,
00237 const axutil_env_t * env,
00238 const axis2_char_t * uri,
00239 const axis2_char_t * prefix);
00240
00247 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00248 axiom_element_get_localname(
00249 axiom_element_t * om_element,
00250 const axutil_env_t * env);
00251
00260 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00261 axiom_element_set_localname(
00262 axiom_element_t * om_element,
00263 const axutil_env_t * env,
00264 const axis2_char_t * localname);
00265
00274 AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
00275 axiom_element_get_namespace(
00276 axiom_element_t * om_element,
00277 const axutil_env_t * env,
00278 axiom_node_t * ele_node);
00279
00288 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00289 axiom_element_set_namespace(
00290 axiom_element_t * om_element,
00291 const axutil_env_t * env,
00292 axiom_namespace_t * ns,
00293 axiom_node_t * node);
00294
00295 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00296
00297 axiom_element_set_namespace_assume_param_ownership(
00298 axiom_element_t * om_element,
00299 const axutil_env_t * env,
00300 axiom_namespace_t * ns);
00301
00309 AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
00310 axiom_element_get_all_attributes(
00311 axiom_element_t * om_element,
00312 const axutil_env_t * env);
00313
00321 AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
00322 axiom_element_get_namespaces(
00323 axiom_element_t * om_element,
00324 const axutil_env_t * env);
00325
00333 AXIS2_EXTERN axutil_qname_t *AXIS2_CALL
00334 axiom_element_get_qname(
00335 axiom_element_t * om_element,
00336 const axutil_env_t * env,
00337 axiom_node_t * ele_node);
00338
00343 AXIS2_EXTERN axiom_children_iterator_t *AXIS2_CALL
00344
00345 axiom_element_get_children(
00346 axiom_element_t * om_element,
00347 const axutil_env_t * env,
00348 axiom_node_t * element_node);
00349
00361 AXIS2_EXTERN axiom_children_qname_iterator_t *AXIS2_CALL
00362
00363 axiom_element_get_children_with_qname(
00364 axiom_element_t * om_element,
00365 const axutil_env_t * env,
00366 axutil_qname_t * element_qname,
00367 axiom_node_t * element_node);
00368
00373 AXIS2_EXTERN axiom_element_t *AXIS2_CALL
00374
00375 axiom_element_get_first_child_with_qname(
00376 axiom_element_t * om_element,
00377 const axutil_env_t * env,
00378 axutil_qname_t * element_qname,
00379 axiom_node_t * element_node,
00380 axiom_node_t ** child_node);
00381
00392 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00393 axiom_element_remove_attribute(
00394 axiom_element_t * om_element,
00395 const axutil_env_t * env,
00396 axiom_attribute_t * om_attribute);
00397
00403 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00404 axiom_element_set_text(
00405 axiom_element_t * om_element,
00406 const axutil_env_t * env,
00407 const axis2_char_t * text,
00408 axiom_node_t * element_node);
00409
00416 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00417 axiom_element_get_text(
00418 axiom_element_t * om_element,
00419 const axutil_env_t * env,
00420 axiom_node_t * element_node);
00421
00427 AXIS2_EXTERN axiom_element_t *AXIS2_CALL
00428 axiom_element_get_first_element(
00429 axiom_element_t * om_element,
00430 const axutil_env_t * env,
00431 axiom_node_t * element_node,
00432 axiom_node_t ** first_element_node);
00433
00439 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00440 axiom_element_to_string(
00441 axiom_element_t * om_element,
00442 const axutil_env_t * env,
00443 axiom_node_t * element_node);
00444
00453 AXIS2_EXTERN axiom_child_element_iterator_t *AXIS2_CALL
00454
00455 axiom_element_get_child_elements(
00456 axiom_element_t * om_element,
00457 const axutil_env_t * env,
00458 axiom_node_t * element_node);
00459
00470 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00471 axiom_element_build(
00472 axiom_element_t * om_element,
00473 const axutil_env_t * env,
00474 axiom_node_t * element_node);
00475
00482 AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
00483
00484 axiom_element_get_default_namespace(
00485 axiom_element_t * om_element,
00486 const axutil_env_t * env,
00487 axiom_node_t * element_node);
00488
00496 AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
00497
00498 axiom_element_declare_default_namespace(
00499 axiom_element_t * om_element,
00500 const axutil_env_t * env,
00501 axis2_char_t * uri);
00502
00512 AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL
00513
00514 axiom_element_find_namespace_uri(
00515 axiom_element_t * om_element,
00516 const axutil_env_t * env,
00517 axis2_char_t * prefix,
00518 axiom_node_t * element_node);
00519
00527 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00528
00529 axiom_element_set_namespace_with_no_find_in_current_scope(
00530 axiom_element_t * om_element,
00531 const axutil_env_t * env,
00532 axiom_namespace_t * om_ns);
00533
00538 AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
00539 axiom_element_extract_attributes(
00540 axiom_element_t * om_element,
00541 const axutil_env_t * env,
00542 axiom_node_t * ele_node);
00543
00544 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00545
00546 axiom_element_get_attribute_value_by_name(
00547 axiom_element_t * om_ele,
00548 const axutil_env_t * env,
00549 axis2_char_t * attr_name);
00550
00551 AXIS2_EXTERN axiom_element_t *AXIS2_CALL
00552 axiom_element_create_str(
00553 const axutil_env_t * env,
00554 axiom_node_t * parent,
00555 axutil_string_t * localname,
00556 axiom_namespace_t * ns,
00557 axiom_node_t ** node);
00558
00559 AXIS2_EXTERN axutil_string_t *AXIS2_CALL
00560 axiom_element_get_localname_str(
00561 axiom_element_t * om_element,
00562 const axutil_env_t * env);
00563
00564 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00565 axiom_element_set_localname_str(
00566 axiom_element_t * om_element,
00567 const axutil_env_t * env,
00568 axutil_string_t * localname);
00569
00572 #ifdef __cplusplus
00573 }
00574 #endif
00575
00576 #endif