Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.이 콘텐츠는 선택한 언어로 제공되지 않습니다.
Chapter 30. XQuery
Overview 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
XQuery was originally devised as a query language for data stored in XML form in a database. The XQuery language enables you to select parts of the current message, when the message is in XML format. XQuery is a superset of the XPath language; hence, any valid XPath expression is also a valid XQuery expression.
Java syntax 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
You can pass an XQuery expression to
xquery()
in several ways. For simple expressions, you can pass the XQuery expressions as a string (java.lang.String
). For longer XQuery expressions, you might prefer to store the expression in a file, which you can then reference by passing a java.io.File
argument or a java.net.URL
argument to the overloaded xquery()
method. The XQuery expression implicitly acts on the message content and returns a node set as the result. Depending on the context, the return value is interpreted either as a predicate (where an empty node set is interpreted as false) or as an expression.
Adding the Saxon module 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
To use XQuery in your routes you need to add a dependency on
camel-saxon
to your project as shown in Example 30.1, “Adding the camel-saxon dependency”.
Example 30.1. Adding the camel-saxon dependency
Static import 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
To use the
xquery()
static method in your application code, include the following import statement in your Java source files:
import static org.apache.camel.builder.saxon.XQueryBuilder.xquery;
import static org.apache.camel.builder.saxon.XQueryBuilder.xquery;
Variables 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
Table 30.1, “XQuery variables” lists the variables that are accessible when using XQuery.
Variable | Type | Description |
---|---|---|
exchange | Exchange | The current Exchange |
in.body | Object | The body of the IN message |
out.body | Object | The body of the OUT message |
in.headers.key | Object | The IN message header whose key is key |
out.headers.key | Object | The OUT message header whose key is key |
key | Object | The Exchange property whose key is key |
Example 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
Example 30.2, “Route using XQuery” shows a route that uses XQuery.
Example 30.2. Route using XQuery