第33章 XQuery


概要

XQuery は当初、データベース内の XML フォームに保存されているデータのクエリー言語として開発されました。XQuery 言語を使用すると、メッセージが XML 形式の場合に、現在のメッセージの一部を選択できます。XQuery は、XPath 言語のスーパーセットです。したがって、有効なすべての XPath 式は有効な XQuery 式でもあります。

Java 構文

XQuery 式を xquery() に渡すには、いくつかの方法があります。単純な式の場合は、XQuery の式を文字列として渡すことができます (java.lang.String)。XQuery 式が長い場合は、ファイルに式を保存することが推奨されます。このファイルは、オーバーロードされた xquery() メソッドに java.io.File 引数または java.net.URL 引数を渡すことで参照できます。XQuery 式は、メッセージの内容に対して暗黙的に作用し、結果としてノードセットを返します。コンテキストに応じて、戻り値は述語 (空のノードセットは false として解釈されます) または式として解釈されます。

Saxon モジュールの追加

XQuery をルートで使用するには、例33.1「camel-saxon 依存関係の追加」 で示されたように、camel-saxon の依存関係をプロジェクトに追加する必要があります。

例33.1 camel-saxon 依存関係の追加

<!-- Maven POM File -->
...
<dependencies>
  ...
  <dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-saxon</artifactId>
    <version>${camel-version}</version>
  </dependency>
  ...
</dependencies>

Camel on EAP デプロイメント

camel-saxon コンポーネントは、Camel on EAP (Wildfly Camel) フレームワークによってサポートされており、Red Hat JBoss Enterprise Application Platform (JBoss EAP) コンテナー上でシンプルなデプロイモデルを提供します。

静的インポート

アプリケーションコードで xquery() static メソッドを使用するには、以下の import ステートメントを Java ソースファイルに追加します。

import static org.apache.camel.component.xquery.XQueryBuilder.xquery;

Variables

表33.1「XQuery 変数」 に、XQuery を使用する際にアクセス可能な変数の一覧を示します。

表33.1 XQuery 変数
変数説明

exchange

Exchange

現在のエクスチェンジ

in.body

オブジェクト

IN メッセージのボディー

out.body

オブジェクト

OUT メッセージのボディー

in.headers.key

オブジェクト

キーが key である IN メッセージヘッダー

out.headers.key

オブジェクト

キーが key である OUT メッセージヘッダー

key

オブジェクト

キーが key であるエクスチェンジプロパティー

例33.2「XQuery を使用するルート」 は、XQuery を使用するルートを示しています。

例33.2 XQuery を使用するルート

<camelContext>
  <route>
    <from uri="activemq:MyQueue"/>
    <filter>
      <language langauge="xquery">/foo:person[@name='James']</language>
      <to uri="mqseries:SomeOtherQueue"/>
    </filter>
  </route>
</camelContext>
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.