<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>XPathCompiler</title> <meta name="keywords" content="Saxon.Api.XPathCompiler class"> <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style"> </head> <body> <div style="width:20%; float:left; background-color:#c1cede; overflow:auto; height:100%"> <h2>Saxon.Api</h2> <div style="position:relative; height:4pt"> <p>Class <a href="DocumentBuilder.html">DocumentBuilder</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="DomDestination.html">DomDestination</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="DynamicContext.html">DynamicContext</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="DynamicError.html">DynamicError</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="EmptyEnumerator.html">EmptyEnumerator</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="ExtensionFunctionCall.html">ExtensionFunctionCall</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="ExtensionFunctionDefinition.html">ExtensionFunctionDefinition</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="NullDestination.html">NullDestination</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="Processor.html">Processor</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="QName.html">QName</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="SchemaManager.html">SchemaManager</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="SchemaValidator.html">SchemaValidator</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="Serializer.html">Serializer</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="StaticContext.html">StaticContext</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="StaticError.html">StaticError</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="TextWriterDestination.html">TextWriterDestination</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XPathCompiler.html">XPathCompiler</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XPathExecutable.html">XPathExecutable</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XPathSelector.html">XPathSelector</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XQueryCompiler.html">XQueryCompiler</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XQueryEvaluator.html">XQueryEvaluator</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XQueryExecutable.html">XQueryExecutable</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmAnyFunctionType.html">XdmAnyFunctionType</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmAnyItemType.html">XdmAnyItemType</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmAnyNodeType.html">XdmAnyNodeType</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmAtomicType.html">XdmAtomicType</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmAtomicValue.html">XdmAtomicValue</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmDestination.html">XdmDestination</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmEmptySequence.html">XdmEmptySequence</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmFunctionItem.html">XdmFunctionItem</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmItem.html">XdmItem</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmItemType.html">XdmItemType</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmNode.html">XdmNode</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmNodeKind.html">XdmNodeKind</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmSequenceType.html">XdmSequenceType</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmValue.html">XdmValue</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XmlDestination.html">XmlDestination</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XsltCompiler.html">XsltCompiler</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XsltExecutable.html">XsltExecutable</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XsltTransformer.html">XsltTransformer</a></p> </div> <div style="position:relative; height:4pt"> <p>Enum <a href="RecoveryPolicy.html">RecoveryPolicy</a></p> </div> <div style="position:relative; height:4pt"> <p>Enum <a href="SchemaValidationMode.html">SchemaValidationMode</a></p> </div> <div style="position:relative; height:4pt"> <p>Enum <a href="TreeModel.html">TreeModel</a></p> </div> <div style="position:relative; height:4pt"> <p>Enum <a href="WhitespacePolicy.html">WhitespacePolicy</a></p> </div> <div style="position:relative; height:4pt"> <p>Enum <a href="XdmAxis.html">XdmAxis</a></p> </div> <div style="position:relative; height:4pt"> <p>Interface <a href="IMessageListener.html">IMessageListener</a></p> </div> <div style="position:relative; height:4pt"> <p>Interface <a href="IQueryResolver.html">IQueryResolver</a></p> </div> <div style="position:relative; height:4pt"> <p>Interface <a href="IResultDocumentHandler.html">IResultDocumentHandler</a></p> </div> <div style="position:relative; height:4pt"> <p>Interface <a href="IXdmEnumerator.html">IXdmEnumerator</a></p> </div> <div style="position:relative; height:4pt"> <p>Interface <a href="IXmlLocation.html">IXmlLocation</a></p> </div> <div style="position:relative; height:4pt"> <p>Interface <a href="SchemaResolver.html">SchemaResolver</a></p> </div> </div> <div style="width:5%; float:left; background-color:#e4eef0; overflow:auto; height:100%"> </div> <div style="float:left; width:75%; overflow:auto; height:100%;"> <h2><font size="-1">Saxon.Api</font><br>Class XPathCompiler </h2> <hr> <dl> <dt><pre>public class XPathCompiler</pre></dt> <dt> implements <a href="http://msdn.microsoft.com/en-us/library/system.object(VS.80).aspx">object</a></dt> </dl> <dl> <dd> <p> An XPathCompiler object allows XPath queries to be compiled. The compiler holds information that represents the static context for the expression. </p> <p>To construct an XPathCompiler, use the factory method <code>newXPathCompiler</code> on the <code>Processor</code> object. </p> <p>An XPathCompiler may be used repeatedly to compile multiple queries. Any changes made to the XPathCompiler (that is, to the static context) do not affect queries that have already been compiled. An XPathCompiler may be used concurrently in multiple threads, but it should not then be modified once initialized. </p> <p> The <code>XPathCompiler</code> has the ability to maintain a cache of compiled expressions. This is active only if enabled by setting the <code>Caching</code> property. If caching is enabled, then the compiler will recognize an attempt to compile the same expression twice, and will avoid the cost of recompiling it. The cache is emptied by any method that changes the static context for subsequent expressions, for example, by setting the <code>BaseUri</code> property. Unless the cache is emptied, it grows indefinitely: compiled expressions are never discarded. </p> </dd> </dl> <hr><a name="property_summary"></a><table border="1" width="100%" cellpadding="3" cellspacing="0" summary=""> <tr border="#ccccff" class="TableHeadingColor"> <th align="left" colspan="2"><font size="+2"><b>Property Summary</b></font></th> </tr> <tr bgcolor="white" class="TableRowColor"> <td align="right" valign="top" width="1%"><code> <a href="Processor.html">Processor</a></code></td> <td><code><b><a href="#Processor">Processor</a></b></code><p> Get the Processor from which this XPathCompiler was constructed </p> </td> </tr> <tr bgcolor="white" class="TableRowColor"> <td align="right" valign="top" width="1%"><code> Boolean</code></td> <td><code><b><a href="#AllowUndeclaredVariables">AllowUndeclaredVariables</a></b></code><p> This property indicates whether the XPath expression may contain references to variables that have not been explicitly declared by calling <code>DeclareVariable</code>. The property is false by default (that is, variables must be declared). </p> </td> </tr> <tr bgcolor="white" class="TableRowColor"> <td align="right" valign="top" width="1%"><code> Boolean</code></td> <td><code><b><a href="#SchemaAware">SchemaAware</a></b></code><p> Say whether XPath expressions compiled using this XPathCompiler are schema-aware. They will automatically be schema-aware if the method {@link #importSchemaNamespace(String)} is called. An XPath expression must be marked as schema-aware if it is to handle typed (validated) input documents. </p> </td> </tr> <tr bgcolor="white" class="TableRowColor"> <td align="right" valign="top" width="1%"><code> <a href="http://msdn.microsoft.com/en-us/library/system.string(VS.80).aspx">string</a></code></td> <td><code><b><a href="#XPathLanguageVersion">XPathLanguageVersion</a></b></code><p> This property indicates which version of XPath language syntax is accepted. The default value is "1.0". This property must be set to "3.0" before compiling a query that uses XPath 3.0 (formerly known as XPath 2.1) syntax. </p> </td> </tr> <tr bgcolor="white" class="TableRowColor"> <td align="right" valign="top" width="1%"><code> <a href="XdmItemType.html">XdmItemType</a></code></td> <td><code><b><a href="#ContextItemType">ContextItemType</a></b></code><p> The required context item type for the expression. This is used for optimizing the expression at compile time, and to check at run-time that the value supplied for the context item is the correct type. </p> </td> </tr> <tr bgcolor="white" class="TableRowColor"> <td align="right" valign="top" width="1%"><code> <a href="http://msdn.microsoft.com/en-us/library/system.string(VS.80).aspx">String</a></code></td> <td><code><b><a href="#BaseUri">BaseUri</a></b></code><p> The base URI of the expression, which forms part of the static context of the expression. This is used for resolving any relative URIs appearing within the expression, for example in references to library modules, schema locations, or as an argument to the <code>doc()</code> function. </p> </td> </tr> <tr bgcolor="white" class="TableRowColor"> <td align="right" valign="top" width="1%"><code> Boolean</code></td> <td><code><b><a href="#BackwardsCompatible">BackwardsCompatible</a></b></code><p> XPath 1.0 Backwards Compatibility Mode. If true, backwards compatibility mode is set. In backwards compatibility mode, more implicit type conversions are allowed in XPath expressions, for example it is possible to compare a number with a string. The default is false (backwards compatibility mode is off). </p> </td> </tr> <tr bgcolor="white" class="TableRowColor"> <td align="right" valign="top" width="1%"><code> Boolean</code></td> <td><code><b><a href="#Caching">Caching</a></b></code><p> XPath 1.0 Backwards Compatibility Mode. If true, backwards compatibility mode is set. In backwards compatibility mode, more implicit type conversions are allowed in XPath expressions, for example it is possible to compare a number with a string. The default is false (backwards compatibility mode is off). </p> </td> </tr> </table> <a name="method_summary"></a><table border="1" width="100%" cellpadding="3" cellspacing="0" summary=""> <tr border="#ccccff" class="TableHeadingColor"> <th align="left" colspan="2"><font size="+2"><b>Method Summary</b></font></th> </tr> <tr bgcolor="white" class="TableRowColor"> <td align="right" valign="top" width="1%"><code> void</code></td> <td><code><b><a href="#DeclareCollation(System.Uri,System.Globalization.CompareInfo,System.Globalization.CompareOptions,bool)">DeclareCollation</a></b>(System.Uri uri, System.Globalization.CompareInfo comparer, System.Globalization.CompareOptions options, <a href="http://msdn.microsoft.com/en-us/library/system.boolean(VS.80).aspx">bool</a> isDefault)</code><p> Create a collation based on a given <code>CompareInfo</code> and <code>CompareOptions</code> </p> </td> </tr> <tr bgcolor="white" class="TableRowColor"> <td align="right" valign="top" width="1%"><code> void</code></td> <td><code><b><a href="#DeclareNamespace(string,string)">DeclareNamespace</a></b>(<a href="http://msdn.microsoft.com/en-us/library/system.string(VS.80).aspx">string</a> prefix, <a href="http://msdn.microsoft.com/en-us/library/system.string(VS.80).aspx">string</a> uri)</code><p> Declare a namespace for use by the XPath expression. </p> </td> </tr> <tr bgcolor="white" class="TableRowColor"> <td align="right" valign="top" width="1%"><code> <a href="http://msdn.microsoft.com/en-us/library/system.string(VS.80).aspx">string</a></code></td> <td><code><b><a href="#GetNamespaceURI()">GetNamespaceURI</a></b>()</code></td> </tr> <tr bgcolor="white" class="TableRowColor"> <td align="right" valign="top" width="1%"><code> void</code></td> <td><code><b><a href="#ImportSchemaNamespace(string)">ImportSchemaNamespace</a></b>(<a href="http://msdn.microsoft.com/en-us/library/system.string(VS.80).aspx">string</a> uri)</code><p> Import schema definitions for a specified namespace. That is, add the element and attribute declarations and type definitions contained in a given namespace to the static context for the XPath expression. </p> </td> </tr> <tr bgcolor="white" class="TableRowColor"> <td align="right" valign="top" width="1%"><code> void</code></td> <td><code><b><a href="#SetDecimalFormatProperty(Saxon.Api.QName,string,string)">SetDecimalFormatProperty</a></b>(<a href="QName.html">QName</a> format, <a href="http://msdn.microsoft.com/en-us/library/system.string(VS.80).aspx">string</a> property, <a href="http://msdn.microsoft.com/en-us/library/system.string(VS.80).aspx">string</a> value)</code><p> Sets a property of a selected decimal format, for use by the <code>format-number</code> function. </p> </td> </tr> <tr bgcolor="white" class="TableRowColor"> <td align="right" valign="top" width="1%"><code> void</code></td> <td><code><b><a href="#DeclareVariable(Saxon.Api.QName)">DeclareVariable</a></b>(<a href="QName.html">QName</a> name)</code><p> Declare a variable for use by the XPath expression. If the expression refers to any variables, then they must be declared here, unless the <code>AllowUndeclaredVariables</code> property has been set to true. </p> </td> </tr> <tr bgcolor="white" class="TableRowColor"> <td align="right" valign="top" width="1%"><code> <a href="XPathExecutable.html">XPathExecutable</a></code></td> <td><code><b><a href="#Compile(string)">Compile</a></b>(<a href="http://msdn.microsoft.com/en-us/library/system.string(VS.80).aspx">string</a> source)</code><p> Compile an expression supplied as a String. </p> </td> </tr> <tr bgcolor="white" class="TableRowColor"> <td align="right" valign="top" width="1%"><code> <a href="XdmValue.html">XdmValue</a></code></td> <td><code><b><a href="#Evaluate(string,Saxon.Api.XdmItem)">Evaluate</a></b>(<a href="http://msdn.microsoft.com/en-us/library/system.string(VS.80).aspx">string</a> expression, <a href="XdmItem.html">XdmItem</a> contextItem)</code><p> Compile and execute an expression supplied as a String, with a given context item. </p> </td> </tr> <tr bgcolor="white" class="TableRowColor"> <td align="right" valign="top" width="1%"><code> <a href="XdmItem.html">XdmItem</a></code></td> <td><code><b><a href="#EvaluateSingle(string,Saxon.Api.XdmItem)">EvaluateSingle</a></b>(<a href="http://msdn.microsoft.com/en-us/library/system.string(VS.80).aspx">string</a> expression, <a href="XdmItem.html">XdmItem</a> contextItem)</code><p> Compile and execute an expression supplied as a String, with a given context item, where the expression is expected to return a single item as its result </p> </td> </tr> </table> <a name="property_detail"></a><table border="1" width="100%" cellpadding="3" cellspacing="0" summary=""> <tr border="#ccccff" class="TableHeadingColor"> <th align="left" colspan="2"><font size="+2"><b>Property Detail</b></font></th> </tr> </table><a name="Processor"></a><h3>Processor</h3><pre>public <a href="Processor.html">Processor</a> <b>Processor</b> {get; set; }</pre><dl> <dd> <p> Get the Processor from which this XPathCompiler was constructed </p> </dd> </dl> <hr><a name="AllowUndeclaredVariables"></a><h3>AllowUndeclaredVariables</h3><pre>public Boolean <b>AllowUndeclaredVariables</b> {get; set; }</pre><dl> <dd> <p> This property indicates whether the XPath expression may contain references to variables that have not been explicitly declared by calling <code>DeclareVariable</code>. The property is false by default (that is, variables must be declared). </p> <p> If undeclared variables are permitted, then it is possible to determine after compiling the expression which variables it refers to by calling the method <code>EnumerateExternalVariables</code> on the <code>XPathExecutable</code> object. </p> </dd> </dl> <hr><a name="SchemaAware"></a><h3>SchemaAware</h3><pre>public Boolean <b>SchemaAware</b> {get; set; }</pre><dl> <dd> <p> Say whether XPath expressions compiled using this XPathCompiler are schema-aware. They will automatically be schema-aware if the method {@link #importSchemaNamespace(String)} is called. An XPath expression must be marked as schema-aware if it is to handle typed (validated) input documents. </p> </dd> </dl> <hr><a name="XPathLanguageVersion"></a><h3>XPathLanguageVersion</h3><pre>public <a href="http://msdn.microsoft.com/en-us/library/system.string(VS.80).aspx">string</a> <b>XPathLanguageVersion</b> {get; set; }</pre><dl> <dd> <p> This property indicates which version of XPath language syntax is accepted. The default value is "1.0". This property must be set to "3.0" before compiling a query that uses XPath 3.0 (formerly known as XPath 2.1) syntax. </p> <p>Support for XPath 3.0 is currently limited: for details see the Saxon documentation.</p> <p> <i>Property added in Saxon 9.4</i> </p> </dd> </dl> <hr><a name="ContextItemType"></a><h3>ContextItemType</h3><pre>public <a href="XdmItemType.html">XdmItemType</a> <b>ContextItemType</b> {get; set; }</pre><dl> <dd> <p> The required context item type for the expression. This is used for optimizing the expression at compile time, and to check at run-time that the value supplied for the context item is the correct type. </p> </dd> </dl> <hr><a name="BaseUri"></a><h3>BaseUri</h3><pre>public <a href="http://msdn.microsoft.com/en-us/library/system.string(VS.80).aspx">String</a> <b>BaseUri</b> {get; set; }</pre><dl> <dd> <p> The base URI of the expression, which forms part of the static context of the expression. This is used for resolving any relative URIs appearing within the expression, for example in references to library modules, schema locations, or as an argument to the <code>doc()</code> function. </p> </dd> </dl> <hr><a name="BackwardsCompatible"></a><h3>BackwardsCompatible</h3><pre>public Boolean <b>BackwardsCompatible</b> {get; set; }</pre><dl> <dd> <p> XPath 1.0 Backwards Compatibility Mode. If true, backwards compatibility mode is set. In backwards compatibility mode, more implicit type conversions are allowed in XPath expressions, for example it is possible to compare a number with a string. The default is false (backwards compatibility mode is off). </p> </dd> </dl> <hr><a name="Caching"></a><h3>Caching</h3><pre>public Boolean <b>Caching</b> {get; set; }</pre><dl> <dd> <p> XPath 1.0 Backwards Compatibility Mode. If true, backwards compatibility mode is set. In backwards compatibility mode, more implicit type conversions are allowed in XPath expressions, for example it is possible to compare a number with a string. The default is false (backwards compatibility mode is off). </p> </dd> </dl> <hr><a name="method_detail"></a><table border="1" width="100%" cellpadding="3" cellspacing="0" summary=""> <tr border="#ccccff" class="TableHeadingColor"> <th align="left" colspan="2"><font size="+2"><b>Method Detail</b></font></th> </tr> </table><a name="DeclareCollation(System.Uri,System.Globalization.CompareInfo,System.Globalization.CompareOptions,bool)"></a><h3>DeclareCollation</h3><pre>public void <b>DeclareCollation</b>(System.Uri uri, System.Globalization.CompareInfo comparer, System.Globalization.CompareOptions options, <a href="http://msdn.microsoft.com/en-us/library/system.boolean(VS.80).aspx">bool</a> isDefault)</pre><dl> <dd> <p> Create a collation based on a given <code>CompareInfo</code> and <code>CompareOptions</code> </p><b>Parameters:</b><dl> <dt><code>uri</code> - </dt> <dd>The collation URI to be used within the XPath expression to refer to this collation</dd> </dl> <dl> <dt><code>comparer</code> - </dt> <dd>The <code>CompareInfo</code>, which determines the language-specific collation rules to be used </dd> </dl> <dl> <dt><code>options</code> - </dt> <dd>Options to be used in performing comparisons, for example whether they are to be case-blind and/or accent-blind </dd> </dl> <dl> <dt><code>isDefault</code> - </dt> <dd>If true, this collation will be used as the default collation</dd> </dl> </dd> </dl> <hr><a name="DeclareNamespace(string,string)"></a><h3>DeclareNamespace</h3><pre>public void <b>DeclareNamespace</b>(<a href="http://msdn.microsoft.com/en-us/library/system.string(VS.80).aspx">string</a> prefix, <a href="http://msdn.microsoft.com/en-us/library/system.string(VS.80).aspx">string</a> uri)</pre><dl> <dd> <p> Declare a namespace for use by the XPath expression. </p><b>Parameters:</b><dl> <dt><code>prefix</code> - </dt> <dd>The namespace prefix to be declared. Use a zero-length string to declare the default namespace (that is, the default namespace for elements and types). </dd> </dl> <dl> <dt><code>uri</code> - </dt> <dd>The namespace URI. It is possible to specify a zero-length string to "undeclare" a namespace. </dd> </dl> </dd> </dl> <hr><a name="GetNamespaceURI()"></a><h3>GetNamespaceURI</h3><pre>public <a href="http://msdn.microsoft.com/en-us/library/system.string(VS.80).aspx">string</a> <b>GetNamespaceURI</b>()</pre><dl> <dd></dd> </dl> <hr><a name="ImportSchemaNamespace(string)"></a><h3>ImportSchemaNamespace</h3><pre>public void <b>ImportSchemaNamespace</b>(<a href="http://msdn.microsoft.com/en-us/library/system.string(VS.80).aspx">string</a> uri)</pre><dl> <dd> <p> Import schema definitions for a specified namespace. That is, add the element and attribute declarations and type definitions contained in a given namespace to the static context for the XPath expression. </p> <p>This method will not cause the schema to be loaded. That must be done separately, using the <code>SchemaManager</code>}. This method will not fail if the schema has not been loaded (but in that case the set of declarations and definitions made available to the XPath expression is empty). The schema document for the specified namespace may be loaded before or after this method is called. </p> <p> This method does not bind a prefix to the namespace. That must be done separately, using the <code>declareNamespace</code> method. </p> <b>Parameters:</b><dl> <dt><code>uri</code> - </dt> <dd>The namespace URI whose declarations and type definitions are to be made available for use within the XPath expression. </dd> </dl> </dd> </dl> <hr><a name="SetDecimalFormatProperty(Saxon.Api.QName,string,string)"></a><h3>SetDecimalFormatProperty</h3><pre>public void <b>SetDecimalFormatProperty</b>(<a href="QName.html">QName</a> format, <a href="http://msdn.microsoft.com/en-us/library/system.string(VS.80).aspx">string</a> property, <a href="http://msdn.microsoft.com/en-us/library/system.string(VS.80).aspx">string</a> value)</pre><dl> <dd> <p> Sets a property of a selected decimal format, for use by the <code>format-number</code> function. </p> <p> This method checks that the value is valid for the particular property, but it does not check that all the values for the decimal format are consistent (for example, that the decimal separator and grouping separator have different values). This consistency check is performed only when the decimal format is used. </p><b>Parameters:</b><dl> <dt><code>format</code> - </dt> <dd>The name of the decimal format whose property is to be set. Supply null to set a property of the default (unnamed) decimal format. This correponds to a name used in the third argument of <code>format-number</code>. </dd> </dl> <dl> <dt><code>property</code> - </dt> <dd>The name of the property to set: one of "decimal-separator", "grouping-separator", "infinity", "NaN", "minus-sign", "percent", "per-mille", "zero-digit", "digit", or "pattern-separator". </dd> </dl> <dl> <dt><code>value</code> - </dt> <dd>The new value for the property.</dd> </dl> </dd> </dl> <hr><a name="DeclareVariable(Saxon.Api.QName)"></a><h3>DeclareVariable</h3><pre>public void <b>DeclareVariable</b>(<a href="QName.html">QName</a> name)</pre><dl> <dd> <p> Declare a variable for use by the XPath expression. If the expression refers to any variables, then they must be declared here, unless the <code>AllowUndeclaredVariables</code> property has been set to true. </p><b>Parameters:</b><dl> <dt><code>name</code> - </dt> <dd>The name of the variable, as a <code>QName</code> </dd> </dl> </dd> </dl> <hr><a name="Compile(string)"></a><h3>Compile</h3><pre>public <a href="XPathExecutable.html">XPathExecutable</a> <b>Compile</b>(<a href="http://msdn.microsoft.com/en-us/library/system.string(VS.80).aspx">string</a> source)</pre><dl> <dd> <p> Compile an expression supplied as a String. </p><b>Parameters:</b><dl> <dt><code>source</code> - </dt> <dd>A string containing the source text of the XPath expression</dd> </dl> <dl> <dt>returns</dt> <dd>An <code>XPathExecutable</code> which represents the compiled xpath expression object. The XPathExecutable may be run as many times as required, in the same or a different thread. The <code>XPathExecutable</code> is not affected by any changes made to the <code>XPathCompiler</code> once it has been compiled. </dd> </dl> </dd> </dl> <hr><a name="Evaluate(string,Saxon.Api.XdmItem)"></a><h3>Evaluate</h3><pre>public <a href="XdmValue.html">XdmValue</a> <b>Evaluate</b>(<a href="http://msdn.microsoft.com/en-us/library/system.string(VS.80).aspx">string</a> expression, <a href="XdmItem.html">XdmItem</a> contextItem)</pre><dl> <dd> <p> Compile and execute an expression supplied as a String, with a given context item. </p><b>Parameters:</b><dl> <dt><code>expression</code> - </dt> <dd>A string containing the source text of the XPath expression</dd> </dl> <dl> <dt><code>contextItem</code> - </dt> <dd>The context item to be used for evaluation of the XPath expression. May be null, in which case the expression is evaluated without any context item. </dd> </dl> <dl> <dt>returns</dt> <dd>An <code>XdmValue</code> which is the result of evaluating the XPath expression. </dd> </dl> </dd> </dl> <hr><a name="EvaluateSingle(string,Saxon.Api.XdmItem)"></a><h3>EvaluateSingle</h3><pre>public <a href="XdmItem.html">XdmItem</a> <b>EvaluateSingle</b>(<a href="http://msdn.microsoft.com/en-us/library/system.string(VS.80).aspx">string</a> expression, <a href="XdmItem.html">XdmItem</a> contextItem)</pre><dl> <dd> <p> Compile and execute an expression supplied as a String, with a given context item, where the expression is expected to return a single item as its result </p><b>Parameters:</b><dl> <dt><code>expression</code> - </dt> <dd>A string containing the source text of the XPath expression</dd> </dl> <dl> <dt><code>contextItem</code> - </dt> <dd>The context item to be used for evaluation of the XPath expression. May be null, in which case the expression is evaluated without any context item. </dd> </dl> <dl> <dt>returns</dt> <dd>If the XPath expression returns a singleton, then the the <code>XdmItem</code> which is the result of evaluating the XPath expression. If the expression returns an empty sequence, then null. If the expression returns a sequence containing more than one item, then the first item in the result. </dd> </dl> </dd> </dl> <hr> </div> </body> </html>