<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Xalan-C++ API : Main Page</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<!-- The head section is copied from Doxygen 1.7.1 generated default output -->
<body>
<h2 align="center">Xalan-C++ API Documentation</h2>
<h3 align="center"><a href="../index.html">The Xalan C++ XSLT Processor Version 1.11</a></h3>
<hr/>
<!-- Generated by Doxygen 1.7.1 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
    </ul>
  </div>
<div class="header">
  <div class="headertitle">
<h1>XercesDOMWalker.hpp</h1>  </div>
</div>
<div class="contents">
<a href="XercesDOMWalker_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span>
<a name="l00003"></a>00003 <span class="comment"> * or more contributor license agreements. See the NOTICE file</span>
<a name="l00004"></a>00004 <span class="comment"> * distributed with this work for additional information</span>
<a name="l00005"></a>00005 <span class="comment"> * regarding copyright ownership. The ASF licenses this file</span>
<a name="l00006"></a>00006 <span class="comment"> * to you under the Apache License, Version 2.0 (the  &quot;License&quot;);</span>
<a name="l00007"></a>00007 <span class="comment"> * you may not use this file except in compliance with the License.</span>
<a name="l00008"></a>00008 <span class="comment"> * You may obtain a copy of the License at</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *     http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00013"></a>00013 <span class="comment"> * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span>
<a name="l00014"></a>00014 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00015"></a>00015 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00016"></a>00016 <span class="comment"> * limitations under the License.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018 <span class="preprocessor">#if !defined(XERCESDOMWALKER_HEADER_GUARD_1357924680)</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define XERCESDOMWALKER_HEADER_GUARD_1357924680</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span>
<a name="l00021"></a>00021 
<a name="l00022"></a>00022 
<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;<a class="code" href="XercesParserLiaisonDefinitions_8hpp.html">xalanc/XercesParserLiaison/XercesParserLiaisonDefinitions.hpp</a>&gt;</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;<a class="code" href="XercesWrapperTypes_8hpp.html">xalanc/XercesParserLiaison/XercesWrapperTypes.hpp</a>&gt;</span>
<a name="l00025"></a>00025 
<a name="l00026"></a>00026 
<a name="l00027"></a>00027 
<a name="l00028"></a>00028 XALAN_CPP_NAMESPACE_BEGIN
<a name="l00029"></a>00029 
<a name="l00030"></a>00030 
<a name="l00031"></a>00031 
<a name="l00032"></a><a class="code" href="classXercesDOMWalker.html">00032</a> <span class="keyword">class </span><a class="code" href="XercesParserLiaisonDefinitions_8hpp.html#a8784e34032853206369b8386f5a993d8">XALAN_XERCESPARSERLIAISON_EXPORT</a> <a class="code" href="classXercesDOMWalker.html">XercesDOMWalker</a>
<a name="l00033"></a>00033 {
<a name="l00034"></a>00034 <span class="keyword">public</span>:
<a name="l00035"></a>00035 <span class="comment"></span>
<a name="l00036"></a>00036 <span class="comment">    /**</span>
<a name="l00037"></a>00037 <span class="comment">     * Constructor.</span>
<a name="l00038"></a>00038 <span class="comment">     */</span>
<a name="l00039"></a>00039     <a class="code" href="classXercesDOMWalker.html">XercesDOMWalker</a>();
<a name="l00040"></a>00040 
<a name="l00041"></a>00041     <span class="keyword">virtual</span>
<a name="l00042"></a>00042     ~<a class="code" href="classXercesDOMWalker.html">XercesDOMWalker</a>();
<a name="l00043"></a>00043 <span class="comment"></span>
<a name="l00044"></a>00044 <span class="comment">    /**</span>
<a name="l00045"></a>00045 <span class="comment">     * Perform a document-order traversal.</span>
<a name="l00046"></a>00046 <span class="comment">     *</span>
<a name="l00047"></a>00047 <span class="comment">     * Derived classes and stop the traversal by returning</span>
<a name="l00048"></a>00048 <span class="comment">     * true from startNode() or endNode().  If that happens,</span>
<a name="l00049"></a>00049 <span class="comment">     * the function will return the next node in document</span>
<a name="l00050"></a>00050 <span class="comment">     * order.  If desired, the caller can start traversing</span>
<a name="l00051"></a>00051 <span class="comment">     * the tree again from that point.  Note that terminal</span>
<a name="l00052"></a>00052 <span class="comment">     * nodes will always have startNode() and endNode()</span>
<a name="l00053"></a>00053 <span class="comment">     * called before the traversal terminates.</span>
<a name="l00054"></a>00054 <span class="comment">     *</span>
<a name="l00055"></a>00055 <span class="comment">     * @param pos The node in the tree with which to start the walk</span>
<a name="l00056"></a>00056 <span class="comment">     *</span>
<a name="l00057"></a>00057 <span class="comment">     * @return 0 if the traversal completes, or the next node if the traversal doesn&#39;t complete.</span>
<a name="l00058"></a>00058 <span class="comment">     */</span>
<a name="l00059"></a>00059     <span class="keyword">const</span> <a class="code" href="XercesWrapperTypes_8hpp.html#a6b6ee47b1b3c022ca18de297802d52ea">DOMNodeType</a>*
<a name="l00060"></a>00060     traverse(<span class="keyword">const</span> <a class="code" href="XercesWrapperTypes_8hpp.html#a6b6ee47b1b3c022ca18de297802d52ea">DOMNodeType</a>*     pos);
<a name="l00061"></a>00061 <span class="comment"></span>
<a name="l00062"></a>00062 <span class="comment">    /**</span>
<a name="l00063"></a>00063 <span class="comment">     * Perform a document-order traversal.</span>
<a name="l00064"></a>00064 <span class="comment">     *</span>
<a name="l00065"></a>00065 <span class="comment">     * Derived classes and stop the traversal by returning</span>
<a name="l00066"></a>00066 <span class="comment">     * true from startNode() or endNode().  If that happens,</span>
<a name="l00067"></a>00067 <span class="comment">     * the function will return the next node in document</span>
<a name="l00068"></a>00068 <span class="comment">     * order.  If desired, the caller can start traversing</span>
<a name="l00069"></a>00069 <span class="comment">     * the tree again from that point.  Note that terminal</span>
<a name="l00070"></a>00070 <span class="comment">     * nodes will always have startNode() and endNode()</span>
<a name="l00071"></a>00071 <span class="comment">     * called before the traversal terminates.</span>
<a name="l00072"></a>00072 <span class="comment">     *</span>
<a name="l00073"></a>00073 <span class="comment">     * @param pos The node in the tree with which to start the walk</span>
<a name="l00074"></a>00074 <span class="comment">     *</span>
<a name="l00075"></a>00075 <span class="comment">     * @return 0 if the traversal completes, or the next node if the traversal doesn&#39;t complete.</span>
<a name="l00076"></a>00076 <span class="comment">     */</span>
<a name="l00077"></a>00077     <a class="code" href="XercesWrapperTypes_8hpp.html#a6b6ee47b1b3c022ca18de297802d52ea">DOMNodeType</a>*
<a name="l00078"></a>00078     traverse(<a class="code" href="XercesWrapperTypes_8hpp.html#a6b6ee47b1b3c022ca18de297802d52ea">DOMNodeType</a>*   pos);
<a name="l00079"></a>00079 <span class="comment"></span>
<a name="l00080"></a>00080 <span class="comment">    /**</span>
<a name="l00081"></a>00081 <span class="comment">     * Perform a document-order traversal stopping at the</span>
<a name="l00082"></a>00082 <span class="comment">     * provided parent node.</span>
<a name="l00083"></a>00083 <span class="comment">     *</span>
<a name="l00084"></a>00084 <span class="comment">     * Derived classes and stop the traversal by returning</span>
<a name="l00085"></a>00085 <span class="comment">     * true from startNode() or endNode().  If that happens,</span>
<a name="l00086"></a>00086 <span class="comment">     * the function will return the next node in document</span>
<a name="l00087"></a>00087 <span class="comment">     * order.  If desired, the caller can start traversing</span>
<a name="l00088"></a>00088 <span class="comment">     * the tree again from that point.  Note that terminal</span>
<a name="l00089"></a>00089 <span class="comment">     * nodes will always have startNode() and endNode()</span>
<a name="l00090"></a>00090 <span class="comment">     * called before the traversal terminates.</span>
<a name="l00091"></a>00091 <span class="comment">     *</span>
<a name="l00092"></a>00092 <span class="comment">     * @param pos The node in the tree with which to start the walk</span>
<a name="l00093"></a>00093 <span class="comment">     * @param parent The parent of pos.  Note that for multiple calls that continue the traversal, this node must remain the same.</span>
<a name="l00094"></a>00094 <span class="comment">     *</span>
<a name="l00095"></a>00095 <span class="comment">     * @return parent if the traversal completes, or the next node if the traversal doesn&#39;t complete.</span>
<a name="l00096"></a>00096 <span class="comment">     */</span>
<a name="l00097"></a>00097     <span class="keyword">const</span> <a class="code" href="XercesWrapperTypes_8hpp.html#a6b6ee47b1b3c022ca18de297802d52ea">DOMNodeType</a>*
<a name="l00098"></a>00098     traverse(
<a name="l00099"></a>00099             <span class="keyword">const</span> <a class="code" href="XercesWrapperTypes_8hpp.html#a6b6ee47b1b3c022ca18de297802d52ea">DOMNodeType</a>*  pos,
<a name="l00100"></a>00100             <span class="keyword">const</span> <a class="code" href="XercesWrapperTypes_8hpp.html#a6b6ee47b1b3c022ca18de297802d52ea">DOMNodeType</a>*  parent);
<a name="l00101"></a>00101 <span class="comment"></span>
<a name="l00102"></a>00102 <span class="comment">    /**</span>
<a name="l00103"></a>00103 <span class="comment">     * Perform a document-order traversal stopping at the</span>
<a name="l00104"></a>00104 <span class="comment">     * provided parent node.</span>
<a name="l00105"></a>00105 <span class="comment">     *</span>
<a name="l00106"></a>00106 <span class="comment">     * Derived classes and stop the traversal by returning</span>
<a name="l00107"></a>00107 <span class="comment">     * true from startNode() or endNode().  If that happens,</span>
<a name="l00108"></a>00108 <span class="comment">     * the function will return the next node in document</span>
<a name="l00109"></a>00109 <span class="comment">     * order.  If desired, the caller can start traversing</span>
<a name="l00110"></a>00110 <span class="comment">     * the tree again from that point.  Note that terminal</span>
<a name="l00111"></a>00111 <span class="comment">     * nodes will always have startNode() and endNode()</span>
<a name="l00112"></a>00112 <span class="comment">     * called before the traversal terminates.</span>
<a name="l00113"></a>00113 <span class="comment">     *</span>
<a name="l00114"></a>00114 <span class="comment">     * @param pos The node in the tree with which to start the walk</span>
<a name="l00115"></a>00115 <span class="comment">     * @param parent The parent of pos.  Note that for multiple calls that continue the traversal, this node must remain the same.</span>
<a name="l00116"></a>00116 <span class="comment">     *</span>
<a name="l00117"></a>00117 <span class="comment">     * @return parent if the traversal completes, or the next node if the traversal doesn&#39;t complete.</span>
<a name="l00118"></a>00118 <span class="comment">     */</span>
<a name="l00119"></a>00119     <a class="code" href="XercesWrapperTypes_8hpp.html#a6b6ee47b1b3c022ca18de297802d52ea">DOMNodeType</a>*
<a name="l00120"></a>00120     traverse(
<a name="l00121"></a>00121             <a class="code" href="XercesWrapperTypes_8hpp.html#a6b6ee47b1b3c022ca18de297802d52ea">DOMNodeType</a>*    pos,
<a name="l00122"></a>00122             <a class="code" href="XercesWrapperTypes_8hpp.html#a6b6ee47b1b3c022ca18de297802d52ea">DOMNodeType</a>*    parent);
<a name="l00123"></a>00123 <span class="comment"></span>
<a name="l00124"></a>00124 <span class="comment">    /**</span>
<a name="l00125"></a>00125 <span class="comment">     * Perform a pre-order traversal.</span>
<a name="l00126"></a>00126 <span class="comment">     * </span>
<a name="l00127"></a>00127 <span class="comment">     * @param pos starting node</span>
<a name="l00128"></a>00128 <span class="comment">     */</span>
<a name="l00129"></a>00129     <span class="keywordtype">void</span>
<a name="l00130"></a>00130     traverseSubtree(<span class="keyword">const</span> <a class="code" href="XercesWrapperTypes_8hpp.html#a6b6ee47b1b3c022ca18de297802d52ea">DOMNodeType</a>*  pos);
<a name="l00131"></a>00131 <span class="comment"></span>
<a name="l00132"></a>00132 <span class="comment">    /**</span>
<a name="l00133"></a>00133 <span class="comment">     * Perform a document-order traversal.</span>
<a name="l00134"></a>00134 <span class="comment">     * </span>
<a name="l00135"></a>00135 <span class="comment">     * @param pos starting node</span>
<a name="l00136"></a>00136 <span class="comment">     */</span>
<a name="l00137"></a>00137     <span class="keywordtype">void</span>
<a name="l00138"></a>00138     traverseSubtree(<a class="code" href="XercesWrapperTypes_8hpp.html#a6b6ee47b1b3c022ca18de297802d52ea">DOMNodeType</a>*    pos);
<a name="l00139"></a>00139 
<a name="l00140"></a>00140 <span class="keyword">protected</span>:
<a name="l00141"></a>00141 <span class="comment"></span>
<a name="l00142"></a>00142 <span class="comment">    /**</span>
<a name="l00143"></a>00143 <span class="comment">     * Called when first walking a node</span>
<a name="l00144"></a>00144 <span class="comment">     * </span>
<a name="l00145"></a>00145 <span class="comment">     * @param node The node</span>
<a name="l00146"></a>00146 <span class="comment">     *</span>
<a name="l00147"></a>00147 <span class="comment">     * @return return false if traversal should continue, or true if it should not.</span>
<a name="l00148"></a>00148 <span class="comment">     */</span>
<a name="l00149"></a>00149     <span class="keyword">virtual</span> <span class="keywordtype">bool</span>
<a name="l00150"></a>00150     startNode(<span class="keyword">const</span> <a class="code" href="XercesWrapperTypes_8hpp.html#a6b6ee47b1b3c022ca18de297802d52ea">DOMNodeType</a>*    node) = 0;
<a name="l00151"></a>00151 <span class="comment"></span>
<a name="l00152"></a>00152 <span class="comment">    /**</span>
<a name="l00153"></a>00153 <span class="comment">     * Called when first walking a node</span>
<a name="l00154"></a>00154 <span class="comment">     * </span>
<a name="l00155"></a>00155 <span class="comment">     * @param node The node</span>
<a name="l00156"></a>00156 <span class="comment">     *</span>
<a name="l00157"></a>00157 <span class="comment">     * @return return false if traversal should continue, or true if it should not.</span>
<a name="l00158"></a>00158 <span class="comment">     */</span>
<a name="l00159"></a>00159     <span class="keyword">virtual</span> <span class="keywordtype">bool</span>
<a name="l00160"></a>00160     startNode(<a class="code" href="XercesWrapperTypes_8hpp.html#a6b6ee47b1b3c022ca18de297802d52ea">DOMNodeType</a>*  node);
<a name="l00161"></a>00161 <span class="comment"></span>
<a name="l00162"></a>00162 <span class="comment">    /**</span>
<a name="l00163"></a>00163 <span class="comment">     * Called when leaving a node</span>
<a name="l00164"></a>00164 <span class="comment">     * </span>
<a name="l00165"></a>00165 <span class="comment">     * @param node The node</span>
<a name="l00166"></a>00166 <span class="comment">     *</span>
<a name="l00167"></a>00167 <span class="comment">     * @return return false if traversal should continue, or true if it should not.</span>
<a name="l00168"></a>00168 <span class="comment">     */</span>
<a name="l00169"></a>00169     <span class="keyword">virtual</span> <span class="keywordtype">bool</span>
<a name="l00170"></a>00170     endNode(<span class="keyword">const</span> <a class="code" href="XercesWrapperTypes_8hpp.html#a6b6ee47b1b3c022ca18de297802d52ea">DOMNodeType</a>*  node) = 0;
<a name="l00171"></a>00171 <span class="comment"></span>
<a name="l00172"></a>00172 <span class="comment">    /**</span>
<a name="l00173"></a>00173 <span class="comment">     * Called when leaving a node</span>
<a name="l00174"></a>00174 <span class="comment">     * </span>
<a name="l00175"></a>00175 <span class="comment">     * @param node The node</span>
<a name="l00176"></a>00176 <span class="comment">     *</span>
<a name="l00177"></a>00177 <span class="comment">     * @return return false if traversal should continue, or true if it should not.</span>
<a name="l00178"></a>00178 <span class="comment">     */</span>
<a name="l00179"></a>00179     <span class="keyword">virtual</span> <span class="keywordtype">bool</span>
<a name="l00180"></a>00180     endNode(<a class="code" href="XercesWrapperTypes_8hpp.html#a6b6ee47b1b3c022ca18de297802d52ea">DOMNodeType</a>*    node);
<a name="l00181"></a>00181 };
<a name="l00182"></a>00182 
<a name="l00183"></a>00183 
<a name="l00184"></a>00184 
<a name="l00185"></a>00185 XALAN_CPP_NAMESPACE_END
<a name="l00186"></a>00186 
<a name="l00187"></a>00187 
<a name="l00188"></a>00188 
<a name="l00189"></a>00189 <span class="preprocessor">#endif  // XERCESDOMWALKER_HEADER_GUARD_1357924680</span>
</pre></div></div>
</div>
<p align="center"><a href="graph_legend.html">Interpreting class diagrams</a></p>
<p><font color="#000000" face="arial,helvetica,sanserif" size="-1">
<i><a href="http://www.doxygen.org/">Doxygen</a> and 
<a href="http://www.graphviz.org/">GraphViz</a> are 
used to generate this API documentation from the Xalan-C header files.</i></font></p>

<table border="0" cellpadding="0" cellspacing="0" width="80%">
 <tr>
  <td width="80%" valign="top">
	<p align="center"><b>Xalan-C++ XSLT Processor Version 1.11</b><br/>
	Copyright &copy; 1999-2012 The Apache Software Foundation.<br/>
	All Rights Reserved.</p>
  </td>
 </tr>
 <tr>
  <td width="100%">
	<p align="center"><img src="asf_logo_wide.gif" width="268" height="25" align="bottom" border="0" alt="Apache Logo">
  </td>
 </tr>
</table>
</body>
</html>
