axiom_node.h

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 #ifndef AXIOM_NODE_H
00019 #define AXIOM_NODE_H
00020 
00038 #include <axutil_env.h>
00039 #include <axutil_utils.h>
00040 
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;
00060     typedef enum axiom_types_t
00061     {
00063         AXIOM_INVALID = 0,
00065         AXIOM_DOCUMENT,
00067         AXIOM_ELEMENT,
00069         AXIOM_DOCTYPE,
00071         AXIOM_COMMENT,
00073         AXIOM_ATTRIBUTE,
00075         AXIOM_NAMESPACE,
00077         AXIOM_PROCESSING_INSTRUCTION,
00079         AXIOM_TEXT,
00081         AXIOM_DATA_SOURCE
00082     } axiom_types_t;
00083 
00089     AXIS2_EXTERN axiom_node_t * AXIS2_CALL
00090     axiom_node_create(const axutil_env_t *env);
00091 
00098     AXIS2_EXTERN void AXIS2_CALL
00099     axiom_node_free_tree(axiom_node_t *om_node,
00100             const axutil_env_t *env);
00109     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00110     axiom_node_add_child(axiom_node_t* om_node,
00111             const axutil_env_t *env,
00112             axiom_node_t *child);
00113 
00121     AXIS2_EXTERN axiom_node_t* AXIS2_CALL
00122     axiom_node_detach(axiom_node_t  *om_node,
00123             const axutil_env_t *env);
00124 
00132     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00133     axiom_node_insert_sibling_after(axiom_node_t  *om_node,
00134             const axutil_env_t *env,
00135             axiom_node_t  * node_to_insert);
00136 
00144     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00145     axiom_node_insert_sibling_before(axiom_node_t  *om_node,
00146             const axutil_env_t *env,
00147             axiom_node_t  * node_to_insert);
00148 
00157     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00158     axiom_node_serialize(axiom_node_t  * om_node,
00159             const axutil_env_t *env,
00160             struct axiom_output *om_output);
00161 
00169     AXIS2_EXTERN axiom_node_t * AXIS2_CALL
00170     axiom_node_get_parent(axiom_node_t  *om_node,
00171             const axutil_env_t *env);
00172 
00180     AXIS2_EXTERN axiom_node_t * AXIS2_CALL
00181     axiom_node_get_first_child(axiom_node_t  *om_node,
00182             const axutil_env_t *env);
00183 
00190     AXIS2_EXTERN axiom_node_t * AXIS2_CALL
00191     axiom_node_get_first_element(axiom_node_t  *om_node,
00192             const axutil_env_t *env);
00193 
00200     AXIS2_EXTERN axiom_node_t * AXIS2_CALL
00201     axiom_node_get_last_child(axiom_node_t  *om_node,
00202             const axutil_env_t *env);
00210     AXIS2_EXTERN axiom_node_t * AXIS2_CALL
00211     axiom_node_get_previous_sibling(axiom_node_t  *om_node,
00212             const axutil_env_t *env);
00219     AXIS2_EXTERN axiom_node_t * AXIS2_CALL
00220     axiom_node_get_next_sibling(axiom_node_t  *om_node,
00221             const axutil_env_t *env);
00230     AXIS2_EXTERN axiom_types_t AXIS2_CALL
00231     axiom_node_get_node_type(axiom_node_t  *om_node,
00232             const axutil_env_t *env);
00242     AXIS2_EXTERN void* AXIS2_CALL
00243     axiom_node_get_data_element(axiom_node_t  *om_node,
00244             const axutil_env_t *env);
00252     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00253     axiom_node_is_complete(axiom_node_t  *om_node,
00254             const axutil_env_t *env);
00263     AXIS2_EXTERN struct axiom_document* AXIS2_CALL
00264                 axiom_node_get_document(axiom_node_t *om_node,
00265                         const axutil_env_t *env);
00266 
00267     AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00268     axiom_node_to_string(axiom_node_t *om_node,
00269             const axutil_env_t *env);
00270 
00271     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00272     axiom_node_serialize_sub_tree(axiom_node_t *om_node,
00273         const axutil_env_t *env,
00274         struct axiom_output *om_output);
00275 
00278 #ifdef __cplusplus
00279 }
00280 #endif
00281 
00282 #endif                          /* AXIOM_NODE_H */

Generated on Thu May 3 12:31:01 2007 for Axis2/C by  doxygen 1.4.6