<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 XSBoolean</h2><br><hr><pre>public class <strong>XSBoolean</strong>
extends org.eclipse.wst.xml.xpath2.processor.internal.types.CtrType</pre>A representation of a true or a false value.<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_XSBoolean">XSBoolean</a></strong>(boolean x)</code></td></tr><tr><td><code><strong><a href="#con_XSBoolean">XSBoolean</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_constructor">constructor</a>(org.eclipse.wst.xml.xpath2.processor.ResultSequence arg)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Creates a new result sequence consisting of the retrievable boolean value
 in the supplied result sequence</td></tr><tr valign="top"><td width="20%" align="right"><code>public boolean</code></td><td width="" align="left"><code><a href="#method_eq">eq</a>(org.eclipse.wst.xml.xpath2.processor.internal.types.AnyType arg
         ,
      org.eclipse.wst.xml.xpath2.processor.DynamicContext context)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Comparison for equality between the supplied and this boolean
 representation. Returns true if both represent same boolean value, false
 otherwise</td></tr><tr valign="top"><td width="20%" align="right"><code>public boolean</code></td><td width="" align="left"><code><a href="#method_gt">gt</a>(org.eclipse.wst.xml.xpath2.processor.internal.types.AnyType arg
         ,
      org.eclipse.wst.xml.xpath2.processor.DynamicContext context)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Comparison between the supplied and this boolean representation. Returns
 true if this XSBoolean represents true and that XSBoolean supplied
 represents false. Returns false otherwise</td></tr><tr valign="top"><td width="20%" align="right"><code>public boolean</code></td><td width="" align="left"><code><a href="#method_lt">lt</a>(org.eclipse.wst.xml.xpath2.processor.internal.types.AnyType arg
         ,
      org.eclipse.wst.xml.xpath2.processor.DynamicContext context)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Comparison between the supplied and this boolean representation. Returns
 true if this XSBoolean represents false and that XSBoolean supplied
 represents true. Returns false otherwise</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;
               Retrieve the full type pathname of this datatype</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;
               Retrieve the String representation of the boolean value stored</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_type_name">type_name</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Retrieve the datatype name</td></tr><tr valign="top"><td width="20%" align="right"><code>public boolean</code></td><td width="" align="left"><code><a href="#method_value">value</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Retrieves the actual boolean value stored</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_XSBoolean">XSBoolean</a></h2><p><code>public <strong>XSBoolean</strong>(boolean x)</code></p><p>Initiates the new representation to the boolean supplied</p><hr><h2><a name="con_XSBoolean">XSBoolean</a></h2><p><code>public <strong>XSBoolean</strong>()</code></p><p>Initiates to a default representation of false.</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_constructor">constructor</a></h2><p><code>public org.eclipse.wst.xml.xpath2.processor.ResultSequence <strong>constructor</strong>(org.eclipse.wst.xml.xpath2.processor.ResultSequence arg)</code></p><p>Creates a new result sequence consisting of the retrievable boolean value
 in the supplied result sequence</p><h3>Parameters</h3><p><code>arg</code> - The result sequence from which to extract the boolean value.</p><h3>Returns</h3><p><code>org.eclipse.wst.xml.xpath2.processor.ResultSequence</code> - A new result sequence consisting of the boolean value supplied.</p><h3>Throws:</h3><p><code>org.eclipse.wst.xml.xpath2.processor.DynamicError</code></p><hr><h2><a name="method_eq">eq</a></h2><p><code>public boolean <strong>eq</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.AnyType arg
         ,
      org.eclipse.wst.xml.xpath2.processor.DynamicContext context)</code></p><p>Comparison for equality between the supplied and this boolean
 representation. Returns true if both represent same boolean value, false
 otherwise</p><h3>Parameters</h3><p><code>arg</code> - The XSBoolean representation of the boolean value to compare             with.</p><p><code>context</code></p><h3>Returns</h3><p><code>boolean</code> - New XSBoolean representation of true/false result of the equality          comparison</p><h3>Throws:</h3><p><code>org.eclipse.wst.xml.xpath2.processor.DynamicError</code></p><hr><h2><a name="method_gt">gt</a></h2><p><code>public boolean <strong>gt</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.AnyType arg
         ,
      org.eclipse.wst.xml.xpath2.processor.DynamicContext context)</code></p><p>Comparison between the supplied and this boolean representation. Returns
 true if this XSBoolean represents true and that XSBoolean supplied
 represents false. Returns false otherwise</p><h3>Parameters</h3><p><code>arg</code> - The XSBoolean representation of the boolean value to compare             with.</p><p><code>context</code></p><h3>Returns</h3><p><code>boolean</code> - New XSBoolean representation of true/false result of the          comparison</p><h3>Throws:</h3><p><code>org.eclipse.wst.xml.xpath2.processor.DynamicError</code></p><hr><h2><a name="method_lt">lt</a></h2><p><code>public boolean <strong>lt</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.AnyType arg
         ,
      org.eclipse.wst.xml.xpath2.processor.DynamicContext context)</code></p><p>Comparison between the supplied and this boolean representation. Returns
 true if this XSBoolean represents false and that XSBoolean supplied
 represents true. Returns false otherwise</p><h3>Parameters</h3><p><code>arg</code> - The XSBoolean representation of the boolean value to compare             with.</p><p><code>context</code></p><h3>Returns</h3><p><code>boolean</code> - New XSBoolean representation of true/false result of the          comparison</p><h3>Throws:</h3><p><code>org.eclipse.wst.xml.xpath2.processor.DynamicError</code></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>Retrieve the full type pathname of this datatype</p><h3>Returns</h3><p><code>java.lang.String</code> - "xs:boolean", the full datatype 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>Retrieve the String representation of the boolean value stored</p><h3>Returns</h3><p><code>java.lang.String</code> - the String representation of the boolean value stored</p><hr><h2><a name="method_type_name">type_name</a></h2><p><code>public java.lang.String <strong>type_name</strong>()</code></p><p>Retrieve the datatype name</p><h3>Returns</h3><p><code>java.lang.String</code> - "boolean", which is the datatype name.</p><hr><h2><a name="method_value">value</a></h2><p><code>public boolean <strong>value</strong>()</code></p><p>Retrieves the actual boolean value stored</p><h3>Returns</h3><p><code>boolean</code> - the actual boolean value stored</p><hr></body></html>