XQuery was devised primarily as a query language for data stored in XML form. Its main
role is to get information out of XML databases. XQuery support is supplied by the
camel-saxon module.
To use XQuery in your routes you need to add a dependency on
camel-saxon to your project as shown in
Example 17.1.
Example 17.1. Adding the camel-script dependency
<!-- Maven POM File -->
...
<dependencies>
...
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-saxon</artifactId>
<version>${camel-version}</version>
</dependency>
...
</dependencies>Table 17.1 lists the variables that are accessible when using XQuery.
Table 17.1. XQuery variables
| 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. | Object | The IN message header whose key is key |
out.headers. | Object | The OUT message header whose key is key |
key | Object | The Exchange property whose key is key |
Example 17.2 shows a route that uses XQuery.
Example 17.2. Route using XQuery
<camelContext>
<route>
<from uri="activemq:MyQueue"/>
<filter>
<language langauge="xquery">/foo:person[@name='James']</language>
<to uri="mqseries:SomeOtherQueue"/>
</filter>
</route>
</camelContext>





