<html><body><p><font size="+1"><strong>Package org.eclipse.wst.xsl.core.model</strong></font></p><hr><h2><font size="-1"><strong>org.eclipse.wst.xsl.core.model</strong></font><br>
               Class XSLNode</h2><br><hr><pre>public class <strong>XSLNode</strong>
extends org.eclipse.wst.xsl.core.model.XSLModelObject</pre>A node in the XSL namespace.<p></p><p></p><hr><table width="100%" border="1"><tr cols="2" bgcolor="#CCCCFF"><td colspan="2" width="100%"><h2>Field Summary</h2></td></tr><tr valign="top"><td width="20%" align="right"><code>public static  short</code></td><td width="80%" align="left"><code><a href="#field_ATTRIBUTE_NODE">ATTRIBUTE_NODE</a></code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               A constant for the attribute node (= &lt;code&gt;org.w3c.dom.Node.ATTRIBUTE_NODE&lt;/code&gt;)</td></tr><tr valign="top"><td width="20%" align="right"><code>package-private int</code></td><td width="80%" align="left"><code><a href="#field_columnNumber">columnNumber</a></code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public static  short</code></td><td width="80%" align="left"><code><a href="#field_ELEMENT_NODE">ELEMENT_NODE</a></code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               A constant for the element node (= &lt;code&gt;org.w3c.dom.Node.ELEMENT_NODE&lt;/code&gt;)</td></tr><tr valign="top"><td width="20%" align="right"><code>package-private int</code></td><td width="80%" align="left"><code><a href="#field_lineNumber">lineNumber</a></code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr></table><br><table width="100%" border="1"><tr bgcolor="#CCCCFF"><td width="100%"><h2>Constructor Summary</h2></td></tr><tr><td><code><strong><a href="#con_XSLNode">XSLNode</a></strong>(org.eclipse.wst.xsl.core.model.Stylesheet stylesheet
         ,
      short type)</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 int</code></td><td width="" align="left"><code><a href="#method_getColumnNumber">getColumnNumber</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Set the column number where this node occurs in the XSL file.</td></tr><tr valign="top"><td width="20%" align="right"><code>public int</code></td><td width="" align="left"><code><a href="#method_getLength">getLength</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Get the length of this node.</td></tr><tr valign="top"><td width="20%" align="right"><code>public int</code></td><td width="" align="left"><code><a href="#method_getLineNumber">getLineNumber</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Set the line number where this node occurs in the XSL file.</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_getName">getName</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public short</code></td><td width="" align="left"><code><a href="#method_getNodeType">getNodeType</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Get the type of node.</td></tr><tr valign="top"><td width="20%" align="right"><code>public int</code></td><td width="" align="left"><code><a href="#method_getOffset">getOffset</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Get the document offset where this node occurs.</td></tr><tr valign="top"><td width="20%" align="right"><code>public org.eclipse.wst.xsl.core.model.Stylesheet</code></td><td width="" align="left"><code><a href="#method_getStylesheet">getStylesheet</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Get the stylesheet that this belongs to.</td></tr><tr valign="top"><td width="20%" align="right"><code>public void</code></td><td width="" align="left"><code><a href="#method_setColumnNumber">setColumnNumber</a>(int columnNumber)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Set the columns number where this node occurs in the XSL file.</td></tr><tr valign="top"><td width="20%" align="right"><code>public void</code></td><td width="" align="left"><code><a href="#method_setLength">setLength</a>(int length)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Set the length of this node.</td></tr><tr valign="top"><td width="20%" align="right"><code>public void</code></td><td width="" align="left"><code><a href="#method_setLineNumber">setLineNumber</a>(int lineNumber)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Set the line number where this node occurs in the XSL file.</td></tr><tr valign="top"><td width="20%" align="right"><code>public void</code></td><td width="" align="left"><code><a href="#method_setName">setName</a>(java.lang.String name)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public void</code></td><td width="" align="left"><code><a href="#method_setOffset">setOffset</a>(int offset)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Set the document offset where this node occurs.</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_toString">toString</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>
                  Field Detail
               </h2></td></tr></table><h2><a name="field_ATTRIBUTE_NODE">ATTRIBUTE_NODE</a></h2><p><code>public static  short <strong>ATTRIBUTE_NODE</strong></code></p><table><tr><td>A constant for the attribute node (= <code>org.w3c.dom.Node.ATTRIBUTE_NODE</code>)</td></tr></table><hr><h2><a name="field_columnNumber">columnNumber</a></h2><p><code>package-private int <strong>columnNumber</strong></code></p><hr><h2><a name="field_ELEMENT_NODE">ELEMENT_NODE</a></h2><p><code>public static  short <strong>ELEMENT_NODE</strong></code></p><table><tr><td>A constant for the element node (= <code>org.w3c.dom.Node.ELEMENT_NODE</code>)</td></tr></table><hr><h2><a name="field_lineNumber">lineNumber</a></h2><p><code>package-private int <strong>lineNumber</strong></code></p><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_XSLNode">XSLNode</a></h2><p><code>public <strong>XSLNode</strong>(org.eclipse.wst.xsl.core.model.Stylesheet stylesheet
         ,
      short type)</code></p><p>Create a new instance of this.</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_getColumnNumber">getColumnNumber</a></h2><p><code>public int <strong>getColumnNumber</strong>()</code></p><p>Set the column number where this node occurs in the XSL file.</p><h3>Returns</h3><p><code>int</code> - the column number where this node occurs in the XSL file.</p><hr><h2><a name="method_getLength">getLength</a></h2><p><code>public int <strong>getLength</strong>()</code></p><p>Get the length of this node.</p><h3>Returns</h3><p><code>int</code> - the node length</p><hr><h2><a name="method_getLineNumber">getLineNumber</a></h2><p><code>public int <strong>getLineNumber</strong>()</code></p><p>Set the line number where this node occurs in the XSL file.</p><h3>Returns</h3><p><code>int</code> - the line number where this node occurs in the XSL file.</p><hr><h2><a name="method_getName">getName</a></h2><p><code>public java.lang.String <strong>getName</strong>()</code></p><p></p><h3>Returns</h3><p><code>java.lang.String</code></p><hr><h2><a name="method_getNodeType">getNodeType</a></h2><p><code>public short <strong>getNodeType</strong>()</code></p><p>Get the type of node.</p><h3>Returns</h3><p><code>short</code> - one of <code>ELEMENT_NODE</code> or <code>ATTRIBUTE_NODE</code></p><hr><h2><a name="method_getOffset">getOffset</a></h2><p><code>public int <strong>getOffset</strong>()</code></p><p>Get the document offset where this node occurs.</p><h3>Returns</h3><p><code>int</code> - the document offset</p><hr><h2><a name="method_getStylesheet">getStylesheet</a></h2><p><code>public org.eclipse.wst.xsl.core.model.Stylesheet <strong>getStylesheet</strong>()</code></p><p>Get the stylesheet that this belongs to.</p><h3>Returns</h3><p><code>org.eclipse.wst.xsl.core.model.Stylesheet</code> - the stylesheet</p><hr><h2><a name="method_setColumnNumber">setColumnNumber</a></h2><p><code>public void <strong>setColumnNumber</strong>(int columnNumber)</code></p><p>Set the columns number where this node occurs in the XSL file.</p><h3>Parameters</h3><p><code>columnNumber</code> - the column number</p><hr><h2><a name="method_setLength">setLength</a></h2><p><code>public void <strong>setLength</strong>(int length)</code></p><p>Set the length of this node.</p><h3>Parameters</h3><p><code>length</code> - the node length</p><hr><h2><a name="method_setLineNumber">setLineNumber</a></h2><p><code>public void <strong>setLineNumber</strong>(int lineNumber)</code></p><p>Set the line number where this node occurs in the XSL file.</p><h3>Parameters</h3><p><code>lineNumber</code> - the line number</p><hr><h2><a name="method_setName">setName</a></h2><p><code>public void <strong>setName</strong>(java.lang.String name)</code></p><p></p><h3>Parameters</h3><p><code>name</code></p><hr><h2><a name="method_setOffset">setOffset</a></h2><p><code>public void <strong>setOffset</strong>(int offset)</code></p><p>Set the document offset where this node occurs.</p><h3>Parameters</h3><p><code>offset</code> - the document offset</p><hr><h2><a name="method_toString">toString</a></h2><p><code>public java.lang.String <strong>toString</strong>()</code></p><p></p><h3>Returns</h3><p><code>java.lang.String</code></p><hr></body></html>