<html><body><p><font size="+1"><strong>Package org.eclipse.wst.xml.xpath2.processor.internal.types</strong></font></p><hr><h2><font size="-1"><strong>org.eclipse.wst.xml.xpath2.processor.internal.types</strong></font><br>
               Class ElementType</h2><br><hr><pre>public class <strong>ElementType</strong>
extends org.eclipse.wst.xml.xpath2.processor.internal.types.NodeType</pre>A representation of the ElementType datatype<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_ElementType">ElementType</a></strong>()</code></td></tr><tr><td><code><strong><a href="#con_ElementType">ElementType</a></strong>(org.w3c.dom.Element v)</code></td></tr><tr><td><code><strong><a href="#con_ElementType">ElementType</a></strong>(org.w3c.dom.Element v
         ,
      int nodePosition)</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>protected boolean</code></td><td width="" align="left"><code><a href="#method_isElementType">isElementType</a>(java.lang.String typeName)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public boolean</code></td><td width="" align="left"><code><a href="#method_isID">isID</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public boolean</code></td><td width="" align="left"><code><a href="#method_isIDREF">isIDREF</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </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_nilled">nilled</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public org.eclipse.wst.xml.xpath2.processor.internal.types.QName</code></td><td width="" align="left"><code><a href="#method_node_name">node_name</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Retrieves the name of the 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_string_type">string_type</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Retrieves the datatype's full pathname</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_string_value">string_value</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Retrieves a String representation of the element being stored</td></tr><tr valign="top"><td width="20%" align="right"><code>public static java.lang.String</code></td><td width="" align="left"><code><a href="#method_textnode_strings">textnode_strings</a>(org.w3c.dom.Node node)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Recursively concatenate TextNode strings</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_typed_value">typed_value</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Creates a new ResultSequence consisting of the element stored</td></tr><tr valign="top"><td width="20%" align="right"><code>public org.w3c.dom.Element</code></td><td width="" align="left"><code><a href="#method_value">value</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Retrieves the actual element value being represented</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_ElementType">ElementType</a></h2><p><code>public <strong>ElementType</strong>()</code></p><p>Initialises to a null element</p><hr><h2><a name="con_ElementType">ElementType</a></h2><p><code>public <strong>ElementType</strong>(org.w3c.dom.Element v)</code></p><p>Initialises according to the supplied parameters</p><hr><h2><a name="con_ElementType">ElementType</a></h2><p><code>public <strong>ElementType</strong>(org.w3c.dom.Element v
         ,
      int nodePosition)</code></p><p>This deprecated and will be removed. Adopters need to use
 ElementType(Element)</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_isElementType">isElementType</a></h2><p><code>protected boolean <strong>isElementType</strong>(java.lang.String typeName)</code></p><p></p><h3>Parameters</h3><p><code>typeName</code></p><h3>Returns</h3><p><code>boolean</code></p><hr><h2><a name="method_isID">isID</a></h2><p><code>public boolean <strong>isID</strong>()</code></p><p></p><h3>Returns</h3><p><code>boolean</code></p><hr><h2><a name="method_isIDREF">isIDREF</a></h2><p><code>public boolean <strong>isIDREF</strong>()</code></p><p></p><h3>Returns</h3><p><code>boolean</code></p><hr><h2><a name="method_nilled">nilled</a></h2><p><code>public org.eclipse.wst.xml.xpath2.processor.ResultSequence <strong>nilled</strong>()</code></p><p></p><h3>Returns</h3><p><code>org.eclipse.wst.xml.xpath2.processor.ResultSequence</code></p><hr><h2><a name="method_node_name">node_name</a></h2><p><code>public org.eclipse.wst.xml.xpath2.processor.internal.types.QName <strong>node_name</strong>()</code></p><p>Retrieves the name of the node</p><h3>Returns</h3><p><code>org.eclipse.wst.xml.xpath2.processor.internal.types.QName</code> - QName representation of the name of the node</p><hr><h2><a name="method_string_type">string_type</a></h2><p><code>public java.lang.String <strong>string_type</strong>()</code></p><p>Retrieves the datatype's full pathname</p><h3>Returns</h3><p><code>java.lang.String</code> - "element" which is the datatype's full pathname</p><hr><h2><a name="method_string_value">string_value</a></h2><p><code>public java.lang.String <strong>string_value</strong>()</code></p><p>Retrieves a String representation of the element being stored</p><h3>Returns</h3><p><code>java.lang.String</code> - String representation of the element being stored</p><hr><h2><a name="method_textnode_strings">textnode_strings</a></h2><p><code>public java.lang.String <strong>textnode_strings</strong>(org.w3c.dom.Node node)</code></p><p>Recursively concatenate TextNode strings</p><h3>Parameters</h3><p><code>node</code> - Node to recurse</p><h3>Returns</h3><p><code>java.lang.String</code> - String representation of the node supplied</p><hr><h2><a name="method_typed_value">typed_value</a></h2><p><code>public org.eclipse.wst.xml.xpath2.processor.ResultSequence <strong>typed_value</strong>()</code></p><p>Creates a new ResultSequence consisting of the element stored</p><h3>Returns</h3><p><code>org.eclipse.wst.xml.xpath2.processor.ResultSequence</code> - New ResultSequence consisting of the element stored</p><hr><h2><a name="method_value">value</a></h2><p><code>public org.w3c.dom.Element <strong>value</strong>()</code></p><p>Retrieves the actual element value being represented</p><h3>Returns</h3><p><code>org.w3c.dom.Element</code> - Actual element value being represented</p><hr></body></html>