<html><body><p><font size="+1"><strong>Package org.eclipse.wst.xml.xpath2.processor.internal</strong></font></p><hr><h2><font size="-1"><strong>org.eclipse.wst.xml.xpath2.processor.internal</strong></font><br>
               Class FollowingAxis</h2><br><hr><pre>public class <strong>FollowingAxis</strong>
extends org.eclipse.wst.xml.xpath2.processor.internal.ForwardAxis</pre>the following axis contains the context node's following siblings, those
 children of the context node's parent that occur after the context node in
 document order.<hr><table width="100%" border="1"><tr bgcolor="#CCCCFF"><td width="100%"><h2>Constructor Summary</h2></td></tr><tr><td><code><strong><a href="#con_FollowingAxis">FollowingAxis</a></strong>()</code></td></tr></table><br><table width="100%" border="1"><tr cols="2" bgcolor="#CCCCFF"><td colspan="2" width="100%"><h2>Method Summary</h2></td></tr><tr valign="top"><td width="20%" align="right"><code>public org.eclipse.wst.xml.xpath2.processor.ResultSequence</code></td><td width="" align="left"><code><a href="#method_iterate">iterate</a>(org.eclipse.wst.xml.xpath2.processor.internal.types.NodeType node
         ,
      org.eclipse.wst.xml.xpath2.processor.DynamicContext dc)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Return the result of FollowingAxis expression</td></tr></table><hr><table cols="2" width="100%" border="1"><tr colspan="2" width="100%" bgcolor="#CCCCFF" align="left"><td><h2>
                  Constructor Detail
               </h2></td></tr></table><h2><a name="con_FollowingAxis">FollowingAxis</a></h2><p><code>public <strong>FollowingAxis</strong>()</code></p><p></p><hr><table cols="2" width="100%" border="1"><tr colspan="2" width="100%" bgcolor="#CCCCFF" align="left"><td><h2>
                  Methods Detail
               </h2></td></tr></table><h2><a name="method_iterate">iterate</a></h2><p><code>public org.eclipse.wst.xml.xpath2.processor.ResultSequence <strong>iterate</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.NodeType node
         ,
      org.eclipse.wst.xml.xpath2.processor.DynamicContext dc)</code></p><p>Return the result of FollowingAxis expression</p><h3>Parameters</h3><p><code>node</code> - is the type of node.</p><p><code>dc</code> - is the dynamic context.</p><h3>Returns</h3><p><code>org.eclipse.wst.xml.xpath2.processor.ResultSequence</code> - The result of FollowingAxis.</p><hr></body></html>