﻿<?xml version="1.0" encoding="utf-8"?><Type Name="XPathExpression" FullName="System.Xml.XPath.XPathExpression"><TypeSignature Maintainer="auto" Language="C#" Value="public abstract class XPathExpression" /><TypeSignature Language="ILAsm" Value=".class public auto ansi abstract beforefieldinit XPathExpression extends System.Object" /><AssemblyInfo><AssemblyName>System.Xml</AssemblyName><AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00]</AssemblyPublicKey><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ThreadSafetyStatement>All the dynamic members are not designed to be thread safe. This class cannot be used parallely in multiple thread for XPath evaluation.</ThreadSafetyStatement><Base><BaseTypeName>System.Object</BaseTypeName></Base><Interfaces /><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This class is returned as the result of the <see cref="M:System.Xml.XPath.XPathNavigator.Compile(System.String)" /> method of the <see cref="T:System.Xml.XPath.XPathNavigator" /> class. It is a parameter to the <see cref="Overload:System.Xml.XPath.XPathNavigator.Evaluate" />, <see cref="Overload:System.Xml.XPath.XPathNavigator.Matches" />, <see cref="Overload:System.Xml.XPath.XPathNavigator.Select" />, and <see cref="Overload:System.Xml.XPath.XPathNavigator.SelectSingleNode" /> methods of the <see cref="T:System.Xml.XPath.XPathNavigator" /> class.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Provides a typed class that represents a compiled XPath expression.</para></summary></Docs><Members><Member MemberName="AddSort"><MemberSignature Language="C#" Value="public abstract void AddSort (object expr, System.Collections.IComparer comparer);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void AddSort(object expr, class System.Collections.IComparer comparer) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="expr" Type="System.Object" /><Parameter Name="comparer" Type="System.Collections.IComparer" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.Xml.XPath.XPathExpression.AddSort(System.Object,System.Collections.IComparer)" /> method enables users to sort objects by their data type instead of by string or number. The <see cref="T:System.Collections.IComparer" /> object provides an implementation of the <see cref="M:System.Collections.IComparer.Compare(System.Object,System.Object)" /> method that supports sorting on user-defined classes.</para><para>In the following example, the books are sorted by ISBN number, where isbn is an object that implements the <see cref="T:System.Collections.IComparer" /> interface.</para><code>Dim expression As XPathExpression = navigator.Compile("bookstore/book")
Dim isbn As ISBN = New ISBN()
expression.AddSort("@ISBN", (IComparer)isbn)</code><code>XPathExpression expression = navigator.Compile("bookstore/book");
ISBN isbn = new ISBN();
expression.AddSort("@ISBN", (IComparer)isbn);</code><para>The following are important notes to consider when using the <see cref="M:System.Xml.XPath.XPathExpression.AddSort(System.Object,System.Collections.IComparer)" /> method.</para><list type="bullet"><item><para>The order in which the sorts are added provides the sort key order.</para></item><item><para>If the <see cref="T:System.Xml.XPath.XPathExpression" /> or the sort key requires namespace resolution, you must use the <see cref="M:System.Xml.XPath.XPathExpression.SetContext(System.Xml.XmlNamespaceManager)" /> method to provide an <see cref="T:System.Xml.XmlNamespaceManager" /> for namespace resolution.</para></item><item><para>If the <see cref="T:System.Xml.XPath.XPathExpression" /> does not include a prefix, it is assumed that the namespace Uniform Resource Identifier (URI) is the empty namespace. If your XML includes a default namespace, you must still use the <see cref="M:System.Xml.XPath.XPathExpression.SetContext(System.Xml.XmlNamespaceManager)" /> method and provide an <see cref="T:System.Xml.XmlNamespaceManager" /> that contains a prefix and namespace URI to handle the default namespace.</para></item></list></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>When overridden in a derived class, sorts the nodes selected by the XPath expression according to the specified <see cref="T:System.Collections.IComparer" /> object.</para></summary><param name="expr"><attribution license="cc4" from="Microsoft" modified="false" />An object representing the sort key. This can be the string value of the node or an <see cref="T:System.Xml.XPath.XPathExpression" /> object with a compiled XPath expression.</param><param name="comparer"><attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Collections.IComparer" /> object that provides the specific data type comparisons for comparing two objects for equivalence. </param></Docs></Member><Member MemberName="AddSort"><MemberSignature Language="C#" Value="public abstract void AddSort (object expr, System.Xml.XPath.XmlSortOrder order, System.Xml.XPath.XmlCaseOrder caseOrder, string lang, System.Xml.XPath.XmlDataType dataType);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void AddSort(object expr, valuetype System.Xml.XPath.XmlSortOrder order, valuetype System.Xml.XPath.XmlCaseOrder caseOrder, string lang, valuetype System.Xml.XPath.XmlDataType dataType) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="expr" Type="System.Object" /><Parameter Name="order" Type="System.Xml.XPath.XmlSortOrder" /><Parameter Name="caseOrder" Type="System.Xml.XPath.XmlCaseOrder" /><Parameter Name="lang" Type="System.String" /><Parameter Name="dataType" Type="System.Xml.XPath.XmlDataType" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><list type="bullet"><item><para>The order in which the sorts are added provides the sort key order.</para></item><item><para>If the <see cref="T:System.Xml.XPath.XPathExpression" /> or the sort key requires namespace resolution, you must use the <see cref="M:System.Xml.XPath.XPathExpression.SetContext(System.Xml.XmlNamespaceManager)" /> method to provide an <see cref="T:System.Xml.XmlNamespaceManager" /> for namespace resolution.</para></item><item><para>If the <see cref="T:System.Xml.XPath.XPathExpression" /> does not include a prefix, it is assumed that the namespace Uniform Resource Identifier (URI) is the empty namespace. If your XML includes a default namespace, you must still use the <see cref="M:System.Xml.XPath.XPathExpression.SetContext(System.Xml.XmlNamespaceManager)" /> method and provide an <see cref="T:System.Xml.XmlNamespaceManager" /> that contains a prefix and namespace URI to handle the default namespace.</para></item></list></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>When overridden in a derived class, sorts the nodes selected by the XPath expression according to the supplied parameters.</para></summary><param name="expr"><attribution license="cc4" from="Microsoft" modified="false" />An object representing the sort key. This can be the string value of the node or an <see cref="T:System.Xml.XPath.XPathExpression" /> object with a compiled XPath expression. </param><param name="order"><attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Xml.XPath.XmlSortOrder" /> value indicating the sort order. </param><param name="caseOrder"><attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Xml.XPath.XmlCaseOrder" /> value indicating how to sort uppercase and lowercase letters.</param><param name="lang"><attribution license="cc4" from="Microsoft" modified="false" />The language to use for comparison. Uses the <see cref="T:System.Globalization.CultureInfo" /> class that can be passed to the <see cref="Overload:System.String.Compare" /> method for the language types, for example, "us-en" for U.S. English. If an empty string is specified, the system environment is used to determine the <see cref="T:System.Globalization.CultureInfo" />. </param><param name="dataType"><attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Xml.XPath.XmlDataType" /> value indicating the sort order for the data type. </param></Docs></Member><Member MemberName="Clone"><MemberSignature Language="C#" Value="public abstract System.Xml.XPath.XPathExpression Clone ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.Xml.XPath.XPathExpression Clone() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Xml.XPath.XPathExpression</ReturnType></ReturnValue><Parameters /><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>When overridden in a derived class, the <see cref="M:System.Xml.XPath.XPathExpression.Clone" /> method returns a clone of this <see cref="T:System.Xml.XPath.XPathExpression" /> object with the same state as this <see cref="T:System.Xml.XPath.XPathExpression" /> object.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>When overridden in a derived class, returns a clone of this <see cref="T:System.Xml.XPath.XPathExpression" />.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>A new <see cref="T:System.Xml.XPath.XPathExpression" /> object.</para></returns></Docs></Member><Member MemberName="Compile"><MemberSignature Language="C#" Value="public static System.Xml.XPath.XPathExpression Compile (string xpath);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Xml.XPath.XPathExpression Compile(string xpath) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Xml.XPath.XPathExpression</ReturnType></ReturnValue><Parameters><Parameter Name="xpath" Type="System.String" /></Parameters><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>An XPath expression is evaluated to yield one of the following result types.</para><list type="bullet"><item><para><see cref="F:System.Xml.XPath.XPathResultType.NodeSet" /></para></item><item><para><see cref="F:System.Xml.XPath.XPathResultType.Boolean" /></para></item><item><para><see cref="F:System.Xml.XPath.XPathResultType.Number" /></para></item><item><para><see cref="F:System.Xml.XPath.XPathResultType.String" /></para></item></list><block subset="none" type="note"><para>If a user-defined function with an invalid number of arguments (or an unimplemented user-defined function) is specified in the XPath expression, an exception occurs only at run time. User-defined functions are not checked at compile time and exceptions that result from user-defined functions occur only if execution evaluates the expression.</para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Compiles the XPath expression specified and returns an <see cref="T:System.Xml.XPath.XPathExpression" /> object representing the XPath expression.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>An <see cref="T:System.Xml.XPath.XPathExpression" /> object.</para></returns><param name="xpath"><attribution license="cc4" from="Microsoft" modified="false" />An XPath expression.</param></Docs></Member><Member MemberName="Compile"><MemberSignature Language="C#" Value="public static System.Xml.XPath.XPathExpression Compile (string xpath, System.Xml.IXmlNamespaceResolver nsResolver);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Xml.XPath.XPathExpression Compile(string xpath, class System.Xml.IXmlNamespaceResolver nsResolver) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Xml.XPath.XPathExpression</ReturnType></ReturnValue><Parameters><Parameter Name="xpath" Type="System.String" /><Parameter Name="nsResolver" Type="System.Xml.IXmlNamespaceResolver" /></Parameters><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>An XPath expression is evaluated to yield one of the following result types.</para><list type="bullet"><item><para><see cref="F:System.Xml.XPath.XPathResultType.NodeSet" /></para></item><item><para><see cref="F:System.Xml.XPath.XPathResultType.Boolean" /></para></item><item><para><see cref="F:System.Xml.XPath.XPathResultType.Number" /></para></item><item><para><see cref="F:System.Xml.XPath.XPathResultType.String" /></para></item></list><block subset="none" type="note"><para>If a user-defined function with an invalid number of arguments (or an unimplemented user-defined function) is specified in the XPath expression, an exception occurs only at run-time. User-defined functions are not checked at compile time and exceptions resulting from user-defined functions occur only if execution evaluates the expression.</para><para /></block><block subset="none" type="note"><para>It is not possible to compile a <see cref="T:System.Xml.XPath.XPathExpression" /> with a custom context in one step by passing an <see cref="T:System.Xml.Xsl.XsltContext" />, which implements <see cref="T:System.Xml.IXmlNamespaceResolver" />, as an argument to this method. To use a <see cref="T:System.Xml.XPath.XPathExpression" /> with a custom context, you must call the <see cref="Overload:System.Xml.XPath.XPathExpression.SetContext" /> method after compiling the expression.</para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Compiles the specified XPath expression, with the <see cref="T:System.Xml.IXmlNamespaceResolver" /> object specified for namespace resolution, and returns an <see cref="T:System.Xml.XPath.XPathExpression" /> object that represents the XPath expression.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>An <see cref="T:System.Xml.XPath.XPathExpression" /> object.</para></returns><param name="xpath"><attribution license="cc4" from="Microsoft" modified="false" />An XPath expression.</param><param name="nsResolver"><attribution license="cc4" from="Microsoft" modified="false" />An object that implements the <see cref="T:System.Xml.IXmlNamespaceResolver" /> interface for namespace resolution.</param></Docs></Member><Member MemberName="Expression"><MemberSignature Language="C#" Value="public abstract string Expression { get; }" /><MemberSignature Language="ILAsm" Value=".property instance string Expression" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.String</ReturnType></ReturnValue><Docs><value>The string that represents the XPath expression.</value><remarks>To be added.</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>When overridden in a derived class, gets a string representation of the <see cref="T:System.Xml.XPath.XPathExpression" />.</para></summary></Docs></Member><Member MemberName="ReturnType"><MemberSignature Language="C#" Value="public abstract System.Xml.XPath.XPathResultType ReturnType { get; }" /><MemberSignature Language="ILAsm" Value=".property instance valuetype System.Xml.XPath.XPathResultType ReturnType" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Xml.XPath.XPathResultType</ReturnType></ReturnValue><Docs><value>An <see cref="T:System.Xml.XPath.XPathResultType" /> value that indicates the return type.</value><remarks>The return type varies for each XPath expression and it might be <see cref="F:System.Xml.XPath.XPathResultType.Any" />. For example, the return type of a variable binding expression (e.g. "$foo") can be anything.</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>When overridden in a derived class, gets the result type of the XPath expression.</para></summary></Docs></Member><Member MemberName="SetContext"><MemberSignature Language="C#" Value="public abstract void SetContext (System.Xml.IXmlNamespaceResolver nsResolver);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void SetContext(class System.Xml.IXmlNamespaceResolver nsResolver) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="nsResolver" Type="System.Xml.IXmlNamespaceResolver" /></Parameters><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>Namespace resolution is supported using classes that implement the <see cref="T:System.Xml.IXmlNamespaceResolver" /> interface, such as the <see cref="T:System.Xml.XmlNamespaceManager" /> class. The <see cref="T:System.Xml.XmlNamespaceManager" /> stores prefix and namespace Uniform Resource Identifier (URI) mappings. If the <see cref="T:System.Xml.XPath.XPathExpression" /> requires namespace resolution, the prefix and namespace URI pair must be added to an object, such as the <see cref="T:System.Xml.XmlNamespaceManager" /> class, which implements the <see cref="T:System.Xml.IXmlNamespaceResolver" /> interface, and the <see cref="M:System.Xml.XPath.XPathExpression.SetContext(System.Xml.IXmlNamespaceResolver)" /> method must be called to specify the <see cref="T:System.Xml.IXmlNamespaceResolver" /> interface object to use for namespace resolution.</para><para>The following are important notes to consider when using the <see cref="M:System.Xml.XPath.XPathExpression.SetContext(System.Xml.IXmlNamespaceResolver)" /> method.</para><list type="bullet"><item><para>If the <see cref="T:System.Xml.XPath.XPathExpression" /> does not include a prefix, it is assumed that the namespace URI is the empty namespace. If your XML includes a default namespace, you must still use the <see cref="M:System.Xml.XPath.XPathExpression.SetContext(System.Xml.IXmlNamespaceResolver)" /> method and provide an object that contains a prefix and namespace URI to handle the default namespace.</para></item><item><para>You can also supply an <see cref="T:System.Xml.IXmlNamespaceResolver" /> interface object for namespace resolution to the <see cref="M:System.Xml.XPath.XPathExpression.Compile(System.String,System.Xml.IXmlNamespaceResolver)" /> method when you create your <see cref="T:System.Xml.XPath.XPathExpression" /> object.</para></item><item><para><see cref="M:System.Xml.XPath.XPathExpression.SetContext(System.Xml.IXmlNamespaceResolver)" /> accepts <see cref="T:System.Xml.Xsl.XsltContext" /> as a namespace resolver, so you can implement a custom context and use functions and variables based on <see cref="T:System.Xml.Xsl.IXsltContextFunction" /> and <see cref="T:System.Xml.Xsl.IXsltContextVariable" />. The XPath expression will execute them. For more information, see <format type="text/html"><a href="4772f20e-1e7f-496e-93c2-1484473be555">User Defined Functions and Variables</a></format>.</para></item></list></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>When overridden in a derived class, specifies the <see cref="T:System.Xml.IXmlNamespaceResolver" /> object to use for namespace resolution.</para></summary><param name="nsResolver"><attribution license="cc4" from="Microsoft" modified="false" />An object that implements the <see cref="T:System.Xml.IXmlNamespaceResolver" /> interface to use for namespace resolution.</param></Docs></Member><Member MemberName="SetContext"><MemberSignature Language="C#" Value="public abstract void SetContext (System.Xml.XmlNamespaceManager nsManager);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void SetContext(class System.Xml.XmlNamespaceManager nsManager) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="nsManager" Type="System.Xml.XmlNamespaceManager" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>Namespace resolution is supported using the <see cref="T:System.Xml.XmlNamespaceManager" /> class which stores prefix and namespace Uniform Resource Identifier (URI) mappings. If the <see cref="T:System.Xml.XPath.XPathExpression" /> requires namespace resolution, the prefix and namespace URI pair must be added to the <see cref="T:System.Xml.XmlNamespaceManager" /> object and the <see cref="M:System.Xml.XPath.XPathExpression.SetContext(System.Xml.XmlNamespaceManager)" /> method must be called to specify the <see cref="T:System.Xml.XmlNamespaceManager" /> object to use for namespace resolution.</para><para>The following are important notes to consider when using the <see cref="M:System.Xml.XPath.XPathExpression.SetContext(System.Xml.XmlNamespaceManager)" /> method.</para><list type="bullet"><item><para>If the <see cref="T:System.Xml.XPath.XPathExpression" /> does not include a prefix, it is assumed that the namespace URI is the empty namespace. If your XML includes a default namespace, you must still use the <see cref="M:System.Xml.XPath.XPathExpression.SetContext(System.Xml.XmlNamespaceManager)" /> method and provide an <see cref="T:System.Xml.XmlNamespaceManager" /> object that contains a prefix and namespace URI to handle the default namespace.</para></item><item><para>You can also supply an <see cref="T:System.Xml.IXmlNamespaceResolver" /> object for namespace resolution to the <see cref="M:System.Xml.XPath.XPathExpression.Compile(System.String,System.Xml.IXmlNamespaceResolver)" /> method when you create your <see cref="T:System.Xml.XPath.XPathExpression" /> object.</para></item><item><para><see cref="M:System.Xml.XPath.XPathExpression.SetContext(System.Xml.IXmlNamespaceResolver)" /> accepts <see cref="T:System.Xml.Xsl.XsltContext" /> as a namespace resolver, so you can implement a custom context and use functions and variables based on <see cref="T:System.Xml.Xsl.IXsltContextFunction" /> and <see cref="T:System.Xml.Xsl.IXsltContextVariable" />. The XPath expression will execute them. For more information, see <format type="text/html"><a href="4772f20e-1e7f-496e-93c2-1484473be555">User Defined Functions and Variables</a></format>.</para></item></list></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>When overridden in a derived class, specifies the <see cref="T:System.Xml.XmlNamespaceManager" /> object to use for namespace resolution.</para></summary><param name="nsManager"><attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Xml.XmlNamespaceManager" /> object to use for namespace resolution. </param></Docs></Member></Members></Type>