# axiom_util.h

    00001
    00002 /*
    00003  * Licensed to the Apache Software Foundation (ASF) under one or more
    00004  * contributor license agreements.  See the NOTICE file distributed with
    00005  * this work for additional information regarding copyright ownership.
    00006  * The ASF licenses this file to You under the Apache License, Version 2.0
    00007  * (the "License"); you may not use this file except in compliance with
    00008  * the License.  You may obtain a copy of the License at
    00009  *
    00010  *      http://www.apache.org/licenses/LICENSE-2.0
    00011  *
    00012  * Unless required by applicable law or agreed to in writing, software
    00013  * distributed under the License is distributed on an "AS IS" BASIS,
    00014  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    00015  * See the License for the specific language governing permissions and
    00016  * limitations under the License.
    00017  */
    00018
    00019 #ifndef AXIOM_UTIL_H
    00020 #define AXIOM_UTIL_H
    00021
    00022 #include <axutil_array_list.h>
    00023 #include <axutil_string.h>
    00024 #include <axiom.h>
    00025 #include <axutil_uri.h>
    00026
    00027 #ifdef __cplusplus
    00028 extern "C"
    00029 {
    00030 #endif
    00031
    00039     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
    00040     axiom_util_get_first_child_element_with_uri(
    00041         axiom_node_t * ele_node,
    00042         const axutil_env_t * env,
    00043         axis2_char_t * uri,
    00044         axiom_node_t ** child);
    00056     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
    00057     axiom_util_get_next_sibling_element_with_uri(
    00058         axiom_node_t * ele_node,
    00059         const axutil_env_t * env,
    00060         axis2_char_t * uri,
    00061         axiom_node_t ** next_node);
    00071     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
    00072     axiom_util_get_first_child_element(
    00073         axiom_element_t * ele,
    00074         const axutil_env_t * env,
    00075         axiom_node_t * ele_node,
    00076         axiom_node_t ** child_node);
    00084     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
    00085     axiom_util_get_last_child_element(
    00086         axiom_element_t * ele,
    00087         const axutil_env_t * env,
    00088         axiom_node_t * ele_node,
    00089         axiom_node_t ** child_node);
    00098     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
    00099     axiom_util_get_next_sibling_element(
    00100         axiom_element_t * ele,
    00101         const axutil_env_t * env,
    00102         axiom_node_t * ele_node,
    00103         axiom_node_t ** next_node);
    00115     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
    00116     axiom_util_get_first_child_element_with_localname(
    00117         axiom_element_t * ele,
    00118         const axutil_env_t * env,
    00119         axiom_node_t * ele_node,
    00120         axis2_char_t * localname,
    00121         axiom_node_t ** child_node);
    00131     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
    00132     axiom_util_get_last_child_element_with_localname(
    00133         axiom_element_t * ele,
    00134         const axutil_env_t * env,
    00135         axiom_node_t * ele_node,
    00136         axis2_char_t * localname,
    00137         axiom_node_t ** child_node);
    00147     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
    00148     axiom_util_get_next_siblng_element_with_localname(
    00149         axiom_element_t * ele,
    00150         const axutil_env_t * env,
    00151         axiom_node_t * ele_node,
    00152         axis2_char_t * localname,
    00153         axiom_node_t ** next_node);
    00165     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
    00166     axiom_util_get_first_child_element_with_uri_localname(
    00167         axiom_element_t * ele,
    00168         const axutil_env_t * env,
    00169         axiom_node_t * ele_node,
    00170         axis2_char_t * localname,
    00171         axis2_char_t * uri,
    00172         axiom_node_t ** child_node);
    00184     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
    00185     axiom_util_get_last_child_element_with_uri_localname(
    00186         axiom_element_t * ele,
    00187         const axutil_env_t * env,
    00188         axiom_node_t * ele_node,
    00189         axis2_char_t * localname,
    00190         axis2_char_t * uri,
    00191         axiom_node_t ** child_node);
    00203     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
    00204     axiom_util_get_next_sibling_element_with_uri_localname(
    00205         axiom_element_t * ele,
    00206         const axutil_env_t * env,
    00207         axiom_node_t * ele_node,
    00208         axis2_char_t * localname,
    00209         axis2_char_t * uri,
    00210         axiom_node_t ** next_node);
    00220     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
    00221     axiom_util_get_first_child_element_with_localnames(
    00222         axiom_element_t * ele,
    00223         const axutil_env_t * env,
    00224         axiom_node_t * ele_node,
    00225         axutil_array_list_t * names,
    00226         axiom_node_t ** child_node);
    00236     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
    00237     axiom_util_get_last_child_element_with_localnames(
    00238         axiom_element_t * ele,
    00239         const axutil_env_t * env,
    00240         axiom_node_t * ele_node,
    00241         axutil_array_list_t * names,
    00242         axiom_node_t ** child_node);
    00252     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
    00253     axiom_util_get_next_siblng_element_with_localnames(
    00254         axiom_element_t * ele,
    00255         const axutil_env_t * env,
    00256         axiom_node_t * ele_node,
    00257         axutil_array_list_t * names,
    00258         axiom_node_t ** next_node);
    00270     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
    00271     axiom_util_get_first_child_element_with_localname_attr(
    00272         axiom_element_t * ele,
    00273         const axutil_env_t * env,
    00274         axiom_node_t * ele_node,
    00275         axis2_char_t * localname,
    00276         axis2_char_t * attr_name,
    00277         axis2_char_t * attr_value,
    00278         axiom_node_t ** child_node);
    00292     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
    00293     axiom_util_get_last_child_element_with_localname_attr(
    00294         axiom_element_t * ele,
    00295         const axutil_env_t * env,
    00296         axiom_node_t * ele_node,
    00297         axis2_char_t * localname,
    00298         axis2_char_t * attr_name,
    00299         axis2_char_t * attr_value,
    00300         axiom_node_t ** child_node);
    00313     AXIS2_EXTERN axiom_element_t *AXIS2_CALL
    00314     axiom_util_get_next_siblng_element_with_localname_attr(
    00315         axiom_element_t * ele,
    00316         const axutil_env_t * env,
    00317         axiom_node_t * ele_node,
    00318         axis2_char_t * localname,
    00319         axis2_char_t * attr_name,
    00320         axis2_char_t * attr_value,
    00321         axiom_node_t ** next_node);
    00329     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    00330     axiom_util_get_child_text(
    00331         axiom_node_t * node,
    00332         const axutil_env_t * env);
    00340     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    00341     axiom_util_get_localname(
    00342         axiom_node_t * node,
    00343         const axutil_env_t * env);
    00353     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
    00354     axiom_util_get_node_namespace_uri(
    00355         axiom_node_t * om_node,
    00356         const axutil_env_t * env);
    00365     AXIS2_EXTERN axiom_child_element_iterator_t *AXIS2_CALL
    00366     axiom_util_get_child_elements(
    00367         axiom_element_t * om_ele,
    00368         const axutil_env_t * env,
    00369         axiom_node_t * om_node);
    00370
    00371     AXIS2_EXTERN axiom_document_t *AXIS2_CALL
    00372     axiom_util_new_document(
    00373         const axutil_env_t * env,
    00374         const axutil_uri_t * uri);
    00375
    00376     AXIS2_EXTERN axiom_node_t* AXIS2_CALL
    00377     axiom_util_get_node_by_local_name(
    00378         const axutil_env_t *env,
    00379         axiom_node_t *node,
    00380         axis2_char_t *local_name);
    00381
    00388     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
    00389     axiom_util_clone_node(
    00390         const axutil_env_t *env,
    00391         axiom_node_t *node);
    00392
    00393 #ifdef __cplusplus
    00394  }
    00395 #endif
    00396 #endif                          /* AXIOM_UTIL_H */