xmlsrv_plat/cxml_library_api/inc/nw_dom_node.h
branchRCL_3
changeset 32 889504eac4fb
equal deleted inserted replaced
31:6bcc0aa4be39 32:889504eac4fb
       
     1 /*
       
     2 * Copyright (c) 2000 - 2001 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of the License "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: 
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 /** ----------------------------------------------------------------------- **
       
    20     @package:     NW_DOM
       
    21 
       
    22     @synopsis:    default
       
    23 
       
    24     @description: default
       
    25 
       
    26  ** ----------------------------------------------------------------------- **/
       
    27 #ifndef NW_DOM_NODE_H
       
    28 #define NW_DOM_NODE_H
       
    29 
       
    30 #include <xml/cxml/nw_tinytree.h>
       
    31 #include <xml/cxml/nw_tinydom.h>
       
    32 #include <xml/cxml/nw_string_string.h>
       
    33 
       
    34 #ifdef __cplusplus
       
    35 extern "C" {
       
    36 #endif /* __cplusplus */
       
    37 
       
    38 
       
    39 /** ----------------------------------------------------------------------- **
       
    40     @typedef:     NW_DOM_Node
       
    41 
       
    42     @synopsis:    Dom nodes are defined to be just tiny tree nodes.  
       
    43 
       
    44     @scope:       public
       
    45      
       
    46     @type:        NW_TinyTree_Node_t
       
    47 
       
    48     @description: Dom nodes are defined to be just tiny tree nodes.
       
    49                   This allows the Dom API to return the 32 bit pointers
       
    50                   it gets from the Tiny Tree and Tiny Dom APIs rather
       
    51                   than having to allocate any memory. This memory
       
    52                   savings comes at some cost, however: most Tiny Tree
       
    53                   API calls require a tree reference, and getting a tree
       
    54                   reference from an tiny dom node is an inefficient
       
    55                   operation (it requires a linear search of the node's
       
    56                   storage segment). We assume that this computation vs
       
    57                   memory tradeoff is worthwhile on small platforms.  One
       
    58                   alternative would be to require the tree as a
       
    59                   parameter to many Dom API calls, but this would be a
       
    60                   substantial departure from the standard Dom model.
       
    61 
       
    62  ** ----------------------------------------------------------------------- **/
       
    63 typedef NW_TinyTree_Node_t NW_DOM_Node_t;
       
    64 
       
    65 /* Specific node types used by the DOM API */
       
    66 
       
    67 typedef NW_Uint16 NW_DOM_NodeType_t;
       
    68 
       
    69 #define NW_DOM_ELEMENT_NODE                1
       
    70 #define NW_DOM_TEXT_NODE                   2
       
    71 #define NW_DOM_CDATA_SECTION_NODE          4 /* only for XML  */
       
    72 #define NW_DOM_PROCESSING_INSTRUCTION_NODE 8
       
    73 #define NW_DOM_COMMENT_NODE                16 /* only for XML  */
       
    74 #define NW_DOM_DOCUMENT_NODE               32
       
    75 
       
    76 typedef NW_DOM_Node_t NW_DOM_ElementNode_t;
       
    77 /*typedef NW_DOM_Node_t NW_DOM_DocumentNode_t; */
       
    78 /* Declared in nw_tiny_tree.h */
       
    79 typedef NW_DOM_Node_t NW_DOM_TextNode_t;
       
    80 typedef NW_DOM_Node_t NW_DOM_CommentNode_t;
       
    81 typedef NW_DOM_Node_t NW_DOM_CDATASectionNode_t;
       
    82 typedef NW_DOM_Node_t NW_DOM_ProcessingInstructionNode_t;
       
    83 
       
    84 /*  ----------------------------------------------------------------------- **
       
    85     GENERAL NODE METHODS - applicable to all node types
       
    86     These methods will be repeated for other Node types also
       
    87  ** ----------------------------------------------------------------------- **/
       
    88 
       
    89 
       
    90 /** ----------------------------------------------------------------------- **
       
    91     @function:    NW_DOM_Node_getNodeName
       
    92 
       
    93     @synopsis:    Get name of node.
       
    94 
       
    95     @scope:       public
       
    96 
       
    97     @parameters:
       
    98        [in] NW_DOM_Node_t* elem
       
    99                   The node.
       
   100 
       
   101        [in-out] NW_String_t* name
       
   102                   The name of the node.
       
   103 
       
   104     @description: Get name of node.
       
   105 
       
   106     @returns:     NW_Status_t
       
   107                   Result of operation.
       
   108 
       
   109        [NW_STAT_SUCCESS]
       
   110                   Node name returned.
       
   111 
       
   112        [NW_STAT_DOM_NODE_TYPE_ERR]
       
   113                   Node type could not be determined.
       
   114        
       
   115        [NW_STAT_DOM_NO_STRING_RETURNED]
       
   116                   Node does not have name.
       
   117 
       
   118        [NW_STAT_DOM_NODE_TYPE_ERR]
       
   119                   It is not a NW_DOM_ELEMENT_NODE
       
   120 
       
   121        [NW_STAT_OUT_OF_MEMORY]
       
   122                   Ran out of memory trying to allocate string storage.
       
   123 
       
   124        [NW_STAT_WBXML_ERROR_CHARSET_UNSUPPORTED]
       
   125                   Illegal character set.
       
   126 
       
   127        [NW_STAT_FAILURE]
       
   128                   String found but empty.
       
   129 
       
   130  ** ----------------------------------------------------------------------- **/
       
   131 IMPORT_C NW_Status_t 
       
   132 NW_DOM_Node_getNodeName(NW_DOM_Node_t* elem, NW_String_t* name); 
       
   133 
       
   134 
       
   135 /** ----------------------------------------------------------------------- **
       
   136     @function:    NW_DOM_Node_getNodeType
       
   137 
       
   138     @synopsis:    Gets the type of DOM node.
       
   139 
       
   140     @scope:       public
       
   141 
       
   142     @parameters:
       
   143        [in] NW_DOM_Node_t* node
       
   144                   The node.
       
   145 
       
   146     @description: Gets the type of DOM node.
       
   147 
       
   148     @returns:     NW_DOM_NodeType_t
       
   149                   Node type or zero if not recognized node.
       
   150 
       
   151  ** ----------------------------------------------------------------------- **/
       
   152 IMPORT_C NW_DOM_NodeType_t
       
   153 NW_DOM_Node_getNodeType(NW_DOM_Node_t* node); 
       
   154 
       
   155 
       
   156 /** ----------------------------------------------------------------------- **
       
   157     @function:    NW_DOM_Node_getNodeToken
       
   158 
       
   159     @synopsis:    Gets the token associated with the node.
       
   160 
       
   161     @scope:       public
       
   162 
       
   163     @parameters:
       
   164        [in] NW_DOM_Node_t* node
       
   165                   The node.
       
   166 
       
   167     @description: Returns fully qualified node token. This includes the 
       
   168                   token, codepage and a attribute/element flag.
       
   169 
       
   170     @returns:     NW_Uint16
       
   171                   The 8 bit token and 8 bit codepage which includes an 
       
   172                   attribute/elent flag.
       
   173 
       
   174  ** ----------------------------------------------------------------------- **/
       
   175 IMPORT_C NW_Uint16 
       
   176 NW_DOM_Node_getNodeToken(NW_DOM_Node_t* node); 
       
   177 
       
   178 
       
   179 /** ----------------------------------------------------------------------- **
       
   180     @function:    NW_DOM_Node_isWBXML
       
   181 
       
   182     @synopsis:    Checks if the node was created by parsing WBXML content.
       
   183 
       
   184     @scope:       public
       
   185 
       
   186     @parameters:
       
   187        [in] NW_DOM_Node_t* node
       
   188                   The node.
       
   189 
       
   190     @description: Checks if the node was created by parsing WBXML content.
       
   191 
       
   192     @returns:     NW_Bool
       
   193                   NW_TRUE if WBXML type, otherwise NW_FALSE.
       
   194 
       
   195  ** ----------------------------------------------------------------------- **/
       
   196 NW_Bool 
       
   197 NW_DOM_Node_isWBXML(NW_DOM_Node_t* node);
       
   198 
       
   199 
       
   200 /** ----------------------------------------------------------------------- **
       
   201     @function:    NW_DOM_Node_getParentNode
       
   202 
       
   203     @synopsis:    Gets the parent of the node.
       
   204 
       
   205     @scope:       public
       
   206 
       
   207     @parameters:
       
   208        [in] NW_DOM_Node_t* node
       
   209                   The node.
       
   210 
       
   211     @description: Finds parent node of the given node. All nodes except 
       
   212                   DocumentNode have a parentNode.
       
   213 
       
   214     @returns:     NW_DOM_Node_t*
       
   215                   Parent or NULL if invalid operation or if parent node 
       
   216                   is a DocumentNode.
       
   217 
       
   218  ** ----------------------------------------------------------------------- **/
       
   219 IMPORT_C NW_DOM_Node_t* 
       
   220 NW_DOM_Node_getParentNode(NW_DOM_Node_t* node); 
       
   221 
       
   222 
       
   223 /** ----------------------------------------------------------------------- **
       
   224     @function:    NW_DOM_Node_getFirstChild
       
   225 
       
   226     @synopsis:    Finds the first child of the node.
       
   227 
       
   228     @scope:       public
       
   229 
       
   230     @parameters:
       
   231        [in] NW_DOM_Node_t* node
       
   232                   The node.
       
   233 
       
   234     @description: Returns valid values only for ELEMENT_NODE and DOCUMENT_NODE.
       
   235                   These are the only nodes that have children. For other nodes
       
   236                   the value is NULL.
       
   237 
       
   238     @returns:     NW_DOM_Node_t*
       
   239                   The first child of this node or NULL if the node has no child.
       
   240 
       
   241  ** ----------------------------------------------------------------------- **/
       
   242 IMPORT_C NW_DOM_Node_t* 
       
   243 NW_DOM_Node_getFirstChild(NW_DOM_Node_t* node); 
       
   244 
       
   245 
       
   246 /** ----------------------------------------------------------------------- **
       
   247     @function:    NW_DOM_Node_getLastChild
       
   248 
       
   249     @synopsis:    Finds the last child of the node.
       
   250 
       
   251     @scope:       public
       
   252 
       
   253     @parameters:
       
   254        [in] NW_DOM_Node_t* node
       
   255                   The node.
       
   256 
       
   257     @description: Returns valid values only for ELEMENT_NODE and DOCUMENT_NODE.
       
   258                   These are the only nodes that have children. For other nodes
       
   259                   the value is either NULL or 0.
       
   260 
       
   261     @returns:     NW_DOM_Node_t*
       
   262                   The last child of this node or NULL if the node has no child.
       
   263 
       
   264  ** ----------------------------------------------------------------------- **/
       
   265 IMPORT_C NW_DOM_Node_t* 
       
   266 NW_DOM_Node_getLastChild(NW_DOM_Node_t* node); 
       
   267 
       
   268 
       
   269 /** ----------------------------------------------------------------------- **
       
   270     @function:    NW_DOM_Node_hasChildNodes
       
   271 
       
   272     @synopsis:    Checks if the node has any child nodes.
       
   273 
       
   274     @scope:       public
       
   275 
       
   276     @parameters:
       
   277        [in] NW_DOM_Node_t* node
       
   278                   The node.
       
   279 
       
   280     @description: Returns valid values only for ELEMENT_NODE and DOCUMENT_NODE.
       
   281                   These are the only nodes that have children. For other nodes
       
   282                   the value is NULL.
       
   283 
       
   284     @returns:     NW_Bool
       
   285                   NW_TRUE if the node has child nodes, otherwise NW_FALSE.
       
   286 
       
   287  ** ----------------------------------------------------------------------- **/
       
   288 IMPORT_C NW_Bool 
       
   289 NW_DOM_Node_hasChildNodes(NW_DOM_Node_t* node); 
       
   290 
       
   291 
       
   292 /** ----------------------------------------------------------------------- **
       
   293     @function:    NW_DOM_Node_getNextSibling
       
   294 
       
   295     @synopsis:    Gets the next sibling of the node.
       
   296 
       
   297     @scope:       public
       
   298 
       
   299     @parameters:
       
   300        [in] NW_DOM_Node_t* node
       
   301                   The node.
       
   302 
       
   303     @description: Gets the next sibling of the node.
       
   304 
       
   305     @returns:     NW_DOM_Node_t*
       
   306                   The node immediately following this node, NULL if there 
       
   307                   is no next sibling or this node is NULL.
       
   308 
       
   309  ** ----------------------------------------------------------------------- **/
       
   310 IMPORT_C NW_DOM_Node_t* 
       
   311 NW_DOM_Node_getNextSibling(NW_DOM_Node_t* node); 
       
   312 
       
   313 
       
   314 /** ----------------------------------------------------------------------- **
       
   315     @function:    NW_DOM_Node_getPreviousSibling
       
   316 
       
   317     @synopsis:    Gets the previous sibling of the node.
       
   318 
       
   319     @scope:       public
       
   320 
       
   321     @parameters:
       
   322        [in] NW_DOM_Node_t* node
       
   323                   The node.
       
   324 
       
   325     @description: Gets the previous sibling of the node.
       
   326 
       
   327     @returns:     NW_DOM_Node_t*
       
   328                   The node immediately preceding this node in the DOM tree,
       
   329                   NULL if there is no previous sibling or the node is NULL.
       
   330 
       
   331  ** ----------------------------------------------------------------------- **/
       
   332 IMPORT_C NW_DOM_Node_t* 
       
   333 NW_DOM_Node_getPreviousSibling(NW_DOM_Node_t* node); 
       
   334 
       
   335 
       
   336 /** ----------------------------------------------------------------------- **
       
   337     @function:    NW_DOM_Node_getOwnerDocument
       
   338 
       
   339     @synopsis:    Gets the owner document node of this node.
       
   340 
       
   341     @scope:       public
       
   342 
       
   343     @parameters:
       
   344        [in] NW_DOM_Node_t* node
       
   345                   The node.
       
   346 
       
   347     @description: Gets the owner document node of this node.
       
   348 
       
   349     @returns:     NW_DOM_DocumentNode_t*
       
   350                   The owner document node (NW_DOM_DocumentNode_t) associated
       
   351                   with this node, NULL if the node is NULL or is a DocumentNode.
       
   352 
       
   353  ** ----------------------------------------------------------------------- **/
       
   354 IMPORT_C NW_DOM_DocumentNode_t* 
       
   355 NW_DOM_Node_getOwnerDocument(NW_DOM_Node_t* node); 
       
   356 
       
   357 
       
   358 /** ----------------------------------------------------------------------- **
       
   359     @function:    NW_DOM_Node_insertBefore
       
   360 
       
   361     @synopsis:    Inserts newChild before the refChild.
       
   362 
       
   363     @scope:       public
       
   364 
       
   365     @parameters:
       
   366        [in-out] NW_DOM_Node_t* node
       
   367                   The parent node.
       
   368 
       
   369        [in] NW_DOM_Node_t* newChild
       
   370                   The node to be inserted.
       
   371 
       
   372        [in] NW_DOM_Node_t* refChild
       
   373                   The node before which the newChild node should be inserted.
       
   374 
       
   375     @description: Inserts the newChild node before the existing refChild 
       
   376                   node; and if refChild is NULL, inserts it at the end of
       
   377                   the list of children.
       
   378 
       
   379     @returns:     NW_Status_t
       
   380                   Result of operation.
       
   381 
       
   382        [NW_STAT_SUCCESS]
       
   383                   Inserted successfully.
       
   384 
       
   385        [NW_STAT_BAD_INPUT_PARAM]
       
   386                   One of the input parameters was null.
       
   387      
       
   388        [NW_STAT_NOT_FOUND]
       
   389                   Reference child is not a child of given node.
       
   390 
       
   391        [NW_STAT_DOM_WRONG_DOC_ERR]
       
   392                   New child was created from a different document than the 
       
   393                   one that created the node.
       
   394 
       
   395        [NW_STAT_DOM_HEIRARCHY_REQ_ERR] 
       
   396                   Node is of the type that does not allow children of the 
       
   397                   type of newChild node.
       
   398 
       
   399  ** ----------------------------------------------------------------------- **/
       
   400 IMPORT_C NW_Status_t
       
   401 NW_DOM_Node_insertBefore(NW_DOM_Node_t* node, 
       
   402                          NW_DOM_Node_t* newChild, 
       
   403                          NW_DOM_Node_t* refChild);
       
   404 
       
   405 
       
   406 /** ----------------------------------------------------------------------- **
       
   407     @function:    NW_DOM_Node_replaceChild
       
   408 
       
   409     @synopsis:    Replaces oldChild with the newChild.
       
   410 
       
   411     @scope:       public
       
   412 
       
   413     @parameters:
       
   414        [in] NW_DOM_Node_t* node
       
   415                   The node.
       
   416 
       
   417        [in] NW_DOM_Node_t* newChild
       
   418                   The node that will replace oldChild.
       
   419 
       
   420        [in] NW_DOM_Node_t* oldChild
       
   421                   The node to be replaced.
       
   422 
       
   423     @description: Replaces oldChild with the newChild.
       
   424 
       
   425     @returns:     NW_Status_t
       
   426                   Result of operation.
       
   427 
       
   428        [NW_STAT_SUCCESS]
       
   429                   Child replaced.
       
   430 
       
   431        [NW_STAT_BAD_INPUT_PARAM]
       
   432                   Bad data.
       
   433 
       
   434        [NW_STAT_NOT_FOUND]
       
   435                   oldChild is not a child of given node.
       
   436 
       
   437        [NW_STAT_DOM_WRONG_DOC_ERR]
       
   438                   newChild was created from a different document than the 
       
   439                   one that created the node.
       
   440 
       
   441        [NW_STAT_DOM_HEIRARCHY_REQ_ERR]
       
   442                   Node is of the type that does not allow children of the 
       
   443                   type of newChild node.
       
   444 
       
   445  ** ----------------------------------------------------------------------- **/
       
   446 IMPORT_C NW_Status_t
       
   447 NW_DOM_Node_replaceChild(NW_DOM_Node_t* node, 
       
   448                          NW_DOM_Node_t* newChild, 
       
   449                          NW_DOM_Node_t* oldChild);
       
   450 
       
   451 
       
   452 /** ----------------------------------------------------------------------- **
       
   453     @function:    NW_DOM_Node_removeChild
       
   454 
       
   455     @synopsis:    Removes the oldChild node as a child of the node.
       
   456 
       
   457     @scope:       public
       
   458 
       
   459     @parameters:
       
   460        [in-out] NW_DOM_Node_t* node
       
   461                   The parent node.
       
   462 
       
   463        [in] NW_DOM_Node_t* oldChild
       
   464                   The child node to be removed.
       
   465 
       
   466     @description: Removes the oldChild, and deletes the node and its child nodes.
       
   467 
       
   468     @returns:     NW_Status_t
       
   469                   Result of operation.
       
   470 
       
   471        [NW_STAT_SUCCESS]
       
   472                   Nodes deleted.
       
   473 
       
   474        [NW_STAT_BAD_INPUT_PARAM]
       
   475                   Bad data.
       
   476 
       
   477        [NW_STAT_NOT_FOUND]
       
   478                   oldChild is not a child of given node.
       
   479 
       
   480  ** ----------------------------------------------------------------------- **/
       
   481 IMPORT_C NW_Status_t
       
   482 NW_DOM_Node_removeChild(NW_DOM_Node_t* node, 
       
   483                         NW_DOM_Node_t* oldChild); 
       
   484 
       
   485 
       
   486 /** ----------------------------------------------------------------------- **
       
   487     @function:    NW_DOM_Node_appendChild
       
   488 
       
   489     @synopsis:    Appends a new child.
       
   490 
       
   491     @scope:       public
       
   492 
       
   493     @parameters:
       
   494        [in] NW_DOM_Node_t* node
       
   495                   The node.
       
   496 
       
   497        [in] NW_DOM_Node_t* newChild
       
   498                   The node to be added.
       
   499 
       
   500     @description: Appends a new child.
       
   501 
       
   502     @returns:     NW_Status_t
       
   503                   Result of operation.
       
   504 
       
   505        [NW_STAT_SUCCESS]
       
   506                   Child node appended.
       
   507 
       
   508        [NW_STAT_BAD_INPUT_PARAM]
       
   509                   An input parameter was null.
       
   510  
       
   511        [NW_STAT_DOM_WRONG_DOC_ERR]
       
   512                   newChild was created from a different document than the 
       
   513                   one that created the node.
       
   514 
       
   515        [NW_STAT_DOM_HEIRARCHY_REQ_ERR]
       
   516                   Node is of the type that does not allow children of the type
       
   517                   of the newChild node.
       
   518 
       
   519 
       
   520  ** ----------------------------------------------------------------------- **/
       
   521 IMPORT_C NW_Status_t
       
   522 NW_DOM_Node_appendChild(NW_DOM_Node_t* node, 
       
   523                         NW_DOM_Node_t* newChild);
       
   524 
       
   525 
       
   526 /** ----------------------------------------------------------------------- **
       
   527     @struct:      NW_DOM_NodeIterator
       
   528 
       
   529     @synopsis:    Iterator for walking node list.
       
   530 
       
   531     @scope:       public
       
   532     @variables:
       
   533        NW_TinyTree_NodeIterator_t nodeIter
       
   534                   The node iterator.
       
   535 
       
   536        NW_Uint16 token
       
   537                   Fully qualified token (i.e. token and codepage)
       
   538 
       
   539     @description: NW_DOM_NodeIterator_t is used in lieu of the NodeList 
       
   540                  object specified in DOM. This data type is an iterator 
       
   541                  default.
       
   542  ** ----------------------------------------------------------------------- **/
       
   543 typedef struct NW_DOM_NodeIterator_s {
       
   544   NW_TinyTree_NodeIterator_t nodeIter;
       
   545   NW_Uint16 token;
       
   546 }NW_DOM_NodeIterator_t;
       
   547 
       
   548 
       
   549 /** ----------------------------------------------------------------------- **
       
   550     @function:    NW_DOM_NodeIterator_new
       
   551 
       
   552     @synopsis:    Creates new NodeIterator.
       
   553 
       
   554     @scope:       public
       
   555 
       
   556     @description: Creates new NodeIterator.
       
   557 
       
   558     @returns:     NW_DOM_NodeIterator_t*
       
   559                   New iterator.
       
   560 
       
   561  ** ----------------------------------------------------------------------- **/
       
   562 NW_DOM_NodeIterator_t*
       
   563 NW_DOM_NodeIterator_new(void);
       
   564 
       
   565 
       
   566 /** ----------------------------------------------------------------------- **
       
   567     @function:    NW_DOM_NodeIterator_initialize
       
   568 
       
   569     @synopsis:    Initializes iterator.
       
   570 
       
   571     @scope:       public
       
   572 
       
   573     @parameters:
       
   574        [in] NW_DOM_NodeIterator_t* handle
       
   575                   The node iterator.
       
   576 
       
   577        [in] NW_DOM_Node_t* node
       
   578                   Starting point for iteration.
       
   579        [in] NW_Uint16 token
       
   580                   Initialize with this token.
       
   581 
       
   582     @description: Initializes the Node handle which uses the given node
       
   583                   as the starting point to iterate down the tree.
       
   584 
       
   585 
       
   586     @returns:     NW_Status_t
       
   587                   Result of operation.
       
   588 
       
   589        [NW_STAT_SUCCESS]
       
   590                   Iterator initialized.
       
   591 
       
   592        [NW_STAT_FAILURE]
       
   593                   Required parameter is null.
       
   594 
       
   595  ** ----------------------------------------------------------------------- **/
       
   596 NW_Status_t
       
   597 NW_DOM_NodeIterator_initialize(NW_DOM_NodeIterator_t* handle, 
       
   598                                NW_DOM_Node_t* node, 
       
   599                                NW_Uint16 token);
       
   600 
       
   601 
       
   602 /** ----------------------------------------------------------------------- **
       
   603     @function:    NW_DOM_NodeIterator_delete
       
   604 
       
   605     @synopsis:    Deletes the handle.
       
   606 
       
   607     @scope:       public
       
   608 
       
   609     @parameters:
       
   610        [in-out] NW_DOM_NodeIterator_t* handle
       
   611                   The node iterator.
       
   612 
       
   613     @description: Deletes the handle.
       
   614 
       
   615     @returns:     NW_Status_t
       
   616                   Result of operation.
       
   617 
       
   618        [NW_STAT_SUCCESS]
       
   619                   Always returned.
       
   620 
       
   621  ** ----------------------------------------------------------------------- **/
       
   622 NW_Status_t
       
   623 NW_DOM_NodeIterator_delete(NW_DOM_NodeIterator_t* handle);
       
   624 
       
   625 
       
   626 /** ----------------------------------------------------------------------- **
       
   627     @function:    NW_DOM_NodeIterator_nextNode
       
   628 
       
   629     @synopsis:    Returns the next node.
       
   630 
       
   631     @scope:       public
       
   632 
       
   633     @parameters:
       
   634        [in] NW_DOM_NodeIterator_t* handle
       
   635                   The node iterator.
       
   636 
       
   637     @description: Returns the next node.
       
   638 
       
   639     @returns:     NW_DOM_Node_t* 
       
   640                   The next node if there is one, otherwise NULL.
       
   641 
       
   642  ** ----------------------------------------------------------------------- **/
       
   643 NW_DOM_Node_t* 
       
   644 NW_DOM_NodeIterator_nextNode(NW_DOM_NodeIterator_t* handle);
       
   645 
       
   646 
       
   647 #ifdef __cplusplus
       
   648 } /* extern "C" { */
       
   649 #endif /* __cplusplus */
       
   650 
       
   651 #endif  /* NW_DOM_NODE_H */