axiom_node.h

Go to the documentation of this file.
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_NODE_H
00020 #define AXIOM_NODE_H
00021 
00039 #include <axutil_env.h>
00040 #include <axutil_utils.h>
00041 
00042 #ifdef __cplusplus
00043 extern "C"
00044 {
00045 #endif
00046 
00047     typedef struct axiom_node axiom_node_t;
00048     struct axiom_output;
00049     struct axiom_document;
00050     struct axiom_stax_builder;
00051 
00061     typedef enum axiom_types_t
00062     {
00063 
00065         AXIOM_INVALID = 0,
00066 
00068         AXIOM_DOCUMENT,
00069 
00071         AXIOM_ELEMENT,
00072 
00074         AXIOM_DOCTYPE,
00075 
00077         AXIOM_COMMENT,
00078 
00080         AXIOM_ATTRIBUTE,
00081 
00083         AXIOM_NAMESPACE,
00084 
00086         AXIOM_PROCESSING_INSTRUCTION,
00087 
00089         AXIOM_TEXT,
00090 
00092         AXIOM_DATA_SOURCE
00093     } axiom_types_t;
00094 
00100     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00101     axiom_node_create(
00102         const axutil_env_t * env);
00103 
00112     AXIS2_EXTERN void AXIS2_CALL
00113     axiom_node_free_tree(
00114         axiom_node_t * om_node,
00115         const axutil_env_t * env);
00116 
00125     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00126     axiom_node_add_child(
00127         axiom_node_t * om_node,
00128         const axutil_env_t * env,
00129         axiom_node_t * child);
00130 
00138     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00139     axiom_node_detach(
00140         axiom_node_t * om_node,
00141         const axutil_env_t * env);
00142 
00150     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00151     axiom_node_insert_sibling_after(
00152         axiom_node_t * om_node,
00153         const axutil_env_t * env,
00154         axiom_node_t * node_to_insert);
00155 
00163     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00164     axiom_node_insert_sibling_before(
00165         axiom_node_t * om_node,
00166         const axutil_env_t * env,
00167         axiom_node_t * node_to_insert);
00168 
00177     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00178     axiom_node_serialize(
00179         axiom_node_t * om_node,
00180         const axutil_env_t * env,
00181         struct axiom_output *om_output);
00182 
00190     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00191     axiom_node_get_parent(
00192         axiom_node_t * om_node,
00193         const axutil_env_t * env);
00194 
00202     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00203     axiom_node_get_first_child(
00204         axiom_node_t * om_node,
00205         const axutil_env_t * env);
00206 
00213     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00214     axiom_node_get_first_element(
00215         axiom_node_t * om_node,
00216         const axutil_env_t * env);
00217 
00224     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00225     axiom_node_get_last_child(
00226         axiom_node_t * om_node,
00227         const axutil_env_t * env);
00228 
00236     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00237     axiom_node_get_previous_sibling(
00238         axiom_node_t * om_node,
00239         const axutil_env_t * env);
00240 
00247     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00248     axiom_node_get_next_sibling(
00249         axiom_node_t * om_node,
00250         const axutil_env_t * env);
00251 
00260     AXIS2_EXTERN axiom_types_t AXIS2_CALL
00261     axiom_node_get_node_type(
00262         axiom_node_t * om_node,
00263         const axutil_env_t * env);
00264 
00274     AXIS2_EXTERN void *AXIS2_CALL
00275     axiom_node_get_data_element(
00276         axiom_node_t * om_node,
00277         const axutil_env_t * env);
00278 
00286     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00287     axiom_node_is_complete(
00288         axiom_node_t * om_node,
00289         const axutil_env_t * env);
00290 
00301     AXIS2_EXTERN struct axiom_document *AXIS2_CALL
00302                 axiom_node_get_document(
00303                     axiom_node_t * om_node,
00304                     const axutil_env_t * env);
00305 
00313     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00314     axiom_node_to_string(
00315         axiom_node_t * om_node,
00316         const axutil_env_t * env);
00317 
00326     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00327     axiom_node_serialize_sub_tree(
00328         axiom_node_t * om_node,
00329         const axutil_env_t * env,
00330         struct axiom_output *om_output);
00331 
00339     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00340     axiom_node_sub_tree_to_string(
00341         axiom_node_t * om_node,
00342         const axutil_env_t * env);
00343 
00352     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00353     axiom_node_to_string_non_optimized(
00354         axiom_node_t * om_node,
00355         const axutil_env_t * env);
00358 #ifdef __cplusplus
00359 }
00360 #endif
00361 
00362 #endif                          /* AXIOM_NODE_H */

Generated on Fri Jul 11 11:56:35 2008 for Axis2/C by  doxygen 1.5.5