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 33. 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 33.1, “Adding the camel-saxon dependency”.
Example 33.1. Adding the camel-saxon dependency
Camel on EAP deployment 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
The
camel-saxon
component is supported by the Camel on EAP (Wildfly Camel) framework, which offers a simplified deployment model on the Red Hat JBoss Enterprise Application Platform (JBoss EAP) container. For details of this model, see chapter "Apache Camel on JBoss EAP" in "Deploying into a Web Server".
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.component.xquery.XQueryBuilder.xquery;
import static org.apache.camel.component.xquery.XQueryBuilder.xquery;
Variables 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
Table 33.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 33.2, “Route using XQuery” shows a route that uses XQuery.
Example 33.2. Route using XQuery