<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 FollowingSiblingAxis</h2><br><hr><pre>public class <strong>FollowingSiblingAxis</strong>
extends org.eclipse.wst.xml.xpath2.processor.internal.ForwardAxis</pre>The following-sibling 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; if the context node is an attribute nodeor namespace node,
 the following-sibling axis is empty.<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_FollowingSiblingAxis">FollowingSiblingAxis</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 FollowingSiblingAxis 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_FollowingSiblingAxis">FollowingSiblingAxis</a></h2><p><code>public <strong>FollowingSiblingAxis</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 FollowingSiblingAxis 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 FollowingSiblingAxis.</p><hr></body></html>