Author: buildbot
Date: Thu Feb 5 16:20:58 2015
New Revision: 939126
Log:
Production update by buildbot for camel
Modified:
websites/production/camel/content/book-in-one-page.html
websites/production/camel/content/book-languages-appendix.html
websites/production/camel/content/cache/main.pageCache
websites/production/camel/content/xquery.html
Modified: websites/production/camel/content/book-in-one-page.html
==============================================================================
--- websites/production/camel/content/book-in-one-page.html (original)
+++ websites/production/camel/content/book-in-one-page.html Thu Feb 5 16:20:58
2015
@@ -4121,11 +4121,11 @@ While not actual tutorials you might fin
</div>
</div>
<h2 id="BookInOnePage-Preface">Preface</h2><p>This tutorial aims to guide the
reader through the stages of creating a project which uses Camel to facilitate
the routing of messages from a JMS queue to a <a shape="rect"
class="external-link" href="http://www.springramework.org"
rel="nofollow">Spring</a> service. The route works in a synchronous fashion
returning a response to the client.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1423135067112 {padding: 0px;}
-div.rbtoc1423135067112 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1423135067112 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1423153135547 {padding: 0px;}
+div.rbtoc1423153135547 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1423153135547 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1423135067112">
+/*]]>*/</style></p><div class="toc-macro rbtoc1423153135547">
<ul class="toc-indentation"><li><a shape="rect"
href="#Tutorial-JmsRemoting-TutorialonSpringRemotingwithJMS">Tutorial on Spring
Remoting with JMS</a></li><li><a shape="rect"
href="#Tutorial-JmsRemoting-Preface">Preface</a></li><li><a shape="rect"
href="#Tutorial-JmsRemoting-Prerequisites">Prerequisites</a></li><li><a
shape="rect"
href="#Tutorial-JmsRemoting-Distribution">Distribution</a></li><li><a
shape="rect" href="#Tutorial-JmsRemoting-About">About</a></li><li><a
shape="rect" href="#Tutorial-JmsRemoting-CreatetheCamelProject">Create the
Camel Project</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#Tutorial-JmsRemoting-UpdatethePOMwithDependencies">Update the POM with
Dependencies</a></li></ul>
</li><li><a shape="rect" href="#Tutorial-JmsRemoting-WritingtheServer">Writing
the Server</a>
@@ -6311,11 +6311,11 @@ So we completed the last piece in the pi
<style type="text/css">/*<![CDATA[*/
-div.rbtoc1423135070233 {padding: 0px;}
-div.rbtoc1423135070233 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1423135070233 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1423153138210 {padding: 0px;}
+div.rbtoc1423153138210 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1423153138210 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style><div class="toc-macro rbtoc1423135070233">
+/*]]>*/</style><div class="toc-macro rbtoc1423153138210">
<ul class="toc-indentation"><li><a shape="rect"
href="#Tutorial-AXIS-Camel-TutorialusingAxis1.4withApacheCamel">Tutorial using
Axis 1.4 with Apache Camel</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#Tutorial-AXIS-Camel-Prerequisites">Prerequisites</a></li><li><a
shape="rect"
href="#Tutorial-AXIS-Camel-Distribution">Distribution</a></li><li><a
shape="rect"
href="#Tutorial-AXIS-Camel-Introduction">Introduction</a></li><li><a
shape="rect" href="#Tutorial-AXIS-Camel-SettinguptheprojecttorunAxis">Setting
up the project to run Axis</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#Tutorial-AXIS-Camel-Maven2">Maven 2</a></li><li><a shape="rect"
href="#Tutorial-AXIS-Camel-wsdl">wsdl</a></li><li><a shape="rect"
href="#Tutorial-AXIS-Camel-ConfiguringAxis">Configuring Axis</a></li><li><a
shape="rect" href="#Tutorial-AXIS-Camel-RunningtheExample">Running the
Example</a></li></ul>
@@ -9766,48 +9766,17 @@ This is done using the following syntax:
<h3 id="BookInOnePage-Dependencies.17">Dependencies</h3>
<p>The XPath language is part of camel-core.</p>
-<h2 id="BookInOnePage-XQuery">XQuery</h2>
-
-<p>Camel supports <a shape="rect" class="external-link"
href="http://www.w3.org/TR/xquery/" rel="nofollow">XQuery</a> to allow an <a
shape="rect" href="expression.html">Expression</a> or <a shape="rect"
href="predicate.html">Predicate</a> to be used in the <a shape="rect"
href="dsl.html">DSL</a> or <a shape="rect" href="xml-configuration.html">Xml
Configuration</a>. For example you could use XQuery to create an <a
shape="rect" href="predicate.html">Predicate</a> in a <a shape="rect"
href="message-filter.html">Message Filter</a> or as an <a shape="rect"
href="expression.html">Expression</a> for a <a shape="rect"
href="recipient-list.html">Recipient List</a>.</p>
-
-<h3 id="BookInOnePage-Options.2">Options</h3>
-<div class="confluenceTableSmall">
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p> Name </p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p> Default Value </p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p> <code>allowStAX</code>
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>
<code>false</code> </p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> <strong>Camel 2.8.3/2.9:</strong> Whether to allow
using StAX as the <code>javax.xml.transform.Source</code>.
</p></td></tr></tbody></table></div>
-</div>
-
-<h3 id="BookInOnePage-Examples.3">Examples</h3>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
-from("queue:foo").filter().
+<h2 id="BookInOnePage-XQuery">XQuery</h2><p>Camel supports <a shape="rect"
class="external-link" href="http://www.w3.org/TR/xquery/"
rel="nofollow">XQuery</a> to allow an <a shape="rect"
href="expression.html">Expression</a> or <a shape="rect"
href="predicate.html">Predicate</a> to be used in the <a shape="rect"
href="dsl.html">DSL</a> or <a shape="rect" href="xml-configuration.html">Xml
Configuration</a>. For example you could use XQuery to create an <a
shape="rect" href="predicate.html">Predicate</a> in a <a shape="rect"
href="message-filter.html">Message Filter</a> or as an <a shape="rect"
href="expression.html">Expression</a> for a <a shape="rect"
href="recipient-list.html">Recipient List</a>.</p><h3
id="BookInOnePage-Options.2">Options</h3><div class="confluenceTableSmall"><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Default Value</p></th><th
colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>allowStAX</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel
2.8.3/2.9:</strong> Whether to allow using StAX as the
<code>javax.xml.transform.Source</code>.</p></td></tr></tbody></table></div></div><h3
id="BookInOnePage-Examples.3">Examples</h3><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[from("queue:foo").filter().
xquery("//foo").
to("queue:bar")
]]></script>
-</div></div>
-
-<p>You can also use functions inside your query, in which case you need an
explicit type conversion (or you will get a org.w3c.dom.DOMException:
HIERARCHY_REQUEST_ERR) by passing the Class as a second argument to the
<strong>xquery()</strong> method.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
-from("direct:start").
+</div></div><p>You can also use functions inside your query, in which case you
need an explicit type conversion (or you will get a org.w3c.dom.DOMException:
HIERARCHY_REQUEST_ERR) by passing the Class as a second argument to the
<strong>xquery()</strong> method.</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[from("direct:start").
recipientList().xquery("concat('mock:foo.',
/person/@city)", String.class);
]]></script>
-</div></div>
-
-<h3 id="BookInOnePage-Variables.7">Variables</h3>
-
-<p>The IN message body will be set as the <code>contextItem</code>. Besides
this these Variables is also added as parameters:</p>
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p> Variable </p></th><th
colspan="1" rowspan="1" class="confluenceTh"><p> Type </p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p> exchange </p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> Exchange </p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> The current Exchange
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> in.body
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Object
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The In message's
body </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>
out.body </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Object
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The OUT message's
body (if any)</p></td></tr><tr><
td colspan="1" rowspan="1" class="confluenceTd"><p> in.headers.*</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> Object </p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> You can access the value of
exchange.in.headers with key <strong>foo</strong> by using the variable which
name is in.headers.foo</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p> out.headers.* </p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> Object </p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> You can access the value of exchange.out.headers with
key <strong>foo</strong> by using the variable which name is out.headers.foo
variable</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>
<strong>key name</strong> </p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> Object </p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> Any exchange.properties and exchange.in.headers and
any additional parameters set using <co
de>setParameters(Map)</code>. These parameters is added with they own key
name, for instance if there is an IN header with the key name
<strong>foo</strong> then its added as <strong>foo</strong>.
</p></td></tr></tbody></table></div>
-
-
-<h3 id="BookInOnePage-UsingXMLconfiguration.2">Using XML configuration</h3>
-
-<p>If you prefer to configure your routes in your <a shape="rect"
href="spring.html">Spring</a> XML file then you can use XPath expressions as
follows</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<beans xmlns="http://www.springframework.org/schema/beans"
+</div></div><h3 id="BookInOnePage-Variables.7">Variables</h3><p>The IN message
body will be set as the <code>contextItem</code>. Besides this these Variables
is also added as parameters:</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Variable</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>exchange</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Exchange</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>The current Exchange</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>in.body</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Object</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The In message's body</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>out.body</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Object</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The OUT message's body (if
any)</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>in.headers.*</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Object</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>You can access the value of exchange.in.headers with
key <strong>foo</strong> by using the variable which name is
in.headers.foo</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>out.headers.*</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Object</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>You can access the value of exchange.out.headers with
key <strong>foo</strong> by using the variable which name is out.headers.foo
variable</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>key name</strong></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Object
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Any
exchange.properties and exchange.in.headers and any additional parameters set
using <code>setParameters(Map)</code>. These parameters is added with they own
key name, for instance if there is an IN header with the key name
<strong>foo</strong> then its added as
<strong>foo</strong>.</p></td></tr></tbody></table></div><h3
id="BookInOnePage-UsingXMLconfiguration.2">Using XML configuration</h3><p>If
you prefer to configure your routes in your <a shape="rect"
href="spring.html">Spring</a> XML file then you can use XPath expressions as
follows</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:foo="http://example.com/person"
xsi:schemaLocation="
@@ -9825,27 +9794,17 @@ from("direct:start").
</camelContext>
</beans>
]]></script>
-</div></div>
-
-<p>Notice how we can reuse the namespace prefixes, <strong>foo</strong> in
this case, in the XPath expression for easier namespace based XQuery
expressions!</p>
-
-<p>When you use functions in your XQuery expression you need an explicit type
conversion which is done in the xml configuration via the
<strong>@type</strong> attribute: </p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
- <xquery
type="java.lang.String">concat('mock:foo.',
/person/@city)</xquery>
+</div></div><p>Notice how we can reuse the namespace prefixes,
<strong>foo</strong> in this case, in the XPath expression for easier namespace
based XQuery expressions!</p><p>When you use functions in your XQuery
expression you need an explicit type conversion which is done in the xml
configuration via the <strong>@type</strong> attribute:</p><div class="code
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[ <xquery
type="java.lang.String">concat('mock:foo.',
/person/@city)</xquery>
]]></script>
-</div></div>
-
-<h3 id="BookInOnePage-UsingXQueryasanendpoint">Using XQuery as an endpoint</h3>
-
-<p>Sometimes an XQuery expression can be quite large; it can essentally be
used for <a shape="rect" href="templating.html">Templating</a>. So you may want
to use an <a shape="rect" href="xquery-endpoint.html">XQuery Endpoint</a> so
you can route using XQuery templates.</p>
-
-<p>The following example shows how to take a message of an ActiveMQ queue
(MyQueue) and transform it using XQuery and send it to MQSeries.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
- <camelContext id="camel"
xmlns="http://camel.apache.org/schema/spring">
+</div></div><h3 id="BookInOnePage-UsingXQueryastransformation">Using XQuery as
transformation</h3><p>We can do a message translation using transform or
setBody in the route, as shown below:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[from("direct:start").
+ transform().xquery("/people/person");]]></script>
+</div></div><p>Notice that xquery will use DOMResult by default, so if we want
to grab the value of the person node, using text() we need to tell xquery to
use String as result type, as shown:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[from("direct:start").
+ transform().xquery("/people/person/text()",
String.class);]]></script>
+</div></div><p> </p><h3 id="BookInOnePage-UsingXQueryasanendpoint">Using
XQuery as an endpoint</h3><p>Sometimes an XQuery expression can be quite large;
it can essentally be used for <a shape="rect"
href="templating.html">Templating</a>. So you may want to use an <a
shape="rect" href="xquery-endpoint.html">XQuery Endpoint</a> so you can route
using XQuery templates.</p><p>The following example shows how to take a message
of an ActiveMQ queue (MyQueue) and transform it using XQuery and send it to
MQSeries.</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[ <camelContext id="camel"
xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="activemq:MyQueue"/>
<to uri="xquery:com/acme/someTransform.xquery"/>
@@ -9853,21 +9812,11 @@ from("direct:start").
</route>
</camelContext>
]]></script>
-</div></div>
-
-<h3 id="BookInOnePage-Examples.4">Examples</h3>
-
-<p>Here is a simple <a shape="rect" class="external-link"
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-saxon/src/test/java/org/apache/camel/builder/saxon/XQueryFilterTest.java">example</a>
using an XQuery expression as a predicate in a <a shape="rect"
href="message-filter.html">Message Filter</a></p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+</div></div><h3 id="BookInOnePage-Examples.4">Examples</h3><p>Here is a simple
<a shape="rect" class="external-link"
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-saxon/src/test/java/org/apache/camel/builder/saxon/XQueryFilterTest.java">example</a>
using an XQuery expression as a predicate in a <a shape="rect"
href="message-filter.html">Message Filter</a></p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
from("direct:start").filter().xquery("/person[@name='James']").to("mock:result");
]]></script>
-</div></div>
-
-<p>This <a shape="rect" class="external-link"
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-saxon/src/test/java/org/apache/camel/builder/saxon/XQueryWithNamespacesFilterTest.java">example</a>
uses XQuery with namespaces as a predicate in a <a shape="rect"
href="message-filter.html">Message Filter</a></p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+</div></div><p>This <a shape="rect" class="external-link"
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-saxon/src/test/java/org/apache/camel/builder/saxon/XQueryWithNamespacesFilterTest.java">example</a>
uses XQuery with namespaces as a predicate in a <a shape="rect"
href="message-filter.html">Message Filter</a></p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
Namespaces ns = new Namespaces("c",
"http://acme.com/cheese");
@@ -9875,37 +9824,11 @@ from("direct:start").
filter().xquery("/c:person[@name='James']", ns).
to("mock:result");
]]></script>
-</div></div>
-
-<h3 id="BookInOnePage-LearningXQuery">Learning XQuery</h3>
-
-<p>XQuery is a very powerful language for querying, searching, sorting and
returning XML. For help learning XQuery try these tutorials</p>
-
-<ul><li>Mike Kay's <a shape="rect" class="external-link"
href="http://www.stylusstudio.com/xquery_primer.html" rel="nofollow">XQuery
Primer</a></li><li>the W3Schools <a shape="rect" class="external-link"
href="http://www.w3schools.com/xquery/default.asp" rel="nofollow">XQuery
Tutorial</a></li></ul>
-
-
-<p>You might also find the <a shape="rect" class="external-link"
href="http://www.w3.org/TR/xpath-functions/" rel="nofollow">XQuery function
reference</a> useful</p>
-
-<h3 id="BookInOnePage-Loadingscriptfromexternalresource.13">Loading script
from external resource</h3>
-<p><strong>Available as of Camel 2.11</strong></p>
-
-<p>You can externalize the script and have Camel load it from a resource such
as <code>"classpath:"</code>, <code>"file:"</code>, or <code>"http:"</code>.<br
clear="none">
-This is done using the following syntax:
<code>"resource:scheme:location"</code>, eg to refer to a file on the classpath
you can do:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
-.setHeader("myHeader").xquery("resource:classpath:myxquery.txt",
String.class)
+</div></div><h3 id="BookInOnePage-LearningXQuery">Learning
XQuery</h3><p>XQuery is a very powerful language for querying, searching,
sorting and returning XML. For help learning XQuery try these
tutorials</p><ul><li>Mike Kay's <a shape="rect" class="external-link"
href="http://www.stylusstudio.com/xquery_primer.html" rel="nofollow">XQuery
Primer</a></li><li>the W3Schools <a shape="rect" class="external-link"
href="http://www.w3schools.com/xquery/default.asp" rel="nofollow">XQuery
Tutorial</a></li></ul><p>You might also find the <a shape="rect"
class="external-link" href="http://www.w3.org/TR/xpath-functions/"
rel="nofollow">XQuery function reference</a> useful</p><h3
id="BookInOnePage-Loadingscriptfromexternalresource.13">Loading script from
external resource</h3><p><strong>Available as of Camel 2.11</strong></p><p>You
can externalize the script and have Camel load it from a resource such as
<code>"classpath:"</code>, <code>"file:"</code>, or <code>"http:"</code>.<br
clear="none"> T
his is done using the following syntax:
<code>"resource:scheme:location"</code>, eg to refer to a file on the classpath
you can do:</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[.setHeader("myHeader").xquery("resource:classpath:myxquery.txt",
String.class)
]]></script>
-</div></div>
-
-<h3 id="BookInOnePage-Dependencies.18">Dependencies</h3>
-
-<p>To use XQuery in your camel routes you need to add the a dependency on
<strong>camel-saxon</strong> which implements the XQuery language. </p>
-
-<p>If you use maven you could just add the following to your pom.xml,
substituting the version number for the latest & greatest release (see <a
shape="rect" href="download.html">the download page for the latest
versions</a>).</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<dependency>
+</div></div><h3 id="BookInOnePage-Dependencies.18">Dependencies</h3><p>To use
XQuery in your camel routes you need to add the a dependency on
<strong>camel-saxon</strong> which implements the XQuery language.</p><p>If you
use maven you could just add the following to your pom.xml, substituting the
version number for the latest & greatest release (see <a shape="rect"
href="download.html">the download page for the latest versions</a>).</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-saxon</artifactId>
<version>x.x.x</version>
@@ -18920,11 +18843,11 @@ template.send("direct:alias-verify&
</div>
</div>
<p>The <strong>cxf:</strong> component provides integration with <a
shape="rect" href="http://cxf.apache.org">Apache CXF</a> for connecting to
JAX-WS services hosted in CXF.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1423135107811 {padding: 0px;}
-div.rbtoc1423135107811 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1423135107811 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1423153164721 {padding: 0px;}
+div.rbtoc1423153164721 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1423153164721 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1423135107811">
+/*]]>*/</style></p><div class="toc-macro rbtoc1423153164721">
<ul class="toc-indentation"><li><a shape="rect" href="#CXF-CXFComponent">CXF
Component</a>
<ul class="toc-indentation"><li><a shape="rect" href="#CXF-URIformat">URI
format</a></li><li><a shape="rect" href="#CXF-Options">Options</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#CXF-Thedescriptionsofthedataformats">The descriptions of the
dataformats</a>
Modified: websites/production/camel/content/book-languages-appendix.html
==============================================================================
--- websites/production/camel/content/book-languages-appendix.html (original)
+++ websites/production/camel/content/book-languages-appendix.html Thu Feb 5
16:20:58 2015
@@ -1972,48 +1972,17 @@ This is done using the following syntax:
<h3 id="BookLanguagesAppendix-Dependencies.17">Dependencies</h3>
<p>The XPath language is part of camel-core.</p>
-<h2 id="BookLanguagesAppendix-XQuery">XQuery</h2>
-
-<p>Camel supports <a shape="rect" class="external-link"
href="http://www.w3.org/TR/xquery/" rel="nofollow">XQuery</a> to allow an <a
shape="rect" href="expression.html">Expression</a> or <a shape="rect"
href="predicate.html">Predicate</a> to be used in the <a shape="rect"
href="dsl.html">DSL</a> or <a shape="rect" href="xml-configuration.html">Xml
Configuration</a>. For example you could use XQuery to create an <a
shape="rect" href="predicate.html">Predicate</a> in a <a shape="rect"
href="message-filter.html">Message Filter</a> or as an <a shape="rect"
href="expression.html">Expression</a> for a <a shape="rect"
href="recipient-list.html">Recipient List</a>.</p>
-
-<h3 id="BookLanguagesAppendix-Options.1">Options</h3>
-<div class="confluenceTableSmall">
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p> Name </p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p> Default Value </p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p> <code>allowStAX</code>
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>
<code>false</code> </p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> <strong>Camel 2.8.3/2.9:</strong> Whether to allow
using StAX as the <code>javax.xml.transform.Source</code>.
</p></td></tr></tbody></table></div>
-</div>
-
-<h3 id="BookLanguagesAppendix-Examples.2">Examples</h3>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
-from("queue:foo").filter().
+<h2 id="BookLanguagesAppendix-XQuery">XQuery</h2><p>Camel supports <a
shape="rect" class="external-link" href="http://www.w3.org/TR/xquery/"
rel="nofollow">XQuery</a> to allow an <a shape="rect"
href="expression.html">Expression</a> or <a shape="rect"
href="predicate.html">Predicate</a> to be used in the <a shape="rect"
href="dsl.html">DSL</a> or <a shape="rect" href="xml-configuration.html">Xml
Configuration</a>. For example you could use XQuery to create an <a
shape="rect" href="predicate.html">Predicate</a> in a <a shape="rect"
href="message-filter.html">Message Filter</a> or as an <a shape="rect"
href="expression.html">Expression</a> for a <a shape="rect"
href="recipient-list.html">Recipient List</a>.</p><h3
id="BookLanguagesAppendix-Options.1">Options</h3><div
class="confluenceTableSmall"><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Default V
alue</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>allowStAX</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel
2.8.3/2.9:</strong> Whether to allow using StAX as the
<code>javax.xml.transform.Source</code>.</p></td></tr></tbody></table></div></div><h3
id="BookLanguagesAppendix-Examples.2">Examples</h3><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[from("queue:foo").filter().
xquery("//foo").
to("queue:bar")
]]></script>
-</div></div>
-
-<p>You can also use functions inside your query, in which case you need an
explicit type conversion (or you will get a org.w3c.dom.DOMException:
HIERARCHY_REQUEST_ERR) by passing the Class as a second argument to the
<strong>xquery()</strong> method.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
-from("direct:start").
+</div></div><p>You can also use functions inside your query, in which case you
need an explicit type conversion (or you will get a org.w3c.dom.DOMException:
HIERARCHY_REQUEST_ERR) by passing the Class as a second argument to the
<strong>xquery()</strong> method.</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[from("direct:start").
recipientList().xquery("concat('mock:foo.',
/person/@city)", String.class);
]]></script>
-</div></div>
-
-<h3 id="BookLanguagesAppendix-Variables.7">Variables</h3>
-
-<p>The IN message body will be set as the <code>contextItem</code>. Besides
this these Variables is also added as parameters:</p>
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p> Variable </p></th><th
colspan="1" rowspan="1" class="confluenceTh"><p> Type </p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p> exchange </p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> Exchange </p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> The current Exchange
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> in.body
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Object
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The In message's
body </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>
out.body </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Object
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The OUT message's
body (if any)</p></td></tr><tr><
td colspan="1" rowspan="1" class="confluenceTd"><p> in.headers.*</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> Object </p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> You can access the value of
exchange.in.headers with key <strong>foo</strong> by using the variable which
name is in.headers.foo</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p> out.headers.* </p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> Object </p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> You can access the value of exchange.out.headers with
key <strong>foo</strong> by using the variable which name is out.headers.foo
variable</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>
<strong>key name</strong> </p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> Object </p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> Any exchange.properties and exchange.in.headers and
any additional parameters set using <co
de>setParameters(Map)</code>. These parameters is added with they own key
name, for instance if there is an IN header with the key name
<strong>foo</strong> then its added as <strong>foo</strong>.
</p></td></tr></tbody></table></div>
-
-
-<h3 id="BookLanguagesAppendix-UsingXMLconfiguration.2">Using XML
configuration</h3>
-
-<p>If you prefer to configure your routes in your <a shape="rect"
href="spring.html">Spring</a> XML file then you can use XPath expressions as
follows</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<beans xmlns="http://www.springframework.org/schema/beans"
+</div></div><h3 id="BookLanguagesAppendix-Variables.7">Variables</h3><p>The IN
message body will be set as the <code>contextItem</code>. Besides this these
Variables is also added as parameters:</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Variable</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>exchange</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Exchange</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>The current Exchange</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>in.body</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Object</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The In message's body</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>out.body</p>
</td><td colspan="1" rowspan="1" class="confluenceTd"><p>Object</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The OUT message's body (if
any)</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>in.headers.*</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Object</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>You can access the value of exchange.in.headers with
key <strong>foo</strong> by using the variable which name is
in.headers.foo</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>out.headers.*</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Object</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>You can access the value of exchange.out.headers with
key <strong>foo</strong> by using the variable which name is out.headers.foo
variable</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>key name</strong></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><
p>Object</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Any
exchange.properties and exchange.in.headers and any additional parameters set
using <code>setParameters(Map)</code>. These parameters is added with they own
key name, for instance if there is an IN header with the key name
<strong>foo</strong> then its added as
<strong>foo</strong>.</p></td></tr></tbody></table></div><h3
id="BookLanguagesAppendix-UsingXMLconfiguration.2">Using XML
configuration</h3><p>If you prefer to configure your routes in your <a
shape="rect" href="spring.html">Spring</a> XML file then you can use XPath
expressions as follows</p><div class="code panel pdl" style="border-width:
1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:foo="http://example.com/person"
xsi:schemaLocation="
@@ -2031,27 +2000,17 @@ from("direct:start").
</camelContext>
</beans>
]]></script>
-</div></div>
-
-<p>Notice how we can reuse the namespace prefixes, <strong>foo</strong> in
this case, in the XPath expression for easier namespace based XQuery
expressions!</p>
-
-<p>When you use functions in your XQuery expression you need an explicit type
conversion which is done in the xml configuration via the
<strong>@type</strong> attribute: </p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
- <xquery
type="java.lang.String">concat('mock:foo.',
/person/@city)</xquery>
+</div></div><p>Notice how we can reuse the namespace prefixes,
<strong>foo</strong> in this case, in the XPath expression for easier namespace
based XQuery expressions!</p><p>When you use functions in your XQuery
expression you need an explicit type conversion which is done in the xml
configuration via the <strong>@type</strong> attribute:</p><div class="code
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[ <xquery
type="java.lang.String">concat('mock:foo.',
/person/@city)</xquery>
]]></script>
-</div></div>
-
-<h3 id="BookLanguagesAppendix-UsingXQueryasanendpoint">Using XQuery as an
endpoint</h3>
-
-<p>Sometimes an XQuery expression can be quite large; it can essentally be
used for <a shape="rect" href="templating.html">Templating</a>. So you may want
to use an <a shape="rect" href="xquery-endpoint.html">XQuery Endpoint</a> so
you can route using XQuery templates.</p>
-
-<p>The following example shows how to take a message of an ActiveMQ queue
(MyQueue) and transform it using XQuery and send it to MQSeries.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
- <camelContext id="camel"
xmlns="http://camel.apache.org/schema/spring">
+</div></div><h3 id="BookLanguagesAppendix-UsingXQueryastransformation">Using
XQuery as transformation</h3><p>We can do a message translation using transform
or setBody in the route, as shown below:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[from("direct:start").
+ transform().xquery("/people/person");]]></script>
+</div></div><p>Notice that xquery will use DOMResult by default, so if we want
to grab the value of the person node, using text() we need to tell xquery to
use String as result type, as shown:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[from("direct:start").
+ transform().xquery("/people/person/text()",
String.class);]]></script>
+</div></div><p> </p><h3
id="BookLanguagesAppendix-UsingXQueryasanendpoint">Using XQuery as an
endpoint</h3><p>Sometimes an XQuery expression can be quite large; it can
essentally be used for <a shape="rect" href="templating.html">Templating</a>.
So you may want to use an <a shape="rect" href="xquery-endpoint.html">XQuery
Endpoint</a> so you can route using XQuery templates.</p><p>The following
example shows how to take a message of an ActiveMQ queue (MyQueue) and
transform it using XQuery and send it to MQSeries.</p><div class="code panel
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[ <camelContext id="camel"
xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="activemq:MyQueue"/>
<to uri="xquery:com/acme/someTransform.xquery"/>
@@ -2059,21 +2018,11 @@ from("direct:start").
</route>
</camelContext>
]]></script>
-</div></div>
-
-<h3 id="BookLanguagesAppendix-Examples.3">Examples</h3>
-
-<p>Here is a simple <a shape="rect" class="external-link"
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-saxon/src/test/java/org/apache/camel/builder/saxon/XQueryFilterTest.java">example</a>
using an XQuery expression as a predicate in a <a shape="rect"
href="message-filter.html">Message Filter</a></p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+</div></div><h3 id="BookLanguagesAppendix-Examples.3">Examples</h3><p>Here is
a simple <a shape="rect" class="external-link"
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-saxon/src/test/java/org/apache/camel/builder/saxon/XQueryFilterTest.java">example</a>
using an XQuery expression as a predicate in a <a shape="rect"
href="message-filter.html">Message Filter</a></p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
from("direct:start").filter().xquery("/person[@name='James']").to("mock:result");
]]></script>
-</div></div>
-
-<p>This <a shape="rect" class="external-link"
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-saxon/src/test/java/org/apache/camel/builder/saxon/XQueryWithNamespacesFilterTest.java">example</a>
uses XQuery with namespaces as a predicate in a <a shape="rect"
href="message-filter.html">Message Filter</a></p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+</div></div><p>This <a shape="rect" class="external-link"
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-saxon/src/test/java/org/apache/camel/builder/saxon/XQueryWithNamespacesFilterTest.java">example</a>
uses XQuery with namespaces as a predicate in a <a shape="rect"
href="message-filter.html">Message Filter</a></p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
Namespaces ns = new Namespaces("c",
"http://acme.com/cheese");
@@ -2081,37 +2030,11 @@ from("direct:start").
filter().xquery("/c:person[@name='James']", ns).
to("mock:result");
]]></script>
-</div></div>
-
-<h3 id="BookLanguagesAppendix-LearningXQuery">Learning XQuery</h3>
-
-<p>XQuery is a very powerful language for querying, searching, sorting and
returning XML. For help learning XQuery try these tutorials</p>
-
-<ul><li>Mike Kay's <a shape="rect" class="external-link"
href="http://www.stylusstudio.com/xquery_primer.html" rel="nofollow">XQuery
Primer</a></li><li>the W3Schools <a shape="rect" class="external-link"
href="http://www.w3schools.com/xquery/default.asp" rel="nofollow">XQuery
Tutorial</a></li></ul>
-
-
-<p>You might also find the <a shape="rect" class="external-link"
href="http://www.w3.org/TR/xpath-functions/" rel="nofollow">XQuery function
reference</a> useful</p>
-
-<h3 id="BookLanguagesAppendix-Loadingscriptfromexternalresource.13">Loading
script from external resource</h3>
-<p><strong>Available as of Camel 2.11</strong></p>
-
-<p>You can externalize the script and have Camel load it from a resource such
as <code>"classpath:"</code>, <code>"file:"</code>, or <code>"http:"</code>.<br
clear="none">
-This is done using the following syntax:
<code>"resource:scheme:location"</code>, eg to refer to a file on the classpath
you can do:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
-.setHeader("myHeader").xquery("resource:classpath:myxquery.txt",
String.class)
+</div></div><h3 id="BookLanguagesAppendix-LearningXQuery">Learning
XQuery</h3><p>XQuery is a very powerful language for querying, searching,
sorting and returning XML. For help learning XQuery try these
tutorials</p><ul><li>Mike Kay's <a shape="rect" class="external-link"
href="http://www.stylusstudio.com/xquery_primer.html" rel="nofollow">XQuery
Primer</a></li><li>the W3Schools <a shape="rect" class="external-link"
href="http://www.w3schools.com/xquery/default.asp" rel="nofollow">XQuery
Tutorial</a></li></ul><p>You might also find the <a shape="rect"
class="external-link" href="http://www.w3.org/TR/xpath-functions/"
rel="nofollow">XQuery function reference</a> useful</p><h3
id="BookLanguagesAppendix-Loadingscriptfromexternalresource.13">Loading script
from external resource</h3><p><strong>Available as of Camel
2.11</strong></p><p>You can externalize the script and have Camel load it from
a resource such as <code>"classpath:"</code>, <code>"file:"</code>, or
<code>"http:"</code>.<br
clear="none"> This is done using the following syntax:
<code>"resource:scheme:location"</code>, eg to refer to a file on the classpath
you can do:</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[.setHeader("myHeader").xquery("resource:classpath:myxquery.txt",
String.class)
]]></script>
-</div></div>
-
-<h3 id="BookLanguagesAppendix-Dependencies.18">Dependencies</h3>
-
-<p>To use XQuery in your camel routes you need to add the a dependency on
<strong>camel-saxon</strong> which implements the XQuery language. </p>
-
-<p>If you use maven you could just add the following to your pom.xml,
substituting the version number for the latest & greatest release (see <a
shape="rect" href="download.html">the download page for the latest
versions</a>).</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<dependency>
+</div></div><h3
id="BookLanguagesAppendix-Dependencies.18">Dependencies</h3><p>To use XQuery in
your camel routes you need to add the a dependency on
<strong>camel-saxon</strong> which implements the XQuery language.</p><p>If you
use maven you could just add the following to your pom.xml, substituting the
version number for the latest & greatest release (see <a shape="rect"
href="download.html">the download page for the latest versions</a>).</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-saxon</artifactId>
<version>x.x.x</version>
Modified: websites/production/camel/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.
Modified: websites/production/camel/content/xquery.html
==============================================================================
--- websites/production/camel/content/xquery.html (original)
+++ websites/production/camel/content/xquery.html Thu Feb 5 16:20:58 2015
@@ -86,48 +86,17 @@
<tbody>
<tr>
<td valign="top" width="100%">
-<div class="wiki-content maincontent"><h2 id="XQuery-XQuery">XQuery</h2>
-
-<p>Camel supports <a shape="rect" class="external-link"
href="http://www.w3.org/TR/xquery/" rel="nofollow">XQuery</a> to allow an <a
shape="rect" href="expression.html">Expression</a> or <a shape="rect"
href="predicate.html">Predicate</a> to be used in the <a shape="rect"
href="dsl.html">DSL</a> or <a shape="rect" href="xml-configuration.html">Xml
Configuration</a>. For example you could use XQuery to create an <a
shape="rect" href="predicate.html">Predicate</a> in a <a shape="rect"
href="message-filter.html">Message Filter</a> or as an <a shape="rect"
href="expression.html">Expression</a> for a <a shape="rect"
href="recipient-list.html">Recipient List</a>.</p>
-
-<h3 id="XQuery-Options">Options</h3>
-<div class="confluenceTableSmall">
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p> Name </p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p> Default Value </p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p> <code>allowStAX</code>
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>
<code>false</code> </p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> <strong>Camel 2.8.3/2.9:</strong> Whether to allow
using StAX as the <code>javax.xml.transform.Source</code>.
</p></td></tr></tbody></table></div>
-</div>
-
-<h3 id="XQuery-Examples">Examples</h3>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
-from("queue:foo").filter().
+<div class="wiki-content maincontent"><h2
id="XQuery-XQuery">XQuery</h2><p>Camel supports <a shape="rect"
class="external-link" href="http://www.w3.org/TR/xquery/"
rel="nofollow">XQuery</a> to allow an <a shape="rect"
href="expression.html">Expression</a> or <a shape="rect"
href="predicate.html">Predicate</a> to be used in the <a shape="rect"
href="dsl.html">DSL</a> or <a shape="rect" href="xml-configuration.html">Xml
Configuration</a>. For example you could use XQuery to create an <a
shape="rect" href="predicate.html">Predicate</a> in a <a shape="rect"
href="message-filter.html">Message Filter</a> or as an <a shape="rect"
href="expression.html">Expression</a> for a <a shape="rect"
href="recipient-list.html">Recipient List</a>.</p><h3
id="XQuery-Options">Options</h3><div class="confluenceTableSmall"><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Def
ault Value</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>allowStAX</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel
2.8.3/2.9:</strong> Whether to allow using StAX as the
<code>javax.xml.transform.Source</code>.</p></td></tr></tbody></table></div></div><h3
id="XQuery-Examples">Examples</h3><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[from("queue:foo").filter().
xquery("//foo").
to("queue:bar")
]]></script>
-</div></div>
-
-<p>You can also use functions inside your query, in which case you need an
explicit type conversion (or you will get a org.w3c.dom.DOMException:
HIERARCHY_REQUEST_ERR) by passing the Class as a second argument to the
<strong>xquery()</strong> method.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
-from("direct:start").
+</div></div><p>You can also use functions inside your query, in which case you
need an explicit type conversion (or you will get a org.w3c.dom.DOMException:
HIERARCHY_REQUEST_ERR) by passing the Class as a second argument to the
<strong>xquery()</strong> method.</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[from("direct:start").
recipientList().xquery("concat('mock:foo.',
/person/@city)", String.class);
]]></script>
-</div></div>
-
-<h3 id="XQuery-Variables">Variables</h3>
-
-<p>The IN message body will be set as the <code>contextItem</code>. Besides
this these Variables is also added as parameters:</p>
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p> Variable </p></th><th
colspan="1" rowspan="1" class="confluenceTh"><p> Type </p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p> exchange </p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> Exchange </p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> The current Exchange
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> in.body
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Object
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The In message's
body </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>
out.body </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Object
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The OUT message's
body (if any)</p></td></tr><tr><
td colspan="1" rowspan="1" class="confluenceTd"><p> in.headers.*</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> Object </p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> You can access the value of
exchange.in.headers with key <strong>foo</strong> by using the variable which
name is in.headers.foo</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p> out.headers.* </p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> Object </p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> You can access the value of exchange.out.headers with
key <strong>foo</strong> by using the variable which name is out.headers.foo
variable</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>
<strong>key name</strong> </p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> Object </p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> Any exchange.properties and exchange.in.headers and
any additional parameters set using <co
de>setParameters(Map)</code>. These parameters is added with they own key
name, for instance if there is an IN header with the key name
<strong>foo</strong> then its added as <strong>foo</strong>.
</p></td></tr></tbody></table></div>
-
-
-<h3 id="XQuery-UsingXMLconfiguration">Using XML configuration</h3>
-
-<p>If you prefer to configure your routes in your <a shape="rect"
href="spring.html">Spring</a> XML file then you can use XPath expressions as
follows</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<beans xmlns="http://www.springframework.org/schema/beans"
+</div></div><h3 id="XQuery-Variables">Variables</h3><p>The IN message body
will be set as the <code>contextItem</code>. Besides this these Variables is
also added as parameters:</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Variable</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>exchange</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Exchange</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>The current Exchange</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>in.body</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Object</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The In message's body</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>out.body</p></td><td colspan=
"1" rowspan="1" class="confluenceTd"><p>Object</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>The OUT message's body (if
any)</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>in.headers.*</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Object</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>You can access the value of exchange.in.headers with
key <strong>foo</strong> by using the variable which name is
in.headers.foo</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>out.headers.*</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Object</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>You can access the value of exchange.out.headers with
key <strong>foo</strong> by using the variable which name is out.headers.foo
variable</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>key name</strong></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Object</p></td>
<td colspan="1" rowspan="1" class="confluenceTd"><p>Any exchange.properties
and exchange.in.headers and any additional parameters set using
<code>setParameters(Map)</code>. These parameters is added with they own key
name, for instance if there is an IN header with the key name
<strong>foo</strong> then its added as
<strong>foo</strong>.</p></td></tr></tbody></table></div><h3
id="XQuery-UsingXMLconfiguration">Using XML configuration</h3><p>If you prefer
to configure your routes in your <a shape="rect" href="spring.html">Spring</a>
XML file then you can use XPath expressions as follows</p><div class="code
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:foo="http://example.com/person"
xsi:schemaLocation="
@@ -145,27 +114,17 @@ from("direct:start").
</camelContext>
</beans>
]]></script>
-</div></div>
-
-<p>Notice how we can reuse the namespace prefixes, <strong>foo</strong> in
this case, in the XPath expression for easier namespace based XQuery
expressions!</p>
-
-<p>When you use functions in your XQuery expression you need an explicit type
conversion which is done in the xml configuration via the
<strong>@type</strong> attribute: </p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
- <xquery
type="java.lang.String">concat('mock:foo.',
/person/@city)</xquery>
+</div></div><p>Notice how we can reuse the namespace prefixes,
<strong>foo</strong> in this case, in the XPath expression for easier namespace
based XQuery expressions!</p><p>When you use functions in your XQuery
expression you need an explicit type conversion which is done in the xml
configuration via the <strong>@type</strong> attribute:</p><div class="code
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[ <xquery
type="java.lang.String">concat('mock:foo.',
/person/@city)</xquery>
]]></script>
-</div></div>
-
-<h3 id="XQuery-UsingXQueryasanendpoint">Using XQuery as an endpoint</h3>
-
-<p>Sometimes an XQuery expression can be quite large; it can essentally be
used for <a shape="rect" href="templating.html">Templating</a>. So you may want
to use an <a shape="rect" href="xquery-endpoint.html">XQuery Endpoint</a> so
you can route using XQuery templates.</p>
-
-<p>The following example shows how to take a message of an ActiveMQ queue
(MyQueue) and transform it using XQuery and send it to MQSeries.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
- <camelContext id="camel"
xmlns="http://camel.apache.org/schema/spring">
+</div></div><h3 id="XQuery-UsingXQueryastransformation">Using XQuery as
transformation</h3><p>We can do a message translation using transform or
setBody in the route, as shown below:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[from("direct:start").
+ transform().xquery("/people/person");]]></script>
+</div></div><p>Notice that xquery will use DOMResult by default, so if we want
to grab the value of the person node, using text() we need to tell xquery to
use String as result type, as shown:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[from("direct:start").
+ transform().xquery("/people/person/text()",
String.class);]]></script>
+</div></div><p> </p><h3 id="XQuery-UsingXQueryasanendpoint">Using XQuery
as an endpoint</h3><p>Sometimes an XQuery expression can be quite large; it can
essentally be used for <a shape="rect" href="templating.html">Templating</a>.
So you may want to use an <a shape="rect" href="xquery-endpoint.html">XQuery
Endpoint</a> so you can route using XQuery templates.</p><p>The following
example shows how to take a message of an ActiveMQ queue (MyQueue) and
transform it using XQuery and send it to MQSeries.</p><div class="code panel
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[ <camelContext id="camel"
xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="activemq:MyQueue"/>
<to uri="xquery:com/acme/someTransform.xquery"/>
@@ -173,21 +132,11 @@ from("direct:start").
</route>
</camelContext>
]]></script>
-</div></div>
-
-<h3 id="XQuery-Examples.1">Examples</h3>
-
-<p>Here is a simple <a shape="rect" class="external-link"
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-saxon/src/test/java/org/apache/camel/builder/saxon/XQueryFilterTest.java">example</a>
using an XQuery expression as a predicate in a <a shape="rect"
href="message-filter.html">Message Filter</a></p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+</div></div><h3 id="XQuery-Examples.1">Examples</h3><p>Here is a simple <a
shape="rect" class="external-link"
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-saxon/src/test/java/org/apache/camel/builder/saxon/XQueryFilterTest.java">example</a>
using an XQuery expression as a predicate in a <a shape="rect"
href="message-filter.html">Message Filter</a></p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
from("direct:start").filter().xquery("/person[@name='James']").to("mock:result");
]]></script>
-</div></div>
-
-<p>This <a shape="rect" class="external-link"
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-saxon/src/test/java/org/apache/camel/builder/saxon/XQueryWithNamespacesFilterTest.java">example</a>
uses XQuery with namespaces as a predicate in a <a shape="rect"
href="message-filter.html">Message Filter</a></p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+</div></div><p>This <a shape="rect" class="external-link"
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-saxon/src/test/java/org/apache/camel/builder/saxon/XQueryWithNamespacesFilterTest.java">example</a>
uses XQuery with namespaces as a predicate in a <a shape="rect"
href="message-filter.html">Message Filter</a></p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
Namespaces ns = new Namespaces("c",
"http://acme.com/cheese");
@@ -195,37 +144,11 @@ from("direct:start").
filter().xquery("/c:person[@name='James']", ns).
to("mock:result");
]]></script>
-</div></div>
-
-<h3 id="XQuery-LearningXQuery">Learning XQuery</h3>
-
-<p>XQuery is a very powerful language for querying, searching, sorting and
returning XML. For help learning XQuery try these tutorials</p>
-
-<ul><li>Mike Kay's <a shape="rect" class="external-link"
href="http://www.stylusstudio.com/xquery_primer.html" rel="nofollow">XQuery
Primer</a></li><li>the W3Schools <a shape="rect" class="external-link"
href="http://www.w3schools.com/xquery/default.asp" rel="nofollow">XQuery
Tutorial</a></li></ul>
-
-
-<p>You might also find the <a shape="rect" class="external-link"
href="http://www.w3.org/TR/xpath-functions/" rel="nofollow">XQuery function
reference</a> useful</p>
-
-<h3 id="XQuery-Loadingscriptfromexternalresource">Loading script from external
resource</h3>
-<p><strong>Available as of Camel 2.11</strong></p>
-
-<p>You can externalize the script and have Camel load it from a resource such
as <code>"classpath:"</code>, <code>"file:"</code>, or <code>"http:"</code>.<br
clear="none">
-This is done using the following syntax:
<code>"resource:scheme:location"</code>, eg to refer to a file on the classpath
you can do:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
-.setHeader("myHeader").xquery("resource:classpath:myxquery.txt",
String.class)
+</div></div><h3 id="XQuery-LearningXQuery">Learning XQuery</h3><p>XQuery is a
very powerful language for querying, searching, sorting and returning XML. For
help learning XQuery try these tutorials</p><ul><li>Mike Kay's <a shape="rect"
class="external-link" href="http://www.stylusstudio.com/xquery_primer.html"
rel="nofollow">XQuery Primer</a></li><li>the W3Schools <a shape="rect"
class="external-link" href="http://www.w3schools.com/xquery/default.asp"
rel="nofollow">XQuery Tutorial</a></li></ul><p>You might also find the <a
shape="rect" class="external-link" href="http://www.w3.org/TR/xpath-functions/"
rel="nofollow">XQuery function reference</a> useful</p><h3
id="XQuery-Loadingscriptfromexternalresource">Loading script from external
resource</h3><p><strong>Available as of Camel 2.11</strong></p><p>You can
externalize the script and have Camel load it from a resource such as
<code>"classpath:"</code>, <code>"file:"</code>, or <code>"http:"</code>.<br
clear="none"> This is done using
the following syntax: <code>"resource:scheme:location"</code>, eg to refer to
a file on the classpath you can do:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[.setHeader("myHeader").xquery("resource:classpath:myxquery.txt",
String.class)
]]></script>
-</div></div>
-
-<h3 id="XQuery-Dependencies">Dependencies</h3>
-
-<p>To use XQuery in your camel routes you need to add the a dependency on
<strong>camel-saxon</strong> which implements the XQuery language. </p>
-
-<p>If you use maven you could just add the following to your pom.xml,
substituting the version number for the latest & greatest release (see <a
shape="rect" href="download.html">the download page for the latest
versions</a>).</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<dependency>
+</div></div><h3 id="XQuery-Dependencies">Dependencies</h3><p>To use XQuery in
your camel routes you need to add the a dependency on
<strong>camel-saxon</strong> which implements the XQuery language.</p><p>If you
use maven you could just add the following to your pom.xml, substituting the
version number for the latest & greatest release (see <a shape="rect"
href="download.html">the download page for the latest versions</a>).</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-saxon</artifactId>
<version>x.x.x</version>