// Do not edit directly!
// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
[id="extensions-saxon"]
= XQuery
:linkattrs:
:cq-artifact-id: camel-quarkus-saxon
:cq-native-supported: true
:cq-status: Stable
:cq-status-deprecation: Stable
:cq-description: Query and/or transform XML payloads using XQuery and Saxon.
:cq-deprecated: false
:cq-jvm-since: 1.1.0
:cq-native-since: 2.0.0

ifeval::[{doc-show-badges} == true]
[.badges]
[.badge-key]##JVM since##[.badge-supported]##1.1.0## [.badge-key]##Native since##[.badge-supported]##2.0.0##
endif::[]

Query and/or transform XML payloads using XQuery and Saxon.

[id="extensions-saxon-whats-inside"]
== What's inside

* xref:{cq-camel-components}::xquery-component.adoc[XQuery component], URI syntax: `xquery:resourceUri`
* xref:{cq-camel-components}:languages:xquery-language.adoc[XQuery language]

Please refer to the above links for usage and configuration details.

[id="extensions-saxon-maven-coordinates"]
== Maven coordinates

https://{link-quarkus-code-generator}/?extension-search=camel-quarkus-saxon[Create a new project with this extension on {link-quarkus-code-generator}, window="_blank"]

Or add the coordinates to your existing project:

[source,xml]
----
<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-saxon</artifactId>
</dependency>
----
ifeval::[{doc-show-user-guide-link} == true]
Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
endif::[]

[id="extensions-saxon-additional-camel-quarkus-configuration"]
== Additional Camel Quarkus configuration

This component is able to load XQuery definitions from classpath.
To make it work also in native mode, you need to explicitly embed the queries in the native executable
by using the `quarkus.native.resources.includes` property.

For instance, the two routes below load an XQuery script from two classpath resources named `myxquery.txt` and `another-xquery.txt` respectively:

[source,java]
----
from("direct:start").transform().xquery("resource:classpath:myxquery.txt", String.class);
from("direct:start").to("xquery:another-xquery.txt");
----

To include these (and possibly other queries stored in `.txt` files) in the native image, you would have to add something like the following to your `application.properties` file:

[source,properties]
----
quarkus.native.resources.includes = *.txt
----

More information about selecting resources for inclusion in the native executable can be found at xref:user-guide/native-mode.adoc#embedding-resource-in-native-executable[Embedding resource in native executable].

