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 void AXIS2_CALL
00111     axiom_node_free_tree(
00112         axiom_node_t * om_node,
00113         const axutil_env_t * env);
00114 
00123     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00124     axiom_node_add_child(
00125         axiom_node_t * om_node,
00126         const axutil_env_t * env,
00127         axiom_node_t * child);
00128 
00136     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00137     axiom_node_detach(
00138         axiom_node_t * om_node,
00139         const axutil_env_t * env);
00140 
00148     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00149     axiom_node_insert_sibling_after(
00150         axiom_node_t * om_node,
00151         const axutil_env_t * env,
00152         axiom_node_t * node_to_insert);
00153 
00161     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00162     axiom_node_insert_sibling_before(
00163         axiom_node_t * om_node,
00164         const axutil_env_t * env,
00165         axiom_node_t * node_to_insert);
00166 
00175     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00176     axiom_node_serialize(
00177         axiom_node_t * om_node,
00178         const axutil_env_t * env,
00179         struct axiom_output *om_output);
00180 
00188     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00189     axiom_node_get_parent(
00190         axiom_node_t * om_node,
00191         const axutil_env_t * env);
00192 
00200     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00201     axiom_node_get_first_child(
00202         axiom_node_t * om_node,
00203         const axutil_env_t * env);
00204 
00211     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00212     axiom_node_get_first_element(
00213         axiom_node_t * om_node,
00214         const axutil_env_t * env);
00215 
00222     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00223     axiom_node_get_last_child(
00224         axiom_node_t * om_node,
00225         const axutil_env_t * env);
00226 
00234     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00235     axiom_node_get_previous_sibling(
00236         axiom_node_t * om_node,
00237         const axutil_env_t * env);
00238 
00245     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
00246     axiom_node_get_next_sibling(
00247         axiom_node_t * om_node,
00248         const axutil_env_t * env);
00249 
00258     AXIS2_EXTERN axiom_types_t AXIS2_CALL
00259     axiom_node_get_node_type(
00260         axiom_node_t * om_node,
00261         const axutil_env_t * env);
00262 
00272     AXIS2_EXTERN void *AXIS2_CALL
00273     axiom_node_get_data_element(
00274         axiom_node_t * om_node,
00275         const axutil_env_t * env);
00276 
00284     AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00285     axiom_node_is_complete(
00286         axiom_node_t * om_node,
00287         const axutil_env_t * env);
00288 
00297     AXIS2_EXTERN struct axiom_document *AXIS2_CALL
00298                 axiom_node_get_document(
00299                     axiom_node_t * om_node,
00300                     const axutil_env_t * env);
00301 
00302     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00303     axiom_node_to_string(
00304         axiom_node_t * om_node,
00305         const axutil_env_t * env);
00306 
00307     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00308     axiom_node_serialize_sub_tree(
00309         axiom_node_t * om_node,
00310         const axutil_env_t * env,
00311         struct axiom_output *om_output);
00312 
00313     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00314     axiom_node_sub_tree_to_string(
00315         axiom_node_t * om_node,
00316         const axutil_env_t * env);
00317 
00322     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00323     axiom_node_to_string_non_optimized(
00324         axiom_node_t * om_node,
00325         const axutil_env_t * env);
00328 #ifdef __cplusplus
00329 }
00330 #endif
00331 
00332 #endif                          /* AXIOM_NODE_H */

Generated on Tue Jan 8 01:23:15 2008 for Axis2/C by  doxygen 1.5.1