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 
00110     AXIS2_EXTERN axiom_node_t* AXIS2_CALL
00111     axiom_node_create_from_buffer(    
00112         const axutil_env_t * env,
00113         axis2_char_t *buffer);
00114 
00115 
00124     AXIS2_EXTERN void AXIS2_CALL
00125     axiom_node_free_tree(
00126         axiom_node_t * om_node,
00127         const axutil_env_t * env);
00128 
00137     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00138     axiom_node_add_child(
00139         axiom_node_t * om_node,
00140         const axutil_env_t * env,
00141         axiom_node_t * child);
00142 
00150     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00151     axiom_node_detach(
00152         axiom_node_t * om_node,
00153         const axutil_env_t * env);
00154 
00162     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00163     axiom_node_insert_sibling_after(
00164         axiom_node_t * om_node,
00165         const axutil_env_t * env,
00166         axiom_node_t * node_to_insert);
00167 
00175     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00176     axiom_node_insert_sibling_before(
00177         axiom_node_t * om_node,
00178         const axutil_env_t * env,
00179         axiom_node_t * node_to_insert);
00180 
00189     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00190     axiom_node_serialize(
00191         axiom_node_t * om_node,
00192         const axutil_env_t * env,
00193         struct axiom_output *om_output);
00194 
00202     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00203     axiom_node_get_parent(
00204         axiom_node_t * om_node,
00205         const axutil_env_t * env);
00206 
00214     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00215     axiom_node_get_first_child(
00216         axiom_node_t * om_node,
00217         const axutil_env_t * env);
00218 
00225     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00226     axiom_node_get_first_element(
00227         axiom_node_t * om_node,
00228         const axutil_env_t * env);
00229 
00236     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00237     axiom_node_get_last_child(
00238         axiom_node_t * om_node,
00239         const axutil_env_t * env);
00240 
00248     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00249     axiom_node_get_previous_sibling(
00250         axiom_node_t * om_node,
00251         const axutil_env_t * env);
00252 
00259     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00260     axiom_node_get_next_sibling(
00261         axiom_node_t * om_node,
00262         const axutil_env_t * env);
00263 
00272     AXIS2_EXTERN axiom_types_t AXIS2_CALL
00273     axiom_node_get_node_type(
00274         axiom_node_t * om_node,
00275         const axutil_env_t * env);
00276 
00286     AXIS2_EXTERN void *AXIS2_CALL
00287     axiom_node_get_data_element(
00288         axiom_node_t * om_node,
00289         const axutil_env_t * env);
00290 
00298     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00299     axiom_node_is_complete(
00300         axiom_node_t * om_node,
00301         const axutil_env_t * env);
00302 
00313     AXIS2_EXTERN struct axiom_document *AXIS2_CALL
00314                 axiom_node_get_document(
00315                     axiom_node_t * om_node,
00316                     const axutil_env_t * env);
00317 
00325     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00326     axiom_node_to_string(
00327         axiom_node_t * om_node,
00328         const axutil_env_t * env);
00329 
00338     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00339     axiom_node_serialize_sub_tree(
00340         axiom_node_t * om_node,
00341         const axutil_env_t * env,
00342         struct axiom_output *om_output);
00343 
00351     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00352     axiom_node_sub_tree_to_string(
00353         axiom_node_t * om_node,
00354         const axutil_env_t * env);
00355 
00364     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00365     axiom_node_to_string_non_optimized(
00366         axiom_node_t * om_node,
00367         const axutil_env_t * env);
00370 #ifdef __cplusplus
00371 }
00372 #endif
00373 
00374 #endif                          /* AXIOM_NODE_H */

Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by  doxygen 1.5.3