XPath フィルターの使用
このコンポーネントは、XPath ベースのメッセージフィルターを定義します。内部的に、これらのコンポーネントは AbstractXPathMessageSelector
のインスタンスをラップする MessageFilter
を使用します。
詳細については、フィルターを参照してください。 |
XPath フィルターを使用するには、xpath-expression
要素を宣言するか、xpath-expression-ref
属性で XPath 式を参照することにより、少なくとも XPath 式を提供する必要があります。
指定された XPath 式が boolean
値に評価される場合、それ以上の構成パラメーターは必要ありません。ただし、XPath 式が String
に評価される場合、評価結果が一致する match-value
属性を設定する必要があります。
match-type
には 3 つのオプションがあります。
exact
:java.lang.String
のequals
に対応します。基になる実装はStringValueTestXPathMessageSelector
を使用しますcase-insensitive
:java.lang.String
のequals-ignore-case
に対応します。基になる実装はStringValueTestXPathMessageSelector
を使用しますregex
: 操作java.lang.String
に一致します。基礎となる実装はRegexTestXPathMessageSelector
を使用します
"regex" の "match-type" 値を提供する場合、match-value
属性で提供される値は有効な正規表現でなければなりません。
次の例は、xpath-filter
要素で使用可能なすべての属性を示しています。
<int-xml:xpath-filter discard-channel="" (1)
id="" (2)
input-channel="" (3)
match-type="exact" (4)
match-value="" (5)
output-channel="" (6)
throw-exception-on-rejection="false" (7)
xpath-expression-ref=""> (8)
<int-xml:xpath-expression ... /> (9)
<int:poller ... /> (10)
</int-xml:xpath-filter>
1 | 拒否されたメッセージを送信するメッセージチャネル。オプション。 |
2 | 基礎となる Bean 定義の ID。オプション。 |
3 | このエンドポイントの受信メッセージチャネル。オプション。 |
4 | XPath 評価結果と match-value の間に適用する一致の型。デフォルトは exact です。オプション。 |
5 | XPath 評価結果と照合される文字列値。この属性を設定しない場合、XPath 評価はブール値の結果を生成する必要があります。オプション。 |
6 | フィルター条件に一致したメッセージがディスパッチされるチャネル。オプション。 |
7 | デフォルトでは、このプロパティは false に設定されており、拒否されたメッセージ (フィルター条件に一致しなかったメッセージ) は警告なしでドロップされます。ただし、true に設定すると、メッセージの拒否によりエラー状態が発生し、例外が上流の呼び出し元に伝搬されます。オプション。 |
8 | 評価する XPath 式インスタンスへの参照。 |
9 | この子要素は、評価される XPath 式を設定します。この要素を含めない場合は、xpath-expression-ref 属性を設定する必要があります。また、xpath-expression 要素を 1 つだけ含めることができます。 |
10 | XPath フィルターで使用するポーラー。オプション。 |