XPathMessageFilter 類別

定義

表示查詢由 XPath 1.0 運算式定義的 XML 文件。

public ref class XPathMessageFilter : System::ServiceModel::Dispatcher::MessageFilter, System::Xml::Serialization::IXmlSerializable
public class XPathMessageFilter : System.ServiceModel.Dispatcher.MessageFilter, System.Xml.Serialization.IXmlSerializable
type XPathMessageFilter = class
    inherit MessageFilter
    interface IXmlSerializable
Public Class XPathMessageFilter
Inherits MessageFilter
Implements IXmlSerializable
繼承
XPathMessageFilter
實作

備註

XPathMessageFilter 會使用 XPath 運算式來判斷 XML 文件是否包含特定項目、屬性、文字或其他 XML 語法結構。 一般而言,應用程式會在端點使用 XPathMessageFilter 來查詢 SOAP 訊息的內容,然後根據查詢的結果採取適當的行動。 例如,佇列處理序可能會使用 XPath 查詢來檢查已知標頭的優先順序項目,以便決定是否要將訊息移到佇列前面。

XML 路徑語言 (XPath) 提供了 XML 文件之定址部分的語言。 XPath 中的主要語法建構是一個運算式,它會定義如何周遊 XML 文件的邏輯結構,以及如何定址或識別 XPath 資料型別。 具體來說,XPath 實作會針對 XML 文件的結構評估運算式,以產生下列四種基本 XPath 資料型別中的其中一種:字串、數字、布林值 (Boolean) 和節點集。 它們也支援將 XPath 資料型別轉換為字串、數字或布林資料型別的功能。 如果方法預期有這三種資料型別的其中一種,運算式評估結果便會隱含地轉換。 請注意,這三種資料型別不能轉換為節點集型別。 XML 路徑語言會完整地以 W3C Xml 路徑語言1.0 規格描述。

XPath 運算式中的數字會表示成雙精度 64 位元值。 因此,參與測試包含許多有效位數的 XPath 運算式可能會因為浮點精確度的問題,而傳回不正確的結果。 如需詳細資訊,請參閱 XML 路徑語言 (XPath) 1.0 版,第3.5 節

建構函式

XPathMessageFilter()

初始化比對所有格式正確 XML 文件之 XPathMessageFilter 類別的新執行個體。

XPathMessageFilter(String)

使用 XPath 運算式來指定篩選條件的查詢準則,初始化 XPathMessageFilter 類別的新執行個體。

XPathMessageFilter(String, XmlNamespaceManager)

使用指定的 XPath 運算式和命名空間管理員,初始化 XPathMessageFilter 類別的新執行個體。

XPathMessageFilter(String, XsltContext)

使用指定的 XPath 運算式和 XPathMessageFilter,初始化 XsltContext 類別的新執行個體。

XPathMessageFilter(XmlReader)

藉由透過已指定 XML 讀取器來讀取已經過資料流處理的 XPath,初始化 XPathMessageFilter 類別的新執行個體。

XPathMessageFilter(XmlReader, XmlNamespaceManager)

藉由透過已指定 XML 讀取器來讀取已經過資料流處理的 XPath,以及使用指定的命名空間管理員,初始化 XPathMessageFilter 類別的新執行個體。

XPathMessageFilter(XmlReader, XsltContext)

藉由透過已指定 XML 讀取器來讀取已經過資料流處理的 XPath,以及使用 XPathMessageFilter 來解析命名空間、自訂函式和變數,初始化 XsltContext 類別的新執行個體。

屬性

Namespaces

取得管理員,它會解析定義篩選條件之 XPath 運算式中的命名空間前置詞。

NodeQuota

取得或設定應在篩選評估期間查看的節點數目上限。

XPath

取得定義篩選條件之查詢準則的 XPath 運算式。

方法

CreateFilterTable<FilterData>()

建立 XPathMessageFilterTable<TFilterData>,這個篩選條件具有與其相關聯的指定資料型別。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
Match(Message)

測試指定的訊息是否符合 XPath 篩選條件的準則。 這種表單不可以存取訊息的本文。

Match(MessageBuffer)

判斷經緩衝處理的訊息是否符合 XPath 篩選條件的查詢準則。

Match(SeekableXPathNavigator)

判斷由已指定最佳化 XPath 導覽所提供的 XML 文件是否符合 XPath 篩選條件的查詢準則。

Match(XPathNavigator)

評估已指定 XPath 導覽的篩選。

MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
OnGetSchema()

取得目前 XML 文件的結構描述。

OnReadXml(XmlReader)

讀取目前的 XML 節點。

OnWriteXml(XmlWriter)

使用 writer 寫入節點。

ReadXPath(XmlReader, XmlNamespaceManager)

使用指定的命名空間管理員,從已指定 XML 讀取器取得的 XPath,初始化 XPathMessageFilter 的目前執行個體。

StaticGetSchema(XmlSchemaSet)

取得用於序列化 XPath 篩選條件的 XML 結構描述型別。

ToString()

傳回代表目前物件的字串。

(繼承來源 Object)
TrimToSize()

釋放所有未使用的記憶體,以便精簡 XPath 篩選條件。

WriteXPath(XmlWriter, IXmlNamespaceResolver)

將 XPath 篩選條件序列化成 XmlWriter

WriteXPathTo(XmlWriter, String, String, String, Boolean)

使用已指定 XML 寫入器寫入 XML XPath 項目。

明確介面實作

IXmlSerializable.GetSchema()

取得目前結構描述的明確介面實作。

IXmlSerializable.ReadXml(XmlReader)

讀取目前 XML 節點的明確介面實作。

IXmlSerializable.WriteXml(XmlWriter)

使用 writer 寫入 XML 節點的明確介面實作。

適用於