XPathMessageFilter 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
代表對 XML 文件的查詢,該文件由 XPath 1.0 表達式定義。
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 會使用 XPath 運算式來確定 XML 檔是否包含特定元素、屬性、文字或其他 XML 語法建構。 一般而言,應用程式會在端點使用 XPathMessageFilter 來查詢SOAP訊息的內容,然後根據該查詢的結果採取適當的動作。 例如,佇列程序可能會使用 XPath 查詢,檢查已知標頭的優先元素,以決定是否將訊息移至佇列前端。
XML 路徑語言(XPath)提供一種用於定位 XML 文件各部分的語言。 XPath 的主要語法結構是一個表達式,用以定義如何遍歷 XML 文件的邏輯結構,並定位或識別 XPath 資料型別。 具體來說,XPath 實作會根據 XML 文件的結構評估表達式,產生四種基本 XPath 資料型態之一:字串、數字、布林值與節點集合。 它們也支援將 XPath 資料型態轉換成字串、數字或布林資料型態的函式。 若方法預期這三種資料型態之一,則表達式評估結果會被隱含轉換。 請注意,這三種資料型別無法轉換為節點集型態。 XML 路徑語言在 W3C XML 路徑語言 1.0 規範中有完整描述。
XPath 表達式中的數字以雙精度 64 位元值表示。 因此,涉及多位有效數字測試的XPath表達式,可能因浮點精度問題而回傳錯誤結果。 欲了解更多資訊,請參閱 XML 路徑語言(XPath)版本 1.0,第 3.5 節。
建構函式
| 名稱 | Description |
|---|---|
| XPathMessageFilter() |
初始化一個與所有良好 XML 文件相符的類別新實例 XPathMessageFilter 。 |
| XPathMessageFilter(String, XmlNamespaceManager) |
使用指定的 XPath 表達式與命名空間管理器初始化該類別的新 XPathMessageFilter 實例。 |
| XPathMessageFilter(String, XsltContext) |
使用指定的 XPath 表達式初始化該類別的新實例XPathMessageFilter。XsltContext |
| XPathMessageFilter(String) |
使用 XPath 表達式初始化類別的新實例 XPathMessageFilter ,以指定篩選器的查詢條件。 |
| XPathMessageFilter(XmlReader, XmlNamespaceManager) |
透過讀取串流的 XPath 並使用指定的命名空間管理器,初始化該類別的新 XPathMessageFilter 實例。 |
| XPathMessageFilter(XmlReader, XsltContext) |
透過讀取串流的 XPath 並使用指定的 XML 讀取器,初始化該類別的新實例 XPathMessageFilter ,並用 XsltContext 解析命名空間、自訂函式與變數。 |
| XPathMessageFilter(XmlReader) |
透過讀取串流的 XPath 並使用指定的 XML 讀取器,初始化該類別的新 XPathMessageFilter 實例。 |
屬性
| 名稱 | Description |
|---|---|
| Namespaces |
取得 XPath 表達式中解析命名空間前綴的管理器,該表達式定義了過濾器。 |
| NodeQuota |
取得或設定在篩選器評估時應檢視的最大節點數量。 |
| XPath |
取得定義篩選條件的 XPath 表達式。 |
方法
| 名稱 | Description |
|---|---|
| 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) |
使用 |
| 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 元素。 |
明確介面實作
| 名稱 | Description |
|---|---|
| IXmlSerializable.GetSchema() |
一個明確的介面實作,能取得目前的結構。 |
| IXmlSerializable.ReadXml(XmlReader) |
一個明確的介面實作,讀取目前的 XML 節點。 |
| IXmlSerializable.WriteXml(XmlWriter) |
一個明確 |