XPath フィルターの使用

このコンポーネントは、XPath ベースのメッセージフィルターを定義します。内部的に、これらのコンポーネントは AbstractXPathMessageSelector のインスタンスをラップする MessageFilter を使用します。

詳細については、フィルターを参照してください。

XPath フィルターを使用するには、xpath-expression 要素を宣言するか、xpath-expression-ref 属性で XPath 式を参照することにより、少なくとも XPath 式を提供する必要があります。

指定された XPath 式が boolean 値に評価される場合、それ以上の構成パラメーターは必要ありません。ただし、XPath 式が String に評価される場合、評価結果が一致する match-value 属性を設定する必要があります。

match-type には 3 つのオプションがあります。

  • exactjava.lang.String の equals に対応します。基になる実装は StringValueTestXPathMessageSelector を使用します

  • case-insensitivejava.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 このエンドポイントの受信メッセージチャネル。オプション。
4XPath 評価結果と match-value の間に適用する一致の型。デフォルトは exact です。オプション。
5XPath 評価結果と照合される文字列値。この属性を設定しない場合、XPath 評価はブール値の結果を生成する必要があります。オプション。
6 フィルター条件に一致したメッセージがディスパッチされるチャネル。オプション。
7 デフォルトでは、このプロパティは false に設定されており、拒否されたメッセージ (フィルター条件に一致しなかったメッセージ) は警告なしでドロップされます。ただし、true に設定すると、メッセージの拒否によりエラー状態が発生し、例外が上流の呼び出し元に伝搬されます。オプション。
8 評価する XPath 式インスタンスへの参照。
9 この子要素は、評価される XPath 式を設定します。この要素を含めない場合は、xpath-expression-ref 属性を設定する必要があります。また、xpath-expression 要素を 1 つだけ含めることができます。
10XPath フィルターで使用するポーラー。オプション。