<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 AncestorAxis</h2><br><hr><pre>public class <strong>AncestorAxis</strong>
extends org.eclipse.wst.xml.xpath2.processor.internal.ParentAxis</pre>Returns the ancestors of the context node, this always includes the root
 node.<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_AncestorAxis">AncestorAxis</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 void</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.api.ResultBuffer copyInto
         ,
      org.w3c.dom.Node limitNode)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Get the ancestors of the context node.</td></tr><tr valign="top"><td width="20%" align="right"><code>public java.lang.String</code></td><td width="" align="left"><code><a href="#method_name">name</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </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_AncestorAxis">AncestorAxis</a></h2><p><code>public <strong>AncestorAxis</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 void <strong>iterate</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.NodeType node
         ,
      org.eclipse.wst.xml.xpath2.api.ResultBuffer copyInto
         ,
      org.w3c.dom.Node limitNode)</code></p><p>Get the ancestors of the context node.</p><h3>Parameters</h3><p><code>node</code> - is the type of node.</p><p><code>copyInto</code></p><p><code>limitNode</code></p><hr><h2><a name="method_name">name</a></h2><p><code>public java.lang.String <strong>name</strong>()</code></p><p></p><h3>Returns</h3><p><code>java.lang.String</code></p><hr></body></html>