<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 DefaultStaticContext</h2><br><hr><pre>public class <strong>DefaultStaticContext</strong>
extends java.lang.Object</pre>Default implementation of a static context as described by the XPath 2.0
 specification.<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_DefaultStaticContext">DefaultStaticContext</a></strong>(org.apache.xerces.xs.XSModel schema)</code></td></tr><tr><td><code><strong><a href="#con_DefaultStaticContext">DefaultStaticContext</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_add_function_library">add_function_library</a>(FunctionLibrary fl)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Adds a function to the library.</td></tr><tr valign="top"><td width="20%" align="right"><code>public void</code></td><td width="" align="left"><code><a href="#method_add_namespace">add_namespace</a>(java.lang.String prefix
         ,
      java.lang.String namespace)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               adds namespace</td></tr><tr valign="top"><td width="20%" align="right"><code>public void</code></td><td width="" align="left"><code><a href="#method_add_variable">add_variable</a>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName var)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Adds a variable to current scope.
 
 used for static checking.... i.e. presence of variables</td></tr><tr valign="top"><td width="20%" align="right"><code>public boolean</code></td><td width="" align="left"><code><a href="#method_attribute_declared">attribute_declared</a>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName attr)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Checks if an attribute is in the in-scope schema definitions.</td></tr><tr valign="top"><td width="20%" align="right"><code>public org.apache.xerces.xs.XSTypeDefinition</code></td><td width="" align="left"><code><a href="#method_attribute_type_definition">attribute_type_definition</a>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName elem)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Retrieves type definition of the attribute in an element.</td></tr><tr valign="top"><td width="20%" align="right"><code>public org.eclipse.wst.xml.xpath2.processor.internal.types.XSAnyURI</code></td><td width="" align="left"><code><a href="#method_base_uri">base_uri</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               return the base URI</td></tr><tr valign="top"><td width="20%" align="right"><code>public void</code></td><td width="" align="left"><code><a href="#method_debug_print_vars">debug_print_vars</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Debug function which will print current variable scopes and info.</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_default_function_namespace">default_function_namespace</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Retrieves the defaul function namespace</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_default_namespace">default_namespace</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Retrieves the default namespace, when one is not allocated</td></tr><tr valign="top"><td width="20%" align="right"><code>public boolean</code></td><td width="" align="left"><code><a href="#method_del_variable">del_variable</a>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName var)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Deletes a variable from current scope.</td></tr><tr valign="top"><td width="20%" align="right"><code>public boolean</code></td><td width="" align="left"><code><a href="#method_derives_from">derives_from</a>(org.eclipse.wst.xml.xpath2.processor.internal.types.NodeType at
         ,
      org.eclipse.wst.xml.xpath2.processor.internal.types.QName et)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Checks if an XML node derives from a specified type.</td></tr><tr valign="top"><td width="20%" align="right"><code>public boolean</code></td><td width="" align="left"><code><a href="#method_derives_from">derives_from</a>(org.eclipse.wst.xml.xpath2.processor.internal.types.NodeType at
         ,
      org.apache.xerces.xs.XSTypeDefinition et)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Checks if an XML node derives from a specified type definition.</td></tr><tr valign="top"><td width="20%" align="right"><code>public void</code></td><td width="" align="left"><code><a href="#method_destroy_scope">destroy_scope</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Destroys a scope.</td></tr><tr valign="top"><td width="20%" align="right"><code>public boolean</code></td><td width="" align="left"><code><a href="#method_element_declared">element_declared</a>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName elem)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               is element declared?</td></tr><tr valign="top"><td width="20%" align="right"><code>public org.apache.xerces.xs.XSTypeDefinition</code></td><td width="" align="left"><code><a href="#method_element_type_definition">element_type_definition</a>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName elem)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Obtains schema definition of the type of an element.</td></tr><tr valign="top"><td width="20%" align="right"><code>public boolean</code></td><td width="" align="left"><code><a href="#method_expand_elem_type_qname">expand_elem_type_qname</a>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName name)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Expands a qname and uses the default type/element namespace if
 unprefixed.</td></tr><tr valign="top"><td width="20%" align="right"><code>public boolean</code></td><td width="" align="left"><code><a href="#method_expand_function_qname">expand_function_qname</a>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName name)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Expands a qname and uses the default function namespace if unprefixed.</td></tr><tr valign="top"><td width="20%" align="right"><code>public boolean</code></td><td width="" align="left"><code><a href="#method_expand_qname">expand_qname</a>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName name)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Expands the qname's prefix into a namespace.</td></tr><tr valign="top"><td width="20%" align="right"><code>protected Function</code></td><td width="" align="left"><code><a href="#method_function">function</a>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName name
         ,
      int arity)</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_function_exists">function_exists</a>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName name
         ,
      int arity)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Check for existance of function.</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_get_cntxt_item_type">get_cntxt_item_type</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public java.util.Map</code></td><td width="" align="left"><code><a href="#method_get_collections">get_collections</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </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_get_default_collection_type">get_default_collection_type</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public java.util.Map</code></td><td width="" align="left"><code><a href="#method_get_documents">get_documents</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>protected org.eclipse.wst.xml.xpath2.processor.internal.types.AnyType</code></td><td width="" align="left"><code><a href="#method_get_var">get_var</a>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName var)</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.AnyAtomicType</code></td><td width="" align="left"><code><a href="#method_make_atomic">make_atomic</a>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName name)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Creates an atomic from a specific type name initialized with a default
 value.</td></tr><tr valign="top"><td width="20%" align="right"><code>public void</code></td><td width="" align="left"><code><a href="#method_new_scope">new_scope</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Creates a new scope level.</td></tr><tr valign="top"><td width="20%" align="right"><code>public boolean</code></td><td width="" align="left"><code><a href="#method_prefix_exists">prefix_exists</a>(java.lang.String pref)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               does prefix exist?</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_resolve_prefix">resolve_prefix</a>(java.lang.String pref)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Resolves a prefix into a namespace URI.</td></tr><tr valign="top"><td width="20%" align="right"><code>public void</code></td><td width="" align="left"><code><a href="#method_set_base_uri">set_base_uri</a>(java.lang.String baseuri)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Set the Base URI for the static context.</td></tr><tr valign="top"><td width="20%" align="right"><code>public void</code></td><td width="" align="left"><code><a href="#method_set_cntxt_item_type">set_cntxt_item_type</a>(java.lang.String cntxtItemType)</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_set_collections">set_collections</a>(java.util.Map collections)</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_set_default_collection_type">set_default_collection_type</a>(java.lang.String defaultCollectionType)</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_set_documents">set_documents</a>(java.util.Map _documents)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>protected void</code></td><td width="" align="left"><code><a href="#method_set_variable">set_variable</a>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName var
         ,
      org.eclipse.wst.xml.xpath2.processor.internal.types.AnyType val)</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_type_defined">type_defined</a>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName qname)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Checks whether the type is defined in the in scope schema definitions.</td></tr><tr valign="top"><td width="20%" align="right"><code>public boolean</code></td><td width="" align="left"><code><a href="#method_type_defined">type_defined</a>(java.lang.String ns
         ,
      java.lang.String type)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Checks whether the type is defined in the in scope schema definitions.</td></tr><tr valign="top"><td width="20%" align="right"><code>public boolean</code></td><td width="" align="left"><code><a href="#method_variable_exists">variable_exists</a>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName var)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               does variable exist in current scope ?</td></tr><tr valign="top"><td width="20%" align="right"><code>public boolean</code></td><td width="" align="left"><code><a href="#method_variable_in_scope">variable_in_scope</a>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName var)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               checks to see if variable is in scope</td></tr><tr valign="top"><td width="20%" align="right"><code>public boolean</code></td><td width="" align="left"><code><a href="#method_xpath1_compatible">xpath1_compatible</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               is it xpath1 compatible?</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_DefaultStaticContext">DefaultStaticContext</a></h2><p><code>public <strong>DefaultStaticContext</strong>(org.apache.xerces.xs.XSModel schema)</code></p><p>Constructor.</p><hr><h2><a name="con_DefaultStaticContext">DefaultStaticContext</a></h2><p><code>public <strong>DefaultStaticContext</strong>()</code></p><p>Constructor for schema-less documents.</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_add_function_library">add_function_library</a></h2><p><code>public void <strong>add_function_library</strong>(FunctionLibrary fl)</code></p><p>Adds a function to the library.</p><h3>Parameters</h3><p><code>fl</code> - Function library to add.</p><hr><h2><a name="method_add_namespace">add_namespace</a></h2><p><code>public void <strong>add_namespace</strong>(java.lang.String prefix
         ,
      java.lang.String namespace)</code></p><p>adds namespace</p><h3>Parameters</h3><p><code>prefix</code> - namespace prefix</p><p><code>namespace</code> - namespace URI</p><hr><h2><a name="method_add_variable">add_variable</a></h2><p><code>public void <strong>add_variable</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName var)</code></p><p>Adds a variable to current scope.
 
 used for static checking.... i.e. presence of variables</p><h3>Parameters</h3><p><code>var</code> - variable name to add.</p><hr><h2><a name="method_attribute_declared">attribute_declared</a></h2><p><code>public boolean <strong>attribute_declared</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName attr)</code></p><p>Checks if an attribute is in the in-scope schema definitions.</p><h3>Parameters</h3><p><code>attr</code> - name of attribute.</p><h3>Returns</h3><p><code>boolean</code> - true if attribute is declared.</p><hr><h2><a name="method_attribute_type_definition">attribute_type_definition</a></h2><p><code>public org.apache.xerces.xs.XSTypeDefinition <strong>attribute_type_definition</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName elem)</code></p><p>Retrieves type definition of the attribute in an element.</p><h3>Parameters</h3><p><code>elem</code> - element name</p><h3>Returns</h3><p><code>org.apache.xerces.xs.XSTypeDefinition</code> - schema definition of the type of the attribute</p><hr><h2><a name="method_base_uri">base_uri</a></h2><p><code>public org.eclipse.wst.xml.xpath2.processor.internal.types.XSAnyURI <strong>base_uri</strong>()</code></p><p>return the base URI</p><h3>Returns</h3><p><code>org.eclipse.wst.xml.xpath2.processor.internal.types.XSAnyURI</code> - XSAnyURI</p><hr><h2><a name="method_debug_print_vars">debug_print_vars</a></h2><p><code>public void <strong>debug_print_vars</strong>()</code></p><p>Debug function which will print current variable scopes and info.</p><hr><h2><a name="method_default_function_namespace">default_function_namespace</a></h2><p><code>public java.lang.String <strong>default_function_namespace</strong>()</code></p><p>Retrieves the defaul function namespace</p><h3>Returns</h3><p><code>java.lang.String</code> - string</p><hr><h2><a name="method_default_namespace">default_namespace</a></h2><p><code>public java.lang.String <strong>default_namespace</strong>()</code></p><p>Retrieves the default namespace, when one is not allocated</p><h3>Returns</h3><p><code>java.lang.String</code> - string</p><hr><h2><a name="method_del_variable">del_variable</a></h2><p><code>public boolean <strong>del_variable</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName var)</code></p><p>Deletes a variable from current scope.</p><h3>Parameters</h3><p><code>var</code> - variable name to delete.</p><h3>Returns</h3><p><code>boolean</code> - false if variable doesn't exist.</p><hr><h2><a name="method_derives_from">derives_from</a></h2><p><code>public boolean <strong>derives_from</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.NodeType at
         ,
      org.eclipse.wst.xml.xpath2.processor.internal.types.QName et)</code></p><p>Checks if an XML node derives from a specified type.</p><h3>Parameters</h3><p><code>at</code> - node actual type</p><p><code>et</code> - name of expected type</p><h3>Returns</h3><p><code>boolean</code> - true if a derivation exists</p><hr><h2><a name="method_derives_from">derives_from</a></h2><p><code>public boolean <strong>derives_from</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.NodeType at
         ,
      org.apache.xerces.xs.XSTypeDefinition et)</code></p><p>Checks if an XML node derives from a specified type definition.</p><h3>Parameters</h3><p><code>at</code> - node actual type.</p><p><code>et</code> - type definition of expected type.</p><h3>Returns</h3><p><code>boolean</code> - true if a derivation exists.</p><hr><h2><a name="method_destroy_scope">destroy_scope</a></h2><p><code>public void <strong>destroy_scope</strong>()</code></p><p>Destroys a scope.</p><hr><h2><a name="method_element_declared">element_declared</a></h2><p><code>public boolean <strong>element_declared</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName elem)</code></p><p>is element declared?</p><h3>Parameters</h3><p><code>elem</code> - name of element.</p><h3>Returns</h3><p><code>boolean</code> - true if element declared.</p><hr><h2><a name="method_element_type_definition">element_type_definition</a></h2><p><code>public org.apache.xerces.xs.XSTypeDefinition <strong>element_type_definition</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName elem)</code></p><p>Obtains schema definition of the type of an element.</p><h3>Parameters</h3><p><code>elem</code> - name of element who's type is desired.</p><h3>Returns</h3><p><code>org.apache.xerces.xs.XSTypeDefinition</code> - schema definition of type</p><hr><h2><a name="method_expand_elem_type_qname">expand_elem_type_qname</a></h2><p><code>public boolean <strong>expand_elem_type_qname</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName name)</code></p><p>Expands a qname and uses the default type/element namespace if
 unprefixed.</p><h3>Parameters</h3><p><code>name</code> - qname to expand.</p><h3>Returns</h3><p><code>boolean</code> - true on success.</p><hr><h2><a name="method_expand_function_qname">expand_function_qname</a></h2><p><code>public boolean <strong>expand_function_qname</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName name)</code></p><p>Expands a qname and uses the default function namespace if unprefixed.</p><h3>Parameters</h3><p><code>name</code> - qname to expand.</p><h3>Returns</h3><p><code>boolean</code> - true on success.</p><hr><h2><a name="method_expand_qname">expand_qname</a></h2><p><code>public boolean <strong>expand_qname</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName name)</code></p><p>Expands the qname's prefix into a namespace.</p><h3>Parameters</h3><p><code>name</code> - qname to expand.</p><h3>Returns</h3><p><code>boolean</code> - true on success.</p><hr><h2><a name="method_function">function</a></h2><p><code>protected Function <strong>function</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName name
         ,
      int arity)</code></p><p></p><h3>Parameters</h3><p><code>name</code></p><p><code>arity</code></p><h3>Returns</h3><p><code>Function</code></p><hr><h2><a name="method_function_exists">function_exists</a></h2><p><code>public boolean <strong>function_exists</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName name
         ,
      int arity)</code></p><p>Check for existance of function.</p><h3>Parameters</h3><p><code>name</code> - function name.</p><p><code>arity</code> - arity of function.</p><h3>Returns</h3><p><code>boolean</code> - true if function exists. False otherwise.</p><hr><h2><a name="method_get_cntxt_item_type">get_cntxt_item_type</a></h2><p><code>public java.lang.String <strong>get_cntxt_item_type</strong>()</code></p><p></p><h3>Returns</h3><p><code>java.lang.String</code></p><hr><h2><a name="method_get_collections">get_collections</a></h2><p><code>public java.util.Map <strong>get_collections</strong>()</code></p><p></p><h3>Returns</h3><p><code>java.util.Map</code></p><hr><h2><a name="method_get_default_collection_type">get_default_collection_type</a></h2><p><code>public java.lang.String <strong>get_default_collection_type</strong>()</code></p><p></p><h3>Returns</h3><p><code>java.lang.String</code></p><hr><h2><a name="method_get_documents">get_documents</a></h2><p><code>public java.util.Map <strong>get_documents</strong>()</code></p><p></p><h3>Returns</h3><p><code>java.util.Map</code></p><hr><h2><a name="method_get_var">get_var</a></h2><p><code>protected org.eclipse.wst.xml.xpath2.processor.internal.types.AnyType <strong>get_var</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName var)</code></p><p></p><h3>Parameters</h3><p><code>var</code></p><h3>Returns</h3><p><code>org.eclipse.wst.xml.xpath2.processor.internal.types.AnyType</code></p><hr><h2><a name="method_make_atomic">make_atomic</a></h2><p><code>public org.eclipse.wst.xml.xpath2.processor.internal.types.AnyAtomicType <strong>make_atomic</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName name)</code></p><p>Creates an atomic from a specific type name initialized with a default
 value.</p><h3>Parameters</h3><p><code>name</code> - name of type to create</p><h3>Returns</h3><p><code>org.eclipse.wst.xml.xpath2.processor.internal.types.AnyAtomicType</code> - Atomic type of desired type.</p><hr><h2><a name="method_new_scope">new_scope</a></h2><p><code>public void <strong>new_scope</strong>()</code></p><p>Creates a new scope level.</p><hr><h2><a name="method_prefix_exists">prefix_exists</a></h2><p><code>public boolean <strong>prefix_exists</strong>(java.lang.String pref)</code></p><p>does prefix exist?</p><h3>Parameters</h3><p><code>pref</code> - prefix name.</p><h3>Returns</h3><p><code>boolean</code> - true if it does.</p><hr><h2><a name="method_resolve_prefix">resolve_prefix</a></h2><p><code>public java.lang.String <strong>resolve_prefix</strong>(java.lang.String pref)</code></p><p>Resolves a prefix into a namespace URI.</p><h3>Parameters</h3><p><code>pref</code> - prefix name</p><h3>Returns</h3><p><code>java.lang.String</code> - uri prefix is resolved to or null.</p><hr><h2><a name="method_set_base_uri">set_base_uri</a></h2><p><code>public void <strong>set_base_uri</strong>(java.lang.String baseuri)</code></p><p>Set the Base URI for the static context.</p><h3>Parameters</h3><p><code>baseuri</code></p><hr><h2><a name="method_set_cntxt_item_type">set_cntxt_item_type</a></h2><p><code>public void <strong>set_cntxt_item_type</strong>(java.lang.String cntxtItemType)</code></p><p></p><h3>Parameters</h3><p><code>cntxtItemType</code></p><hr><h2><a name="method_set_collections">set_collections</a></h2><p><code>public void <strong>set_collections</strong>(java.util.Map collections)</code></p><p></p><h3>Parameters</h3><p><code>collections</code></p><hr><h2><a name="method_set_default_collection_type">set_default_collection_type</a></h2><p><code>public void <strong>set_default_collection_type</strong>(java.lang.String defaultCollectionType)</code></p><p></p><h3>Parameters</h3><p><code>defaultCollectionType</code></p><hr><h2><a name="method_set_documents">set_documents</a></h2><p><code>public void <strong>set_documents</strong>(java.util.Map _documents)</code></p><p></p><h3>Parameters</h3><p><code>_documents</code></p><hr><h2><a name="method_set_variable">set_variable</a></h2><p><code>protected void <strong>set_variable</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName var
         ,
      org.eclipse.wst.xml.xpath2.processor.internal.types.AnyType val)</code></p><p></p><h3>Parameters</h3><p><code>var</code></p><p><code>val</code></p><hr><h2><a name="method_type_defined">type_defined</a></h2><p><code>public boolean <strong>type_defined</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName qname)</code></p><p>Checks whether the type is defined in the in scope schema definitions.</p><h3>Parameters</h3><p><code>qname</code> - type name.</p><h3>Returns</h3><p><code>boolean</code> - true if type is defined.</p><hr><h2><a name="method_type_defined">type_defined</a></h2><p><code>public boolean <strong>type_defined</strong>(java.lang.String ns
         ,
      java.lang.String type)</code></p><p>Checks whether the type is defined in the in scope schema definitions.</p><h3>Parameters</h3><p><code>ns</code> - namespace of type.</p><p><code>type</code> - name of type.</p><h3>Returns</h3><p><code>boolean</code> - true if type is defined.</p><hr><h2><a name="method_variable_exists">variable_exists</a></h2><p><code>public boolean <strong>variable_exists</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName var)</code></p><p>does variable exist in current scope ?</p><h3>Parameters</h3><p><code>var</code> - variable name.</p><h3>Returns</h3><p><code>boolean</code> - true if it does.</p><hr><h2><a name="method_variable_in_scope">variable_in_scope</a></h2><p><code>public boolean <strong>variable_in_scope</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.QName var)</code></p><p>checks to see if variable is in scope</p><h3>Parameters</h3><p><code>var</code> - variable name.</p><h3>Returns</h3><p><code>boolean</code> - true if variable is in current or above scope.</p><hr><h2><a name="method_xpath1_compatible">xpath1_compatible</a></h2><p><code>public boolean <strong>xpath1_compatible</strong>()</code></p><p>is it xpath1 compatible?</p><h3>Returns</h3><p><code>boolean</code> - boolean</p><hr></body></html>