axis-c-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rafa...@apache.org
Subject svn commit: r1761351 - /axis/axis2/c/core/trunk/axiom/include/axiom_node.h
Date Sun, 18 Sep 2016 17:54:39 GMT
Author: rafaelb
Date: Sun Sep 18 17:54:38 2016
New Revision: 1761351

URL: http://svn.apache.org/viewvc?rev=1761351&view=rev
Log:
axiom_node_add_sibling function added. It can be used to generates a multipart envelop payload.
Jira: AXIS2C-1687

Modified:
    axis/axis2/c/core/trunk/axiom/include/axiom_node.h

Modified: axis/axis2/c/core/trunk/axiom/include/axiom_node.h
URL: http://svn.apache.org/viewvc/axis/axis2/c/core/trunk/axiom/include/axiom_node.h?rev=1761351&r1=1761350&r2=1761351&view=diff
==============================================================================
--- axis/axis2/c/core/trunk/axiom/include/axiom_node.h (original)
+++ axis/axis2/c/core/trunk/axiom/include/axiom_node.h Sun Sep 18 17:54:38 2016
@@ -1,411 +1,425 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef AXIOM_NODE_H
-#define AXIOM_NODE_H
-
-/**
-  * @defgroup axiom AXIOM project
-  * @{
-  * @}
-  */
-
-/**
-  * @defgroup axiom_om AXIOM
-  * @ingroup axiom
-  * @{
-  * @}
-  */
-
-/**
- * @file axiom_node.h
- * @brief defines axiom_node struct
- */
-#include <axutil_env.h>
-#include <axutil_utils.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-    typedef struct axiom_node axiom_node_t;
-    struct axiom_output;
-    struct axiom_document;
-    struct axiom_stax_builder;
-
-    /**
-     * @defgroup axiom_node  node
-     * @ingroup axiom_om
-     * @{
-     */
-
-    /**
-      * @brief AXIOM types
-      */
-    typedef enum axiom_types_t
-    {
-
-        /** Invalid node type */
-        AXIOM_INVALID = 0,
-
-        /** AXIOM document type */
-        AXIOM_DOCUMENT,
-
-        /** AXIOM element type */
-        AXIOM_ELEMENT,
-
-        /** AXIOM doctype type */
-        AXIOM_DOCTYPE,
-
-        /** AXIOM comment type */
-        AXIOM_COMMENT,
-
-        /** AXIOM attribute type */
-        AXIOM_ATTRIBUTE,
-
-        /** AXIOM namespace type */
-        AXIOM_NAMESPACE,
-
-        /** AXIOM processing instruction type */
-        AXIOM_PROCESSING_INSTRUCTION,
-
-        /** AXIOM text type */
-        AXIOM_TEXT,
-
-        /** AXIOM data source, represent a serialized XML fragment with a stream */
-        AXIOM_DATA_SOURCE
-    } axiom_types_t;
-
-    /**
-      * Creates a node struct.
-      * @param env Environment. MUST NOT be NULL, .
-      * @return a pointer to newly created node struct. NULL on error. 
-      */
-    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
-    axiom_node_create(
-        const axutil_env_t * env);
-
-    /**
-      * Creates a node struct from a character buffer.
-      * @param env Environment. MUST NOT be NULL, .
-      * @param buffer string. buffer to make the node
-      * @return a pointer to newly created node struct. NULL on error. 
-      */
-    AXIS2_EXTERN axiom_node_t* AXIS2_CALL
-    axiom_node_create_from_buffer(    
-        const axutil_env_t * env,
-        axis2_char_t *buffer);
-
-
-    /**
-    * Frees an om node and all of its children. Please note that the attached
-    * data_element will also be freed along with the node.  If the node is
-    * still attached to a parent, it will be detached first, then freed.
-    * @param om_node node to be freed.
-    * @param env Environment. MUST NOT be NULL, .
-    * @return satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE
-    */
-    AXIS2_EXTERN void AXIS2_CALL
-    axiom_node_free_tree(
-        axiom_node_t * om_node,
-        const axutil_env_t * env);
-
-    /**
-    * Adds given node as child to parent. child should not have a parent
-    * if child has a parent it will be detached from existing parent
-    * @param om_node parent node. cannot be NULL.
-    * @param env Environment. MUST NOT be NULL, .
-    * @param child child node.
-    * @return satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE
-    */
-    AXIS2_EXTERN axis2_status_t AXIS2_CALL
-    axiom_node_add_child(
-        axiom_node_t * om_node,
-        const axutil_env_t * env,
-        axiom_node_t * child);
-
-    /**
-    * Detaches given node from the parent and reset the links. Will recreate "namespace defined
in
-    * the parent and used in detached node" within detached node itself
-    * @param om_node node to be detached, cannot be NULL.
-    * @param env Environment. MUST NOT be NULL, .
-    * @return a pointer to detached node,returns NULL on error
-    */
-    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
-    axiom_node_detach(
-        axiom_node_t * om_node,
-        const axutil_env_t * env);
-
-    /**
-     * Detaches given node from the parent and reset the links. will not adjust the namespace
as
-     * in the case of axiom_node_detach.
-     * @param om_node node to be detached, cannot be NULL.
-     * @param env Environment. MUST NOT be NULL, .
-     * @return a pointer to detached node,returns NULL on error
-     */
-    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
-    axiom_node_detach_without_namespaces(
-        axiom_node_t * om_node,
-        const axutil_env_t * env);
-
-    /**
-    * Inserts a sibling node after the given node
-    * @param om_node node to whom the sibling to be inserted. , cannot be NULL.
-    * @param env Environment. MUST NOT be NULL, .
-    * @param node_to_insert the node to be inserted. , cannot be NULL.
-    * @return satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE
-    */
-    AXIS2_EXTERN axis2_status_t AXIS2_CALL
-    axiom_node_insert_sibling_after(
-        axiom_node_t * om_node,
-        const axutil_env_t * env,
-        axiom_node_t * node_to_insert);
-
-    /**
-    * Inserts a sibling node before the given current node
-    * @param om_node node to whom the sibling to be inserted. , cannot be NULL.
-    * @param env Environment. MUST NOT be NULL, .
-    * @param node_to_insert the node to be inserted. , cannot be NULL.
-    * @return satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE
-    */
-    AXIS2_EXTERN axis2_status_t AXIS2_CALL
-    axiom_node_insert_sibling_before(
-        axiom_node_t * om_node,
-        const axutil_env_t * env,
-        axiom_node_t * node_to_insert);
-
-    /**
-    * Serializes the given node. This op makes the node go
-    * through its children and  serialize them in order.
-    * @param om_node node to be serialized.  cannot be NULL.
-    * @param env Environment .MUST NOT be NULL.    
-    * @param om_output AXIOM output handler to be used in serializing
-    * @return satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE
-    */
-    AXIS2_EXTERN axis2_status_t AXIS2_CALL
-    axiom_node_serialize(
-        axiom_node_t * om_node,
-        const axutil_env_t * env,
-        struct axiom_output *om_output);
-
-    /** get parent of om_node
-    *@om_node node 
-    *@param env environment
-    *@return pointer to parent node of om_node, return NULL if no parent exists or
-    *        when an error occured.
-    */
-
-    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
-    axiom_node_get_parent(
-        axiom_node_t * om_node,
-        const axutil_env_t * env);
-
-    /**
-    * get the first child of om_node
-    * @param om_node node
-    * @param env environment must not be null.
-    * @returns pointer to first child node , NULL is returned on error with 
-    *                     error code set in environments error
-    */
-    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
-    axiom_node_get_first_child(
-        axiom_node_t * om_node,
-        const axutil_env_t * env);
-
-    /**get the first AXIOM_ELEMENT in om_node
-    * @param om_node node
-    * @param env environment must not be null
-    * @returns pointer to first child om element, NULL is returned on error
-    * with error code set in environments error.
-    */
-    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
-    axiom_node_get_first_element(
-        axiom_node_t * om_node,
-        const axutil_env_t * env);
-
-    /**
-    * get the last child
-    * @param om_node node
-    * @param env environment, MUST NOT be NULL
-    * @return pointer to last child of this node , return NULL on error.
-    */
-    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
-    axiom_node_get_last_child(
-        axiom_node_t * om_node,
-        const axutil_env_t * env);
-
-    /**
-    * get the previous sibling 
-    * @param om_node om_node struct 
-    * @param env environment , must node be null
-    * @returns a pointer to previous sibling , NULL if a previous sibling does not exits
-    *                (happens when this node is the first child of a node )
-    */
-    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
-    axiom_node_get_previous_sibling(
-        axiom_node_t * om_node,
-        const axutil_env_t * env);
-
-    /**
-    * get the previous sibling of type AXIOM_ELEMENT
-    * @param om_node om_node struct 
-    * @param env environment , must node be null
-    * @returns a pointer to previous sibling , NULL if a previous sibling does not exits
-    *                (happens when this node is the first element of a node )
-    */
-    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
-    axiom_node_get_previous_sibling_element(
-        axiom_node_t * om_node,
-        const axutil_env_t * env);
-
-    /**
-    * get next sibling
-    * @param om_node om_node struct
-    * @param env environment, MUST NOT be NULL.
-    * @return next sibling of this node.
-    */
-    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
-    axiom_node_get_next_sibling(
-        axiom_node_t * om_node,
-        const axutil_env_t * env);
-
-    /**
-    * get next sibling of type AXIOM_ELEMENT
-    * @param om_node om_node struct
-    * @param env environment, MUST NOT be NULL.
-    * @return next sibling of this node.
-    */
-    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
-    axiom_node_get_next_sibling_element(
-        axiom_node_t * om_node,
-        const axutil_env_t * env);
-
-    /**
-    * get the node type of this element
-    * Node type can be one of AXIOM_ELEMENT, AXIOM_COMMENT, AXIOM_TEXT
-    *      AXIOM_DOCTYPE, AXIOM_PROCESSING_INSTRUCTION
-    * @param om_node  node of which node type is required
-    * @param env environment
-    * @return node type
-    */
-    AXIS2_EXTERN axiom_types_t AXIS2_CALL
-    axiom_node_get_node_type(
-        axiom_node_t * om_node,
-        const axutil_env_t * env);
-
-    /**
-    * get the struct contained in the node
-    * IF the node is on type AXIOM_ELEMENT , this method returns
-    * a pointer to  axiom_element_t struct contained
-    * @param om_node node
-    * @param env environment, MUST NOT be NULL.
-    * @returns pointer to struct contained in the node
-    *          returns NULL if no struct is contained 
-    */
-    AXIS2_EXTERN void *AXIS2_CALL
-    axiom_node_get_data_element(
-        axiom_node_t * om_node,
-        const axutil_env_t * env);
-
-    /**
-    * Indicates whether parser has parsed this information item completely or not 
-    * @param om_node om_node struct
-    * @param env environment, MUST NOT be NULL.
-    * @returns AXIS2_TRUE if node is completly build, 
-    *          AXIS2_FALSE if node is not completed
-    */
-    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
-    axiom_node_is_complete(
-        axiom_node_t * om_node,
-        const axutil_env_t * env);
-
-    /**
-     * returns the associated document,
-     * only valid if built using builder and for a node of type 
-     * AXIOM_ELEMENT
-     * returns null if no document is available
-     * @param om_node 
-     * @param env environment, MUST NOT be NULL.
-     *
-     * @return the OM document of the node
-     */
-    AXIS2_EXTERN struct axiom_document *AXIS2_CALL
-                axiom_node_get_document(
-                    axiom_node_t * om_node,
-                    const axutil_env_t * env);
-
-    /**
-     *
-     * @param om_node pointer to the OM node struct
-     * @param env environment, MUST NOT be NULL
-     *
-     * @return the string representation of the node
-     */
-    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
-    axiom_node_to_string(
-        axiom_node_t * om_node,
-        const axutil_env_t * env);
-
-    /**
-     *
-     * @param om_node pointer to the OM node struct
-     * @param env environment, MUST NOT be NULL
-     * @param om_output the serialized output will be placed here
-     *
-     * @return AXIS2_SUCCESS on success else AXIS2_FAILURE
-     */
-    AXIS2_EXTERN axis2_status_t AXIS2_CALL
-    axiom_node_serialize_sub_tree(
-        axiom_node_t * om_node,
-        const axutil_env_t * env,
-        struct axiom_output *om_output);
-
-    /**
-     *
-     * @param om_node pointer to the OM node struct
-     * @param env environment, MUST NOT be NULL
-     *
-     * @return the tree as a string
-     */
-    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
-    axiom_node_sub_tree_to_string(
-        axiom_node_t * om_node,
-        const axutil_env_t * env);
-
-    /**
-     * Convert the node to string, treating the binary contents, if any, 
-     * as non-optimized content.
-     * @param om_node pointer to the OM node struct
-     * @param env environment, MUST NOT be NULL
-     *
-     * @return the none optimized string 
-     */
-    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
-    axiom_node_to_string_non_optimized(
-        axiom_node_t * om_node,
-        const axutil_env_t * env);
-    
-
-    /** @} */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif                          /* AXIOM_NODE_H */
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIOM_NODE_H
+#define AXIOM_NODE_H
+
+/**
+  * @defgroup axiom AXIOM project
+  * @{
+  * @}
+  */
+
+/**
+  * @defgroup axiom_om AXIOM
+  * @ingroup axiom
+  * @{
+  * @}
+  */
+
+/**
+ * @file axiom_node.h
+ * @brief defines axiom_node struct
+ */
+#include <axutil_env.h>
+#include <axutil_utils.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+    typedef struct axiom_node axiom_node_t;
+    struct axiom_output;
+    struct axiom_document;
+    struct axiom_stax_builder;
+
+    /**
+     * @defgroup axiom_node  node
+     * @ingroup axiom_om
+     * @{
+     */
+
+    /**
+      * @brief AXIOM types
+      */
+    typedef enum axiom_types_t
+    {
+
+        /** Invalid node type */
+        AXIOM_INVALID = 0,
+
+        /** AXIOM document type */
+        AXIOM_DOCUMENT,
+
+        /** AXIOM element type */
+        AXIOM_ELEMENT,
+
+        /** AXIOM doctype type */
+        AXIOM_DOCTYPE,
+
+        /** AXIOM comment type */
+        AXIOM_COMMENT,
+
+        /** AXIOM attribute type */
+        AXIOM_ATTRIBUTE,
+
+        /** AXIOM namespace type */
+        AXIOM_NAMESPACE,
+
+        /** AXIOM processing instruction type */
+        AXIOM_PROCESSING_INSTRUCTION,
+
+        /** AXIOM text type */
+        AXIOM_TEXT,
+
+        /** AXIOM data source, represent a serialized XML fragment with a stream */
+        AXIOM_DATA_SOURCE
+    } axiom_types_t;
+
+    /**
+      * Creates a node struct.
+      * @param env Environment. MUST NOT be NULL, .
+      * @return a pointer to newly created node struct. NULL on error. 
+      */
+    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
+    axiom_node_create(
+        const axutil_env_t * env);
+
+    /**
+      * Creates a node struct from a character buffer.
+      * @param env Environment. MUST NOT be NULL, .
+      * @param buffer string. buffer to make the node
+      * @return a pointer to newly created node struct. NULL on error. 
+      */
+    AXIS2_EXTERN axiom_node_t* AXIS2_CALL
+    axiom_node_create_from_buffer(    
+        const axutil_env_t * env,
+        axis2_char_t *buffer);
+
+
+    /**
+    * Frees an om node and all of its children. Please note that the attached
+    * data_element will also be freed along with the node.  If the node is
+    * still attached to a parent, it will be detached first, then freed.
+    * @param om_node node to be freed.
+    * @param env Environment. MUST NOT be NULL, .
+    * @return satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE
+    */
+    AXIS2_EXTERN void AXIS2_CALL
+    axiom_node_free_tree(
+        axiom_node_t * om_node,
+        const axutil_env_t * env);
+
+    /**
+    * Adds given node as child to parent. child should not have a parent
+    * if child has a parent it will be detached from existing parent
+    * @param om_node parent node. cannot be NULL.
+    * @param env Environment. MUST NOT be NULL, .
+    * @param child child node.
+    * @return satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE
+    */
+    AXIS2_EXTERN axis2_status_t AXIS2_CALL
+    axiom_node_add_child(
+        axiom_node_t * om_node,
+        const axutil_env_t * env,
+        axiom_node_t * child);
+
+    /**
+    * Detaches given node from the parent and reset the links. Will recreate "namespace defined
in
+    * the parent and used in detached node" within detached node itself
+    * @param om_node node to be detached, cannot be NULL.
+    * @param env Environment. MUST NOT be NULL, .
+    * @return a pointer to detached node,returns NULL on error
+    */
+    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
+    axiom_node_detach(
+        axiom_node_t * om_node,
+        const axutil_env_t * env);
+
+    /**
+     * Detaches given node from the parent and reset the links. will not adjust the namespace
as
+     * in the case of axiom_node_detach.
+     * @param om_node node to be detached, cannot be NULL.
+     * @param env Environment. MUST NOT be NULL, .
+     * @return a pointer to detached node,returns NULL on error
+     */
+    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
+    axiom_node_detach_without_namespaces(
+        axiom_node_t * om_node,
+        const axutil_env_t * env);
+
+    /**
+    * Inserts a sibling node after the given node
+    * @param om_node node to whom the sibling to be inserted. , cannot be NULL.
+    * @param env Environment. MUST NOT be NULL, .
+    * @param node_to_insert the node to be inserted. , cannot be NULL.
+    * @return satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE
+    */
+    AXIS2_EXTERN axis2_status_t AXIS2_CALL
+    axiom_node_insert_sibling_after(
+        axiom_node_t * om_node,
+        const axutil_env_t * env,
+        axiom_node_t * node_to_insert);
+
+    /**
+    * Inserts a sibling node before the given current node
+    * @param om_node node to whom the sibling to be inserted. , cannot be NULL.
+    * @param env Environment. MUST NOT be NULL, .
+    * @param node_to_insert the node to be inserted. , cannot be NULL.
+    * @return satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE
+    */
+    AXIS2_EXTERN axis2_status_t AXIS2_CALL
+    axiom_node_insert_sibling_before(
+        axiom_node_t * om_node,
+        const axutil_env_t * env,
+        axiom_node_t * node_to_insert);
+
+    /**
+    * Serializes the given node. This op makes the node go
+    * through its children and  serialize them in order.
+    * @param om_node node to be serialized.  cannot be NULL.
+    * @param env Environment .MUST NOT be NULL.    
+    * @param om_output AXIOM output handler to be used in serializing
+    * @return satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE
+    */
+    AXIS2_EXTERN axis2_status_t AXIS2_CALL
+    axiom_node_serialize(
+        axiom_node_t * om_node,
+        const axutil_env_t * env,
+        struct axiom_output *om_output);
+
+    /** get parent of om_node
+    *@om_node node 
+    *@param env environment
+    *@return pointer to parent node of om_node, return NULL if no parent exists or
+    *        when an error occured.
+    */
+
+    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
+    axiom_node_get_parent(
+        axiom_node_t * om_node,
+        const axutil_env_t * env);
+
+    /**
+    * get the first child of om_node
+    * @param om_node node
+    * @param env environment must not be null.
+    * @returns pointer to first child node , NULL is returned on error with 
+    *                     error code set in environments error
+    */
+    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
+    axiom_node_get_first_child(
+        axiom_node_t * om_node,
+        const axutil_env_t * env);
+
+    /**get the first AXIOM_ELEMENT in om_node
+    * @param om_node node
+    * @param env environment must not be null
+    * @returns pointer to first child om element, NULL is returned on error
+    * with error code set in environments error.
+    */
+    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
+    axiom_node_get_first_element(
+        axiom_node_t * om_node,
+        const axutil_env_t * env);
+
+    /**
+    * get the last child
+    * @param om_node node
+    * @param env environment, MUST NOT be NULL
+    * @return pointer to last child of this node , return NULL on error.
+    */
+    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
+    axiom_node_get_last_child(
+        axiom_node_t * om_node,
+        const axutil_env_t * env);
+
+    /**
+    * get the previous sibling 
+    * @param om_node om_node struct 
+    * @param env environment , must node be null
+    * @returns a pointer to previous sibling , NULL if a previous sibling does not exits
+    *                (happens when this node is the first child of a node )
+    */
+    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
+    axiom_node_get_previous_sibling(
+        axiom_node_t * om_node,
+        const axutil_env_t * env);
+
+    /**
+    * get the previous sibling of type AXIOM_ELEMENT
+    * @param om_node om_node struct 
+    * @param env environment , must node be null
+    * @returns a pointer to previous sibling , NULL if a previous sibling does not exits
+    *                (happens when this node is the first element of a node )
+    */
+    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
+    axiom_node_get_previous_sibling_element(
+        axiom_node_t * om_node,
+        const axutil_env_t * env);
+
+    /**
+    * get next sibling
+    * @param om_node om_node struct
+    * @param env environment, MUST NOT be NULL.
+    * @return next sibling of this node.
+    */
+    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
+    axiom_node_get_next_sibling(
+        axiom_node_t * om_node,
+        const axutil_env_t * env);
+
+    /**
+    * get next sibling of type AXIOM_ELEMENT
+    * @param om_node om_node struct
+    * @param env environment, MUST NOT be NULL.
+    * @return next sibling of this node.
+    */
+    AXIS2_EXTERN axiom_node_t *AXIS2_CALL
+    axiom_node_get_next_sibling_element(
+        axiom_node_t * om_node,
+        const axutil_env_t * env);
+
+    /**
+    * get the node type of this element
+    * Node type can be one of AXIOM_ELEMENT, AXIOM_COMMENT, AXIOM_TEXT
+    *      AXIOM_DOCTYPE, AXIOM_PROCESSING_INSTRUCTION
+    * @param om_node  node of which node type is required
+    * @param env environment
+    * @return node type
+    */
+    AXIS2_EXTERN axiom_types_t AXIS2_CALL
+    axiom_node_get_node_type(
+        axiom_node_t * om_node,
+        const axutil_env_t * env);
+
+    /**
+    * get the struct contained in the node
+    * IF the node is on type AXIOM_ELEMENT , this method returns
+    * a pointer to  axiom_element_t struct contained
+    * @param om_node node
+    * @param env environment, MUST NOT be NULL.
+    * @returns pointer to struct contained in the node
+    *          returns NULL if no struct is contained 
+    */
+    AXIS2_EXTERN void *AXIS2_CALL
+    axiom_node_get_data_element(
+        axiom_node_t * om_node,
+        const axutil_env_t * env);
+
+    /**
+    * Indicates whether parser has parsed this information item completely or not 
+    * @param om_node om_node struct
+    * @param env environment, MUST NOT be NULL.
+    * @returns AXIS2_TRUE if node is completly build, 
+    *          AXIS2_FALSE if node is not completed
+    */
+    AXIS2_EXTERN axis2_bool_t AXIS2_CALL
+    axiom_node_is_complete(
+        axiom_node_t * om_node,
+        const axutil_env_t * env);
+
+    /**
+     * returns the associated document,
+     * only valid if built using builder and for a node of type 
+     * AXIOM_ELEMENT
+     * returns null if no document is available
+     * @param om_node 
+     * @param env environment, MUST NOT be NULL.
+     *
+     * @return the OM document of the node
+     */
+    AXIS2_EXTERN struct axiom_document *AXIS2_CALL
+                axiom_node_get_document(
+                    axiom_node_t * om_node,
+                    const axutil_env_t * env);
+
+    /**
+     *
+     * @param om_node pointer to the OM node struct
+     * @param env environment, MUST NOT be NULL
+     *
+     * @return the string representation of the node
+     */
+    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+    axiom_node_to_string(
+        axiom_node_t * om_node,
+        const axutil_env_t * env);
+
+    /**
+     *
+     * @param om_node pointer to the OM node struct
+     * @param env environment, MUST NOT be NULL
+     * @param om_output the serialized output will be placed here
+     *
+     * @return AXIS2_SUCCESS on success else AXIS2_FAILURE
+     */
+    AXIS2_EXTERN axis2_status_t AXIS2_CALL
+    axiom_node_serialize_sub_tree(
+        axiom_node_t * om_node,
+        const axutil_env_t * env,
+        struct axiom_output *om_output);
+
+    /**
+     *
+     * @param om_node pointer to the OM node struct
+     * @param env environment, MUST NOT be NULL
+     *
+     * @return the tree as a string
+     */
+    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+    axiom_node_sub_tree_to_string(
+        axiom_node_t * om_node,
+        const axutil_env_t * env);
+
+    /**
+     * Convert the node to string, treating the binary contents, if any, 
+     * as non-optimized content.
+     * @param om_node pointer to the OM node struct
+     * @param env environment, MUST NOT be NULL
+     *
+     * @return the none optimized string 
+     */
+    AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+    axiom_node_to_string_non_optimized(
+        axiom_node_t * om_node,
+        const axutil_env_t * env);
+    
+	/**
+	* Adds nodeElemSibling to nodeElem as a sibling. It can be used to generates a multipart
envelop payload.
+	* @param env pointer to environment struct
+	* @param nodeElem pointer to first part, element to has sibling added
+	* @param nodeElemSibling pointer to second part, sibling to be added
+	*
+	* @return axiom_node_t pointer to param nodeElem pointer with sibling added
+	*/
+	AXIS2_EXTERN axiom_node_t * AXIS2_CALL
+		axiom_node_add_sibling(
+			const axutil_env_t *env,
+			axiom_node_t *nodeElem,
+			axiom_node_t *nodeElemSibling);
+
+
+    /** @} */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif                          /* AXIOM_NODE_H */



Mime
View raw message