You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gi...@apache.org on 2019/12/03 09:51:52 UTC

[camel-website] branch asf-site updated: Website updated to a5160858b

This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/camel-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 5e735e2  Website updated to a5160858b
5e735e2 is described below

commit 5e735e2246af06e5cfa057ef145f5af02d87aa9a
Author: jenkins <bu...@apache.org>
AuthorDate: Tue Dec 3 09:51:48 2019 +0000

    Website updated to a5160858b
---
 blog/Camel3-Whatsnew/index.html          |     4 +-
 components/latest/sftp-component.html    |     2 +-
 schema/spring/camel-spring-3.0.0-RC1.xsd | 12832 +++++++++++++++++++++++++++++
 schema/spring/camel-spring-3.0.0-RC2.xsd |  6297 ++++++++++++++
 schema/spring/camel-spring-3.0.0-RC3.xsd |  6301 ++++++++++++++
 schema/spring/camel-spring-3.0.0.xsd     |  6343 ++++++++++++++
 sitemap-camel-k.xml                      |   104 +-
 sitemap-camel-quarkus.xml                |    34 +-
 sitemap-components.xml                   |  2446 +++---
 sitemap-manual.xml                       |   688 +-
 sitemap.xml                              |   480 +-
 11 files changed, 33877 insertions(+), 1654 deletions(-)

diff --git a/blog/Camel3-Whatsnew/index.html b/blog/Camel3-Whatsnew/index.html
index ea454cf..332a767 100644
--- a/blog/Camel3-Whatsnew/index.html
+++ b/blog/Camel3-Whatsnew/index.html
@@ -1,9 +1,9 @@
-<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <link rel="apple-touch-icon-precomposed" sizes="57x57" href="../../apple-touch-icon-57x57.png"> <link rel="apple-touch-icon-precomposed" sizes="114x114" href="../../apple-touch-icon-114x114.png"> <link rel="apple-touch-icon-precomposed" sizes="72x72" href="../../apple-touch-icon-72x72.png"> <link rel="apple-touch-icon-precomposed" sizes="144x144" href="../../ [...]
+<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <link rel="apple-touch-icon-precomposed" sizes="57x57" href="../../apple-touch-icon-57x57.png"> <link rel="apple-touch-icon-precomposed" sizes="114x114" href="../../apple-touch-icon-114x114.png"> <link rel="apple-touch-icon-precomposed" sizes="72x72" href="../../apple-touch-icon-72x72.png"> <link rel="apple-touch-icon-precomposed" sizes="144x144" href="../../ [...]
     .to(&quot;seda:foo?blockWhenFull=true&quot;);
 
 from(timer(&quot;click&quot;).period(3000).fixedRate(true))
     .to(seda(&quot;foo&quot;).blockWhenFull(true));
-</code></pre> <p>You can also find a <a href="https://github.com/apache/camel/tree/master/examples/camel-example-cafe-endpointdsl">little example</a> in the source code.</p> <h3 id="7-reactive-routing-engine">7) Reactive Routing Engine</h3> <p>The routing engine in Camel has internally been reactive&rsquo;fied and all EIPs has been retrofitted to work in a reactive manner. However this is internal only, and the Camel API for both end users and component developers are based on existing c [...]
+</code></pre> <p>You can also find a <a href="https://github.com/apache/camel/tree/master/examples/camel-example-cafe-endpointdsl">little example</a> in the source code.</p> <h3 id="7-reactive-routing-engine">7) Reactive Routing Engine</h3> <p>The routing engine in Camel has internally been reactive&rsquo;fied and all EIPs has been retrofitted to work in a reactive manner. However this is internal only, and the Camel API for both end users and component developers are based on existing c [...]
     "@context": "http://schema.org",
     "@type": "Organization",
     "name": "Apache Camel",
diff --git a/components/latest/sftp-component.html b/components/latest/sftp-component.html
index a3216d3..a49b565 100644
--- a/components/latest/sftp-component.html
+++ b/components/latest/sftp-component.html
@@ -3,7 +3,7 @@
     &lt;artifactId&gt;camel-ftp&lt;/artifactId&gt;
     &lt;version&gt;x.x.x&lt;/version&gt;
     &lt;!-- use the same version as your Camel core version --&gt;
-&lt;/dependency&gt;</code></pre> </div> </div> <div class="paragraph"> <p>For more information you can look at <a href="ftp-component.html" class="page">FTP component</a></p> </div> </div> </div> <div class="sect1"> <h2 id="_uri_options"><a class="anchor" href="#_uri_options"></a>URI Options</h2> <div class="sectionbody"> <div class="paragraph"> <p>The options below are exclusive for the FTPS component.</p> </div> <div class="paragraph"> <p>The SFTP component supports 3 options, which ar [...]
+&lt;/dependency&gt;</code></pre> </div> </div> <div class="paragraph"> <p>For more information you can look at <a href="ftp-component.html" class="page">FTP component</a></p> </div> </div> </div> <div class="sect1"> <h2 id="_uri_options"><a class="anchor" href="#_uri_options"></a>URI Options</h2> <div class="sectionbody"> <div class="paragraph"> <p>The options below are exclusive for the FTPS component.</p> </div> <div class="paragraph"> <p>The SFTP component supports 3 options, which ar [...]
   "@context": "http://schema.org",
   "@type": "Organization",
   "name": "Apache Camel",
diff --git a/schema/spring/camel-spring-3.0.0-RC1.xsd b/schema/spring/camel-spring-3.0.0-RC1.xsd
new file mode 100644
index 0000000..bf77b2b
--- /dev/null
+++ b/schema/spring/camel-spring-3.0.0-RC1.xsd
@@ -0,0 +1,12832 @@
+<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://camel.apache.org/schema/spring" elementFormDefault="qualified" targetNamespace="http://camel.apache.org/schema/spring" version="1.0">
+
+  <xs:element name="aggregate" type="tns:aggregateDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Aggregates many messages into a single message
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="any23" type="tns:any23DataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Any23 data format is used for parsing data to RDF.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="apiKey" type="tns:restSecurityApiKey">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Rest security basic auth definition
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="asn1" type="tns:asn1DataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The ASN.1 data format is used for file transfer with telecommunications
+protocols.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="avro" type="tns:avroDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The Avro data format is used for serialization and deserialization of messages
+using Apache Avro binary dataformat.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="barcode" type="tns:barcodeDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The Barcode data format is used for creating barccode images (such as QR-Code)
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="base64" type="tns:base64DataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The Base64 data format is used for base64 encoding and decoding.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="basicAuth" type="tns:restSecurityBasicAuth">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Rest security basic auth definition
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="batch-config" type="tns:batchResequencerConfig">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Configures batch-processing resequence eip.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="bean" type="tns:beanDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Calls a java bean
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="beanPostProcessor" type="tns:camelBeanPostProcessor">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Spring specific DefaultCamelBeanPostProcessor which uses Spring
+BeanPostProcessor to post process beans.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="beanio" type="tns:beanioDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The BeanIO data format is used for working with flat payloads (such as CSV,
+delimited, or fixed length formats).
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="bindy" type="tns:bindyDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The Bindy data format is used for working with flat payloads (such as CSV,
+delimited, fixed length formats, or FIX messages).
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="blacklistServiceFilter" type="tns:blacklistServiceCallServiceFilterConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="cachingServiceDiscovery" type="tns:cachingServiceCallServiceDiscoveryConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="camelContext" type="tns:camelContextFactoryBean">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+CamelContext using XML configuration.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="cbor" type="tns:cborDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+CBOR data format is used for unmarshal a CBOR payload to POJO or to marshal POJO
+back to CBOR payload.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="choice" type="tns:choiceDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Routes messages based on a series of predicates
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="claimCheck" type="tns:claimCheckDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The Claim Check EIP allows you to replace message content with a claim check (a
+unique key), which can be used to retrieve the message content at a later time.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="combinedServiceDiscovery" type="tns:combinedServiceCallServiceDiscoveryConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="combinedServiceFilter" type="tns:combinedServiceCallServiceFilterConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="constant" type="tns:constantExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To use a constant value in Camel expressions or predicates. Important: this is a
+fixed constant value that is only set once during starting up the route, do not
+use this if you want dynamic values during routing.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="consulServiceDiscovery" type="tns:consulServiceCallServiceDiscoveryConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="consumerTemplate" type="tns:camelConsumerTemplateFactoryBean">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Configures a ConsumerTemplate
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="contextScan" type="tns:contextScanDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Scans for Java org.apache.camel.builder.RouteBuilder instances in the context
+org.apache.camel.spi.Registry.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="convertBodyTo" type="tns:convertBodyDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Converts the message body to another type
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="crypto" type="tns:cryptoDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Crypto data format is used for encrypting and decrypting of messages using Java
+Cryptographic Extension.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="csv" type="tns:csvDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The CSV data format is used for handling CSV payloads.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="customDataFormat" type="tns:customDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To use a custom data format implementation that does not come out of the box
+from Apache Camel.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="customLoadBalancer" type="tns:customLoadBalancerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Custom load balancer
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="customServiceFilter" type="tns:customServiceCallServiceFilterConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="dataFormats" type="tns:dataFormatsDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To configure data formats
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="defaultLoadBalancer" type="tns:defaultServiceCallServiceLoadBalancerConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="delay" type="tns:delayDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Delays processing for a specified length of time
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="delete" type="tns:deleteVerbDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Rest DELETE command
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="description" type="tns:descriptionDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To provide comments about the node.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="dnsServiceDiscovery" type="tns:dnsServiceCallServiceDiscoveryConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="doCatch" type="tns:catchDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Catches exceptions as part of a try, catch, finally block
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="doFinally" type="tns:finallyDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Path traversed when a try, catch, finally block exits
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="doTry" type="tns:tryDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Marks the beginning of a try, catch, finally block
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="dynamicRouter" type="tns:dynamicRouterDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Routes messages based on dynamic rules
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="endpoint" type="tns:camelEndpointFactoryBean">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Camel endpoint configuration
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="enrich" type="tns:enrichDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Enriches a message with data from a secondary resource
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="errorHandler" type="tns:errorHandlerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Error handler settings
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="etcdServiceDiscovery" type="tns:etcdServiceCallServiceDiscoveryConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="exchangeProperty" type="tns:exchangePropertyExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To use a Camel Exchange property in expressions or predicates.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="export" type="tns:camelServiceExporterDefinition"/>
+
+  <xs:element name="expression" type="tns:expressionSubElementDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+A useful base class for an expression
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="expressionDefinition" type="tns:expression"/>
+
+  <xs:element name="failover" type="tns:failoverLoadBalancerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Failover load balancer The failover load balancer is capable of trying the next
+processor in case an Exchange failed with an exception during processing. You
+can constrain the failover to activate only when one exception of a list you
+specify occurs. If you do not specify a list any exception will cause fail over
+to occur. This balancer uses the same strategy for matching exceptions as the
+Exception Clause does for the onException.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="fhirJson" type="tns:fhirJsonDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The FHIR JSon data format is used to marshall/unmarshall to/from FHIR objects
+to/from JSON.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="fhirXml" type="tns:fhirXmlDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The FHIR XML data format is used to marshall/unmarshall from/to FHIR objects
+to/from XML.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="filter" type="tns:filterDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Filter out messages based using a predicate
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="flatpack" type="tns:flatpackDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The Flatpack data format is used for working with flat payloads (such as CSV,
+delimited, or fixed length formats).
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="fluentTemplate" type="tns:camelFluentProducerTemplateFactoryBean">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Configures a org.apache.camel.FluentProducerTemplate
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="from" type="tns:fromDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Act as a message source as input to a route
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="get" type="tns:getVerbDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Rest GET command
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="globalOption" type="tns:globalOptionDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Models a string key/value pair for configuring some global options on a Camel
+context such as max debug log length.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="globalOptions" type="tns:globalOptionsDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Models a series of string key/value pairs for configuring some global options on
+a Camel context such as max debug log length.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="grok" type="tns:grokDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The Grok data format is used for unmarshalling unstructured data to objects
+using Logstash based Grok patterns.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="groovy" type="tns:groovyExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To use Groovy scripts in Camel expressions or predicates.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="gzipdeflater" type="tns:gzipDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The GZip data format is a message compression and de-compression format (which
+works with the popular gzip/gunzip tools).
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="head" type="tns:headVerbDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Rest HEAD command
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="header" type="tns:headerExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To use a Camel Message header in expressions or predicates.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="healthyServiceFilter" type="tns:healthyServiceCallServiceFilterConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="hl7" type="tns:hl7DataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The HL7 data format can be used to marshal or unmarshal HL7 (Health Care) model
+objects.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="hl7terser" type="tns:hl7TerserExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To use HL7 terser scripts in Camel expressions or predicates.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="hystrix" type="tns:hystrixDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Hystrix Circuit Breaker EIP
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="hystrixConfiguration" type="tns:hystrixConfigurationDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Hystrix Circuit Breaker EIP configuration
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="ical" type="tns:icalDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The iCal dataformat is used for working with iCalendar messages.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="idempotentConsumer" type="tns:idempotentConsumerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Filters out duplicate messages
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="inOnly" type="tns:inOnlyDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Marks the exchange pattern for the route to one way
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="inOut" type="tns:inOutDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Marks the exchange pattern for the route to request/reply
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="inputType" type="tns:inputTypeDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Set the expected data type of the input message. If the actual message type is
+different at runtime, camel look for a required Transformer and apply if exists.
+If validate attribute is true then camel applies Validator as well. Type name
+consists of two parts, 'scheme' and 'name' connected with ':'. For Java type
+'name' is a fully qualified class name. For example {code
+java:java.lang.String}, {code json:ABCOrder}. It's also possible to specify only
+scheme part, so that it works like a wildcard.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="intercept" type="tns:interceptDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Intercepts a message at each step in the route
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="interceptFrom" type="tns:interceptFromDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Intercepts incoming messages
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="interceptSendToEndpoint" type="tns:interceptSendToEndpointDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Intercepts messages being sent to an endpoint
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="jacksonxml" type="tns:jacksonXMLDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+JacksonXML data format is used for unmarshal a XML payload to POJO or to marshal
+POJO back to XML payload.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="jaxb" type="tns:jaxbDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+JAXB data format uses the JAXB2 XML marshalling standard to unmarshal an XML
+payload into Java objects or to marshal Java objects into an XML payload.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="jmxAgent" type="tns:camelJMXAgentDefinition"/>
+
+  <xs:element name="json" type="tns:jsonDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+JSon data format is used for unmarshal a JSon payload to POJO or to marshal POJO
+back to JSon payload.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="jsonApi" type="tns:jsonApiDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+JsonApi data format is used for marshal and unmarshal Json API object.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="jsonpath" type="tns:jsonPathExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To use JsonPath in Camel expressions or predicates.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="keyStoreParameters" type="tns:keyStoreParametersFactoryBean"/>
+
+  <xs:element name="kubernetesServiceDiscovery" type="tns:kubernetesServiceCallServiceDiscoveryConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="language" type="tns:languageExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To use the specified language in Camel expressions or predicates.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="loadBalance" type="tns:loadBalanceDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Balances message processing among a number of nodes
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="loadBalancerConfiguration" type="tns:serviceCallServiceLoadBalancerConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="log" type="tns:logDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Logs the defined message to the logger
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="loop" type="tns:loopDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Processes a message multiple times
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="lzf" type="tns:lzfDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The LZF data format is a message compression and de-compression format (uses the
+LZF deflate algorithm).
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="marshal" type="tns:marshalDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Marshals data into a specified format for transmission over a transport or
+component
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="method" type="tns:methodCallExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To use a Java bean (aka method call) in Camel expressions or predicates.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="mime-multipart" type="tns:mimeMultipartDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The MIME Multipart data format can marshal a Camel message with attachments into
+a Camel message having a MIME-Multipart message as message body (and no
+attachments), and vise-versa when unmarshalling.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="multicast" type="tns:multicastDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Routes the same message to multiple paths either sequentially or in parallel.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="mvel" type="tns:mvelExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To use MVEL scripts in Camel expressions or predicates.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="oauth2" type="tns:restSecurityOAuth2">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Rest security OAuth2 definition
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="ognl" type="tns:ognlExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To use OGNL scripts in Camel expressions or predicates.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="onCompletion" type="tns:onCompletionDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Route to be executed when normal route processing completes
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="onException" type="tns:onExceptionDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Route to be executed when an exception is thrown
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="onFallback" type="tns:onFallbackDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Route to be executed when Hystrix EIP executes fallback
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="optimisticLockRetryPolicy" type="tns:optimisticLockRetryPolicyDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To configure optimistic locking
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="otherwise" type="tns:otherwiseDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Route to be executed when all other choices evaluate to false
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="outputType" type="tns:outputTypeDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Set the expected data type of the output message. If the actual message type is
+different at runtime, camel look for a required Transformer and apply if exists.
+If validate attribute is true then camel applies Validator as well. Type name
+consists of two parts, 'scheme' and 'name' connected with ':'. For Java type
+'name' is a fully qualified class name. For example {code
+java:java.lang.String}, {code json:ABCOrder}. It's also possible to specify only
+scheme part, so that it works like a wildcard.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="packageScan" type="tns:packageScanDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Scans for Java org.apache.camel.builder.RouteBuilder classes in java packages
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="param" type="tns:restOperationParamDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To specify the rest operation parameters using Swagger.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="passThroughServiceFilter" type="tns:passThroughServiceCallServiceFilterConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="patch" type="tns:patchVerbDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Rest PATCH command
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="pgp" type="tns:pgpDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+PGP data format is used for encrypting and decrypting of messages using Java
+Cryptographic Extension and PGP.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="pipeline" type="tns:pipelineDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Routes the message to a sequence of processors.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="policy" type="tns:policyDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Defines a policy the route will use
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="pollEnrich" type="tns:pollEnrichDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Enriches messages with data polled from a secondary resource
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="post" type="tns:postVerbDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Rest POST command
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="process" type="tns:processDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Calls a Camel processor
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="propertiesFunction" type="tns:camelPropertyPlaceholderFunctionDefinition"/>
+
+  <xs:element name="propertiesLocation" type="tns:camelPropertyPlaceholderLocationDefinition"/>
+
+  <xs:element name="property" type="tns:propertyDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+A key value pair
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="propertyPlaceholder" type="tns:camelPropertyPlaceholderDefinition"/>
+
+  <xs:element name="protobuf" type="tns:protobufDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The Protobuf data format is used for serializing between Java objects and the
+Google Protobuf protocol.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="proxy" type="tns:camelProxyFactoryDefinition"/>
+
+  <xs:element name="put" type="tns:putVerbDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Rest PUT command
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="random" type="tns:randomLoadBalancerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Random load balancer The random load balancer selects a random endpoint for each
+exchange.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="recipientList" type="tns:recipientListDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Routes messages to a number of dynamically specified recipients (dynamic to)
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="redeliveryPolicy" type="tns:redeliveryPolicyDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To configure re-delivery for error handling
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="redeliveryPolicyProfile" type="tns:camelRedeliveryPolicyFactoryBean">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Configuration of redelivery policy.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="ref" type="tns:refExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Reference to an existing Camel expression or predicate, which is looked up from
+the Camel registry.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="removeHeader" type="tns:removeHeaderDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Removes a named header from the message
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="removeHeaders" type="tns:removeHeadersDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Removes message headers whose name matches a specified pattern
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="removeProperties" type="tns:removePropertiesDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Removes message exchange properties whose name matches a specified pattern
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="removeProperty" type="tns:removePropertyDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Removes a named property from the message exchange
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="resequence" type="tns:resequenceDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Resequences (re-order) messages based on an expression
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="responseHeader" type="tns:restOperationResponseHeaderDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To specify the rest operation response headers using Swagger.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="responseMessage" type="tns:restOperationResponseMsgDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To specify the rest operation response messages using Swagger.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="rest" type="tns:restDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Defines a rest service using the rest-dsl
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="restBinding" type="tns:restBindingDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To configure rest binding
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="restConfiguration" type="tns:restConfigurationDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To configure rest
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="restContext" type="tns:camelRestContextFactoryBean">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Configuration of REST services using rest-dsl using XML
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="restContextRef" type="tns:restContextRefDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To refer to an XML file with rest services defined using the rest-dsl
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="restProperty" type="tns:restPropertyDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+A key value pair
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="rests" type="tns:restsDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+A series of rest services defined using the rest-dsl
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="ribbonLoadBalancer" type="tns:ribbonServiceCallServiceLoadBalancerConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="rollback" type="tns:rollbackDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Forces a rollback by stopping routing the message
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="roundRobin" type="tns:roundRobinLoadBalancerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Round robin load balancer The round robin load balancer will use the next
+endpoint for each message. This load balancer is not meant to work with
+failover, for that you should use the dedicated failover load balancer.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="route" type="tns:routeDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+A Camel route
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="routeBuilder" type="tns:routeBuilderDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To refer to a Java org.apache.camel.builder.RouteBuilder instance to use.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="routeContext" type="tns:camelRouteContextFactoryBean">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Configuration of routes using XML
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="routeContextRef" type="tns:routeContextRefDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To refer to an XML file with routes defined using the xml-dsl
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="routes" type="tns:routesDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+A series of Camel routes
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="routingSlip" type="tns:routingSlipDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Routes a message through a series of steps that are pre-determined (the slip)
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="rss" type="tns:rssDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+RSS data format is used for working with RSS sync feed Java Objects and
+transforming to XML and vice-versa.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="saga" type="tns:sagaDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Enables sagas on the route
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="sample" type="tns:samplingDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Extract a sample of the messages passing through a route
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="script" type="tns:scriptDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Executes a script from a language which does not change the message body.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="secureRandomParameters" type="tns:secureRandomParametersFactoryBean"/>
+
+  <xs:element name="secureXML" type="tns:xmlSecurityDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The XML Security data format facilitates encryption and decryption of XML
+payloads.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="security" type="tns:securityDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Rest security definition
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="securityDefinitions" type="tns:restSecuritiesDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To configure rest security definitions.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="serviceCall" type="tns:serviceCallDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To call remote services
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="serviceCallConfiguration" type="tns:serviceCallConfigurationDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Remote service call configuration
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="serviceChooserConfiguration" type="tns:serviceCallServiceChooserConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="serviceDiscoveryConfiguration" type="tns:serviceCallServiceDiscoveryConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="serviceExpression" type="tns:serviceCallExpressionConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="serviceFilterConfiguration" type="tns:serviceCallServiceFilterConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="setBody" type="tns:setBodyDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Sets the contents of the message body
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="setExchangePattern" type="tns:setExchangePatternDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Sets the exchange pattern on the message exchange
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="setHeader" type="tns:setHeaderDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Sets the value of a message header
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="setProperty" type="tns:setPropertyDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Sets a named property on the message exchange
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="simple" type="tns:simpleExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To use Camels built-in Simple language in Camel expressions or predicates.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="soapjaxb" type="tns:soapJaxbDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+SOAP is a data format which uses JAXB2 and JAX-WS annotations to marshal and
+unmarshal SOAP payloads.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="sort" type="tns:sortDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Sorts the contents of the message
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="spel" type="tns:spELExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To use Spring Expression Language (SpEL) in Camel expressions or predicates.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="split" type="tns:splitDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Splits a single message into many sub-messages.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="sslContextParameters" type="tns:sslContextParametersFactoryBean"/>
+
+  <xs:element name="staticServiceDiscovery" type="tns:staticServiceCallServiceDiscoveryConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="step" type="tns:stepDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Routes the message to a sequence of processors which is grouped together as one
+logical name
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="sticky" type="tns:stickyLoadBalancerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Sticky load balancer Sticky load balancing using an Expression to calculate a
+correlation key to perform the sticky load balancing; rather like jsessionid in
+the web or JMSXGroupID in JMS.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="stop" type="tns:stopDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Stops the processing of the current message
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="stream-config" type="tns:streamResequencerConfig">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Configures stream-processing resequence eip.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="streamCaching" type="tns:camelStreamCachingStrategyDefinition"/>
+
+  <xs:element name="syslog" type="tns:syslogDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The Syslog dataformat is used for working with RFC3164 and RFC5424 messages
+(logging and monitoring).
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="tarfile" type="tns:tarFileDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The Tar File data format is a message compression and de-compression format of
+tar files.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="template" type="tns:camelProducerTemplateFactoryBean">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Configures a ProducerTemplate
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="threadPool" type="tns:camelThreadPoolFactoryBean">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Configuration of thread pools
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="threadPoolProfile" type="tns:threadPoolProfileDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To configure thread pools
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="threads" type="tns:threadsDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Specifies that all steps after this node are processed asynchronously
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="thrift" type="tns:thriftDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The Thrift data format is used for serialization and deserialization of messages
+using Apache Thrift binary dataformat.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="throttle" type="tns:throttleDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Controls the rate at which messages are passed to the next node in the route
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="throwException" type="tns:throwExceptionDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Throws an exception
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="tidyMarkup" type="tns:tidyMarkupDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+TidyMarkup data format is used for parsing HTML and return it as pretty
+well-formed HTML.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="to" type="tns:toDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Sends the message to a static endpoint
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="toD" type="tns:toDynamicDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Sends the message to a dynamic endpoint
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="tokenize" type="tns:tokenizerExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To use Camel message body or header with a tokenizer in Camel expressions or
+predicates.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="topic" type="tns:topicLoadBalancerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Topic load balancer The topic load balancer sends to all destinations (rather
+like JMS Topics)
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="transacted" type="tns:transactedDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Enables transaction on the route
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="transform" type="tns:transformDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Transforms the message body based on an expression
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="transformers" type="tns:transformersDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To configure transformers.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="typeFilter" type="tns:yamlTypeFilterDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="univocity-csv" type="tns:uniVocityCsvDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The uniVocity CSV data format is used for working with CSV (Comma Separated
+Values) flat payloads.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="univocity-fixed" type="tns:uniVocityFixedWidthDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The uniVocity Fixed Length data format is used for working with fixed length
+flat payloads.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="univocity-header" type="tns:uniVocityHeader">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To configure headers for UniVocity data formats.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="univocity-tsv" type="tns:uniVocityTsvDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The uniVocity TSV data format is used for working with TSV (Tabular Separated
+Values) flat payloads.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="unmarshal" type="tns:unmarshalDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Converts the message data received from the wire into a format that Apache Camel
+processors can consume
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="validate" type="tns:validateDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Validates a message based on an expression
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="validators" type="tns:validatorsDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To configure validators.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="verb" type="tns:verbDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Rest command
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="weighted" type="tns:weightedLoadBalancerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Weighted load balancer The weighted load balancing policy allows you to specify
+a processing load distribution ratio for each server with respect to others. In
+addition to the weight, endpoint selection is then further refined using random
+distribution based on weight.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="when" type="tns:whenDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Triggers a route when an expression evaluates to true
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="whenSkipSendToEndpoint" type="tns:whenSkipSendToEndpointDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Predicate to determine if the message should be sent or not to the endpoint,
+when using interceptSentToEndpoint.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="wireTap" type="tns:wireTapDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Routes a copy of a message (or creates a new message) to a secondary destination
+while continue routing the original message.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="xmlrpc" type="tns:xmlRpcDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The XML RPC data format is used for working with the XML RPC protocol.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="xpath" type="tns:xPathExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To use XPath (XML) in Camel expressions or predicates.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="xquery" type="tns:xQueryExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To use XQuery (XML) in Camel expressions or predicates.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="xstream" type="tns:xStreamDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+XSTream data format is used for unmarshal a XML payload to POJO or to marshal
+POJO back to XML payload.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="xtokenize" type="tns:xmlTokenizerExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To use Camel message body or header with a XML tokenizer in Camel expressions or
+predicates.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="yaml" type="tns:yamlDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+YAML is a data format to marshal and unmarshal Java objects to and from YAML.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="zipdeflater" type="tns:zipDeflaterDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Zip Deflate Compression data format is a message compression and de-compression
+format (not zip files).
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="zipfile" type="tns:zipFileDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The Zip File data format is a message compression and de-compression format of
+zip files.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="zookeeperServiceDiscovery" type="tns:zooKeeperServiceCallServiceDiscoveryConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:complexType abstract="true" name="abstractCamelConsumerTemplateFactoryBean">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractCamelFactoryBean">
+        <xs:sequence/>
+        <xs:attribute name="maximumCacheSize" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets a custom maximum cache size to use in the backing cache pools.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType abstract="true" name="abstractCamelFactoryBean">
+    <xs:complexContent>
+      <xs:extension base="tns:identifiedType">
+        <xs:sequence/>
+        <xs:attribute name="camelContextId" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Id of CamelContext to use if there are multiple CamelContexts in the same JVM
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType abstract="true" name="identifiedType">
+    <xs:sequence/>
+    <xs:attribute name="id" type="xs:ID">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Sets the value of the id property.
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:complexType abstract="true" name="abstractCamelContextFactoryBean">
+    <xs:complexContent>
+      <xs:extension base="tns:identifiedType">
+        <xs:sequence/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType abstract="true" name="abstractCamelEndpointFactoryBean">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractCamelFactoryBean">
+        <xs:sequence>
+          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:property"/>
+        </xs:sequence>
+        <xs:attribute name="uri" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the URI to use to resolve the endpoint. Notice that additional options can
+be configured using a series of property.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="propertyDefinition">
+    <xs:sequence/>
+    <xs:attribute name="key" type="xs:string" use="required">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Property key
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="value" type="xs:string" use="required">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Property value
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:complexType abstract="true" name="abstractCamelFluentProducerTemplateFactoryBean">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractCamelFactoryBean">
+        <xs:sequence/>
+        <xs:attribute name="defaultEndpoint" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the default endpoint URI used by default for sending message exchanges
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="maximumCacheSize" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets a custom maximum cache size to use in the backing cache pools.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType abstract="true" name="abstractCamelProducerTemplateFactoryBean">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractCamelFactoryBean">
+        <xs:sequence/>
+        <xs:attribute name="defaultEndpoint" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the default endpoint URI used by default for sending message exchanges
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="maximumCacheSize" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets a custom maximum cache size to use in the backing cache pools.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType abstract="true" name="abstractCamelRedeliveryPolicyFactoryBean">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractCamelFactoryBean">
+        <xs:sequence/>
+        <xs:attribute name="maximumRedeliveries" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the maximum number of times a message exchange will be redelivered. Setting
+a negative value will retry forever.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="redeliveryDelay" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the maximum redelivery delay. Use -1 if you wish to have no maximum.
+Default value: 1000
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="asyncDelayedRedelivery" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets whether asynchronous delayed redelivery is allowed. This is disabled by
+default. When enabled it allows Camel to schedule a future task for delayed
+redelivery which prevents current thread from blocking while waiting. Exchange
+which is transacted will however always use synchronous delayed redelivery
+because the transaction must execute in the same thread context. Default value:
+false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="backOffMultiplier" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the multiplier used to increase the delay between redeliveries if
+useExponentialBackOff is enabled. Default value: 2
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="useExponentialBackOff" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Enables/disables exponential backoff using the backOffMultiplier to increase the
+time between retries. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="collisionAvoidanceFactor" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the factor used for collision avoidance if enabled via
+useCollisionAvoidance. Default value: 0.15
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="useCollisionAvoidance" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Enables/disables collision avoidance which adds some randomization to the
+backoff timings to reduce contention probability. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="maximumRedeliveryDelay" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the maximum redelivery delay. Use -1 if you wish to have no maximum.
+Default value: 60000
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="retriesExhaustedLogLevel" type="tns:loggingLevel">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the logging level to use for log messages when retries have been exhausted.
+Default value: ERROR
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="retryAttemptedLogLevel" type="tns:loggingLevel">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the logging level to use for log messages when retries are attempted.
+Default value: DEBUG
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="retryAttemptedLogInterval" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the interval for log messages when retries are attempted. Default value: 0
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="logRetryAttempted" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets whether to log retry attempts. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="logStackTrace" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets whether stack traces should be logged or not. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="logRetryStackTrace" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets whether stack traces should be logged or not. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="logHandled" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets whether errors should be logged even if its handled. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="logNewException" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets whether errors should be logged when a new exception occurred during
+handling a previous exception. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="logContinued" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets whether errors should be logged even if its continued. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="logExhausted" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets whether exhausted exceptions should be logged or not. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="logExhaustedMessageHistory" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets whether to log exhausted errors including message history. Default value:
+false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="logExhaustedMessageBody" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets whether exhausted message body/headers should be logged with message
+history included. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="disableRedelivery" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Disables redelivery by setting maximum redeliveries to 0. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="delayPattern" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets an optional delay pattern to use instead of fixed delay.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="allowRedeliveryWhileStopping" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Controls whether to allow redelivery while stopping/shutting down a route that
+uses error handling. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="exchangeFormatterRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the reference of the instance of org.apache.camel.spi.ExchangeFormatter to
+generate the log message from exchange.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType abstract="true" name="abstractCamelThreadPoolFactoryBean">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractCamelFactoryBean">
+        <xs:sequence/>
+        <xs:attribute name="poolSize" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the core pool size (threads to keep minimum in pool)
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="maxPoolSize" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the maximum pool size
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="keepAliveTime" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the keep alive time for inactive threads
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="timeUnit" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the time unit used for keep alive time. Default value: SECONDS
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="maxQueueSize" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the maximum number of tasks in the work queue. Use -1 for an unbounded
+queue
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="allowCoreThreadTimeOut" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets whether to allow core threads to timeout
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="rejectedPolicy" type="tns:threadPoolRejectedPolicy">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the handler for tasks which cannot be executed by the thread pool. Default
+value: CallerRuns
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="threadName" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To use a custom thread name / pattern
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="scheduled" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to use a scheduled thread pool. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="camelJMXAgentDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:identifiedType">
+        <xs:sequence/>
+        <xs:attribute name="disabled" type="xs:string"/>
+        <xs:attribute name="onlyRegisterProcessorWithCustomId" type="xs:string"/>
+        <xs:attribute name="registryPort" type="xs:string"/>
+        <xs:attribute name="connectorPort" type="xs:string"/>
+        <xs:attribute name="mbeanServerDefaultDomain" type="xs:string"/>
+        <xs:attribute name="mbeanObjectDomainName" type="xs:string"/>
+        <xs:attribute name="serviceUrlPath" type="xs:string"/>
+        <xs:attribute name="createConnector" type="xs:string"/>
+        <xs:attribute name="usePlatformMBeanServer" type="xs:string"/>
+        <xs:attribute name="registerAlways" type="xs:string"/>
+        <xs:attribute name="registerNewRoutes" type="xs:string"/>
+        <xs:attribute name="statisticsLevel" type="xs:string"/>
+        <xs:attribute name="loadStatisticsEnabled" type="xs:string"/>
+        <xs:attribute name="endpointRuntimeStatisticsEnabled" type="xs:string"/>
+        <xs:attribute name="includeHostName" type="xs:string"/>
+        <xs:attribute name="useHostIPAddress" type="xs:string"/>
+        <xs:attribute name="mask" type="xs:string"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="camelPropertyPlaceholderDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:identifiedType">
+        <xs:sequence>
+          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:propertiesFunction"/>
+          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:propertiesLocation"/>
+        </xs:sequence>
+        <xs:attribute name="location" type="xs:string"/>
+        <xs:attribute name="encoding" type="xs:string"/>
+        <xs:attribute name="ignoreMissingLocation" type="xs:boolean"/>
+        <xs:attribute name="propertiesParserRef" type="xs:string"/>
+        <xs:attribute name="defaultFallbackEnabled" type="xs:boolean"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="camelPropertyPlaceholderFunctionDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:identifiedType">
+        <xs:sequence/>
+        <xs:attribute name="ref" type="xs:string" use="required"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="camelPropertyPlaceholderLocationDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:identifiedType">
+        <xs:sequence/>
+        <xs:attribute name="resolver" type="xs:string"/>
+        <xs:attribute name="path" type="xs:string" use="required"/>
+        <xs:attribute name="optional" type="xs:boolean"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="camelProxyFactoryDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:identifiedType">
+        <xs:sequence/>
+        <xs:attribute name="serviceUrl" type="xs:string"/>
+        <xs:attribute name="serviceInterface" type="xs:string"/>
+        <xs:attribute name="camelContextId" type="xs:string"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="camelServiceExporterDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:identifiedType">
+        <xs:sequence/>
+        <xs:attribute name="uri" type="xs:string" use="required"/>
+        <xs:attribute name="serviceRef" type="xs:string"/>
+        <xs:attribute name="method" type="xs:string"/>
+        <xs:attribute name="serviceInterface" type="xs:string"/>
+        <xs:attribute name="camelContextId" type="xs:string"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="camelStreamCachingStrategyDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:identifiedType">
+        <xs:sequence/>
+        <xs:attribute name="enabled" type="xs:string"/>
+        <xs:attribute name="spoolDirectory" type="xs:string"/>
+        <xs:attribute name="spoolCipher" type="xs:string"/>
+        <xs:attribute name="spoolThreshold" type="xs:string"/>
+        <xs:attribute name="spoolUsedHeapMemoryThreshold" type="xs:string"/>
+        <xs:attribute name="spoolUsedHeapMemoryLimit" type="xs:string"/>
+        <xs:attribute name="spoolRules" type="xs:string"/>
+        <xs:attribute name="bufferSize" type="xs:string"/>
+        <xs:attribute name="removeSpoolDirectoryWhenStopping" type="xs:string"/>
+        <xs:attribute name="statisticsEnabled" type="xs:string"/>
+        <xs:attribute name="anySpoolRules" type="xs:string"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="patternBasedPackageScanFilter">
+    <xs:sequence/>
+  </xs:complexType>
+
+  <xs:complexType abstract="true" name="abstractJsseUtilFactoryBean">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractCamelFactoryBean">
+        <xs:sequence/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType abstract="true" name="abstractKeyManagersParametersFactoryBean">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractJsseUtilFactoryBean">
+        <xs:sequence/>
+        <xs:attribute name="keyPassword" type="xs:string"/>
+        <xs:attribute name="provider" type="xs:string"/>
+        <xs:attribute name="algorithm" type="xs:string"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType abstract="true" name="abstractKeyStoreParametersFactoryBean">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractJsseUtilFactoryBean">
+        <xs:sequence/>
+        <xs:attribute name="type" type="xs:string"/>
+        <xs:attribute name="password" type="xs:string"/>
+        <xs:attribute name="provider" type="xs:string"/>
+        <xs:attribute name="resource" type="xs:string"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType abstract="true" name="abstractSecureRandomParametersFactoryBean">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractJsseUtilFactoryBean">
+        <xs:sequence/>
+        <xs:attribute name="algorithm" type="xs:string" use="required"/>
+        <xs:attribute name="provider" type="xs:string"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType abstract="true" name="abstractTrustManagersParametersFactoryBean">
+    <xs:complexContent>
+      <xs:extension base="tns:abstractJsseUtilFactoryBean">
+        <xs:sequence/>
+        <xs:attribute name="provider" type="xs:string"/>
+        <xs:attribute name="algorithm" type="xs:string"/>
+        <xs:attribute name="trustManager" type="xs:string"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="cipherSuitesParameters">
+    <xs:sequence>
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="cipherSuite" nillable="true" type="xs:string"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="filterParameters">
+    <xs:sequence>
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="include" nillable="true" type="xs:string"/>
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="exclude" nillable="true" type="xs:string"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="sniHostNames">
+    <xs:sequence>
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="sniHostName" type="xs:string"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="secureSocketProtocolsParameters">
+    <xs:sequence>
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="secureSocketProtocol" nillable="true" type="xs:string"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="output">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:sequence>
+          <xs:choice maxOccurs="unbounded" minOccurs="0">
+            <xs:element ref="tns:aggregate"/>
+            <xs:element ref="tns:bean"/>
+            <xs:element ref="tns:doCatch"/>
+            <xs:element ref="tns:when"/>
+            <xs:element ref="tns:choice"/>
+            <xs:element ref="tns:otherwise"/>
+            <xs:element ref="tns:claimCheck"/>
+            <xs:element ref="tns:convertBodyTo"/>
+            <xs:element ref="tns:delay"/>
+            <xs:element ref="tns:dynamicRouter"/>
+            <xs:element ref="tns:enrich"/>
+            <xs:element ref="tns:filter"/>
+            <xs:element ref="tns:doFinally"/>
+            <xs:element ref="tns:hystrix"/>
+            <xs:element ref="tns:idempotentConsumer"/>
+            <xs:element ref="tns:inOnly"/>
+            <xs:element ref="tns:inOut"/>
+            <xs:element ref="tns:intercept"/>
+            <xs:element ref="tns:interceptFrom"/>
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+            <xs:element ref="tns:loadBalance"/>
+            <xs:element ref="tns:log"/>
+            <xs:element ref="tns:loop"/>
+            <xs:element ref="tns:marshal"/>
+            <xs:element ref="tns:multicast"/>
+            <xs:element ref="tns:onCompletion"/>
+            <xs:element ref="tns:onException"/>
+            <xs:element ref="tns:onFallback"/>
+            <xs:element ref="tns:pipeline"/>
+            <xs:element ref="tns:policy"/>
+            <xs:element ref="tns:pollEnrich"/>
+            <xs:element ref="tns:process"/>
+            <xs:element ref="tns:recipientList"/>
+            <xs:element ref="tns:removeHeader"/>
+            <xs:element ref="tns:removeHeaders"/>
+            <xs:element ref="tns:removeProperties"/>
+            <xs:element ref="tns:removeProperty"/>
+            <xs:element ref="tns:resequence"/>
+            <xs:element ref="tns:rollback"/>
+            <xs:element ref="tns:route"/>
+            <xs:element ref="tns:routingSlip"/>
+            <xs:element ref="tns:saga"/>
+            <xs:element ref="tns:sample"/>
+            <xs:element ref="tns:script"/>
+            <xs:element ref="tns:setBody"/>
+            <xs:element ref="tns:setExchangePattern"/>
+            <xs:element ref="tns:setHeader"/>
+            <xs:element ref="tns:setProperty"/>
+            <xs:element ref="tns:sort"/>
+            <xs:element ref="tns:split"/>
+            <xs:element ref="tns:step"/>
+            <xs:element ref="tns:stop"/>
+            <xs:element ref="tns:threads"/>
+            <xs:element ref="tns:throttle"/>
+            <xs:element ref="tns:throwException"/>
+            <xs:element ref="tns:to"/>
+            <xs:element ref="tns:toD"/>
+            <xs:element ref="tns:transacted"/>
+            <xs:element ref="tns:transform"/>
+            <xs:element ref="tns:doTry"/>
+            <xs:element ref="tns:unmarshal"/>
+            <xs:element ref="tns:validate"/>
+            <xs:element ref="tns:whenSkipSendToEndpoint"/>
+            <xs:element ref="tns:wireTap"/>
+            <xs:element ref="tns:serviceCall"/>
+          </xs:choice>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType abstract="true" name="processorDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:optionalIdentifiedDefinition">
+        <xs:sequence/>
+        <xs:attribute name="inheritErrorHandler" type="xs:boolean"/>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType abstract="true" name="optionalIdentifiedDefinition">
+    <xs:sequence>
+      <xs:element minOccurs="0" ref="tns:description"/>
+    </xs:sequence>
+    <xs:attribute name="customId" type="xs:boolean"/>
+    <xs:attribute name="id" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Sets the id of this node
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:complexType name="descriptionDefinition">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:attribute name="lang" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Language, such as en for english.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:complexType name="aggregateDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:sequence>
+          <xs:element name="correlationExpression" type="tns:expressionSubElementDefinition"/>
+          <xs:element minOccurs="0" name="completionPredicate" type="tns:expressionSubElementDefinition"/>
+          <xs:element minOccurs="0" name="completionTimeoutExpression" type="tns:expressionSubElementDefinition"/>
+          <xs:element minOccurs="0" name="completionSizeExpression" type="tns:expressionSubElementDefinition"/>
+          <xs:element minOccurs="0" ref="tns:optimisticLockRetryPolicy"/>
+          <xs:choice maxOccurs="unbounded" minOccurs="0">
+            <xs:element ref="tns:aggregate"/>
+            <xs:element ref="tns:bean"/>
+            <xs:element ref="tns:doCatch"/>
+            <xs:element ref="tns:when"/>
+            <xs:element ref="tns:choice"/>
+            <xs:element ref="tns:otherwise"/>
+            <xs:element ref="tns:claimCheck"/>
+            <xs:element ref="tns:convertBodyTo"/>
+            <xs:element ref="tns:delay"/>
+            <xs:element ref="tns:dynamicRouter"/>
+            <xs:element ref="tns:enrich"/>
+            <xs:element ref="tns:filter"/>
+            <xs:element ref="tns:doFinally"/>
+            <xs:element ref="tns:hystrix"/>
+            <xs:element ref="tns:idempotentConsumer"/>
+            <xs:element ref="tns:inOnly"/>
+            <xs:element ref="tns:inOut"/>
+            <xs:element ref="tns:intercept"/>
+            <xs:element ref="tns:interceptFrom"/>
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+            <xs:element ref="tns:loadBalance"/>
+            <xs:element ref="tns:log"/>
+            <xs:element ref="tns:loop"/>
+            <xs:element ref="tns:marshal"/>
+            <xs:element ref="tns:multicast"/>
+            <xs:element ref="tns:onCompletion"/>
+            <xs:element ref="tns:onException"/>
+            <xs:element ref="tns:onFallback"/>
+            <xs:element ref="tns:pipeline"/>
+            <xs:element ref="tns:policy"/>
+            <xs:element ref="tns:pollEnrich"/>
+            <xs:element ref="tns:process"/>
+            <xs:element ref="tns:recipientList"/>
+            <xs:element ref="tns:removeHeader"/>
+            <xs:element ref="tns:removeHeaders"/>
+            <xs:element ref="tns:removeProperties"/>
+            <xs:element ref="tns:removeProperty"/>
+            <xs:element ref="tns:resequence"/>
+            <xs:element ref="tns:rollback"/>
+            <xs:element ref="tns:route"/>
+            <xs:element ref="tns:routingSlip"/>
+            <xs:element ref="tns:saga"/>
+            <xs:element ref="tns:sample"/>
+            <xs:element ref="tns:script"/>
+            <xs:element ref="tns:setBody"/>
+            <xs:element ref="tns:setExchangePattern"/>
+            <xs:element ref="tns:setHeader"/>
+            <xs:element ref="tns:setProperty"/>
+            <xs:element ref="tns:sort"/>
+            <xs:element ref="tns:split"/>
+            <xs:element ref="tns:step"/>
+            <xs:element ref="tns:stop"/>
+            <xs:element ref="tns:threads"/>
+            <xs:element ref="tns:throttle"/>
+            <xs:element ref="tns:throwException"/>
+            <xs:element ref="tns:to"/>
+            <xs:element ref="tns:toD"/>
+            <xs:element ref="tns:transacted"/>
+            <xs:element ref="tns:transform"/>
+            <xs:element ref="tns:doTry"/>
+            <xs:element ref="tns:unmarshal"/>
+            <xs:element ref="tns:validate"/>
+            <xs:element ref="tns:whenSkipSendToEndpoint"/>
+            <xs:element ref="tns:wireTap"/>
+            <xs:element ref="tns:serviceCall"/>
+          </xs:choice>
+        </xs:sequence>
+        <xs:attribute name="parallelProcessing" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+When aggregated are completed they are being send out of the aggregator. This
+option indicates whether or not Camel should use a thread pool with multiple
+threads for concurrency. If no custom thread pool has been specified then Camel
+creates a default pool with 10 concurrent threads. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="optimisticLocking" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Turns on using optimistic locking, which requires the aggregationRepository
+being used, is supporting this by implementing
+org.apache.camel.spi.OptimisticLockingAggregationRepository. Default value:
+false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="executorServiceRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If using parallelProcessing you can specify a custom thread pool to be used. In
+fact also if you are not using parallelProcessing this custom thread pool is
+used to send out aggregated exchanges as well.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="timeoutCheckerExecutorServiceRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If using either of the completionTimeout, completionTimeoutExpression, or
+completionInterval options a background thread is created to check for the
+completion for every aggregator. Set this option to provide a custom thread pool
+to be used rather than creating a new thread for every aggregator.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="aggregationRepositoryRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the custom aggregate repository to use Will by default use
+org.apache.camel.processor.aggregate.MemoryAggregationRepository
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="strategyRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+A reference to lookup the AggregationStrategy in the Registry. Configuring an
+AggregationStrategy is required, and is used to merge the incoming Exchange with
+the existing already merged exchanges. At first call the oldExchange parameter
+is null. On subsequent invocations the oldExchange contains the merged exchanges
+and newExchange is of course the new incoming Exchange.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="strategyMethodName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+This option can be used to explicit declare the method name to use, when using
+POJOs as the AggregationStrategy.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="strategyMethodAllowNull" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If this option is false then the aggregate method is not used for the very first
+aggregation. If this option is true then null values is used as the oldExchange
+(at the very first aggregation), when using POJOs as the AggregationStrategy.
+Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="completionSize" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Number of messages aggregated before the aggregation is complete. This option
+can be set as either a fixed value or using an Expression which allows you to
+evaluate a size dynamically - will use Integer as result. If both are set Camel
+will fallback to use the fixed value if the Expression result was null or 0.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="completionInterval" type="xs:long">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+A repeating period in millis by which the aggregator will complete all current
+aggregated exchanges. Camel has a background task which is triggered every
+period. You cannot use this option together with completionTimeout, only one of
+them can be used.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="completionTimeout" type="xs:long">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Time in millis that an aggregated exchange should be inactive before its
+complete (timeout). This option can be set as either a fixed value or using an
+Expression which allows you to evaluate a timeout dynamically - will use Long as
+result. If both are set Camel will fallback to use the fixed value if the
+Expression result was null or 0. You cannot use this option together with
+completionInterval, only one of the two can be used. By default the timeout
+checker runs every second, you can use the completionTimeoutCheckerInterval
+option to configure how frequently to run the checker. The timeout is an
+approximation and there is no guarantee that the a timeout is triggered exactly
+after the timeout value. It is not recommended to use very low timeout values or
+checker intervals.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="completionTimeoutCheckerInterval" type="xs:long">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Interval in millis that is used by the background task that checks for timeouts
+(org.apache.camel.TimeoutMap). By default the timeout checker runs every second.
+The timeout is an approximation and there is no guarantee that the a timeout is
+triggered exactly after the timeout value. It is not recommended to use very low
+timeout values or checker intervals. Default value: 1000
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="completionFromBatchConsumer" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Enables the batch completion mode where we aggregate from a
+org.apache.camel.BatchConsumer and aggregate the total number of exchanges the
+org.apache.camel.BatchConsumer has reported as total by checking the exchange
+property org.apache.camel.Exchange#BATCH_COMPLETE when its complete. This option
+cannot be used together with discardOnAggregationFailure. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="completionOnNewCorrelationGroup" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Enables completion on all previous groups when a new incoming correlation group.
+This can for example be used to complete groups with same correlation keys when
+they are in consecutive order. Notice when this is enabled then only 1
+correlation group can be in progress as when a new correlation group starts,
+then the previous groups is forced completed. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="eagerCheckCompletion" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Use eager completion checking which means that the completionPredicate will use
+the incoming Exchange. As opposed to without eager completion checking the
+completionPredicate will use the aggregated Exchange. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="ignoreInvalidCorrelationKeys" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If a correlation key cannot be successfully evaluated it will be ignored by
+logging a DEBUG and then just ignore the incoming Exchange. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="closeCorrelationKeyOnCompletion" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Closes a correlation key when its complete. Any late received exchanges which
+has a correlation key that has been closed, it will be defined and a
+ClosedCorrelationKeyException is thrown.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="discardOnCompletionTimeout" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Discards the aggregated message on completion timeout. This means on timeout the
+aggregated message is dropped and not sent out of the aggregator. Default value:
+false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="discardOnAggregationFailure" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Discards the aggregated message when aggregation failed (an exception was thrown
+from AggregationStrategy. This means the partly aggregated message is dropped
+and not sent out of the aggregator. This option cannot be used together with
+completionFromBatchConsumer. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="forceCompletionOnStop" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Indicates to complete all current aggregated exchanges when the context is
+stopped. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="completeAllOnStop" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Indicates to wait to complete all current and partial (pending) aggregated
+exchanges when the context is stopped. This also means that we will wait for all
+pending exchanges which are stored in the aggregation repository to complete so
+the repository is empty before we can stop. You may want to enable this when
+using the memory based aggregation repository that is memory based only, and do
+not store data on disk. When this option is enabled, then the aggregator is
+waiting to complete all those exchanges before its stopped, when stopping
+CamelContext or the route using it. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="aggregateControllerRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To use a org.apache.camel.processor.aggregate.AggregateController to allow
+external sources to control this aggregator.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="expressionSubElementDefinition">
+    <xs:choice>
+      <xs:element ref="tns:expressionDefinition"/>
+      <xs:element ref="tns:constant"/>
+      <xs:element ref="tns:exchangeProperty"/>
+      <xs:element ref="tns:groovy"/>
+      <xs:element ref="tns:header"/>
+      <xs:element ref="tns:hl7terser"/>
+      <xs:element ref="tns:jsonpath"/>
+      <xs:element ref="tns:language"/>
+      <xs:element ref="tns:method"/>
+      <xs:element ref="tns:mvel"/>
+      <xs:element ref="tns:ognl"/>
+      <xs:element ref="tns:ref"/>
+      <xs:element ref="tns:simple"/>
+      <xs:element ref="tns:spel"/>
+      <xs:element ref="tns:tokenize"/>
+      <xs:element ref="tns:xtokenize"/>
+      <xs:element ref="tns:xpath"/>
+      <xs:element ref="tns:xquery"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:complexType name="expression">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:attribute name="id" type="xs:ID">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the id of this node
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="trim" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to trim the value to remove leading and trailing whitespaces and line
+breaks. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:complexType name="optimisticLockRetryPolicyDefinition">
+    <xs:sequence/>
+    <xs:attribute name="maximumRetries" type="xs:int">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Sets the maximum number of retries
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="retryDelay" type="xs:long">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Sets the delay in millis between retries. Default value: 50
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="maximumRetryDelay" type="xs:long">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Sets the upper value of retry in millis between retries, when using exponential
+or random backoff. Default value: 1000
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="exponentialBackOff" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Enable exponential backoff. Default value: true
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="randomBackOff" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Enables random backoff. Default value: false
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:complexType name="beanDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:noOutputDefinition">
+        <xs:sequence/>
+        <xs:attribute name="ref" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets a reference to a bean to use
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="method" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the method name on the bean to use
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="beanType" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the Class of the bean
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="cache" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Caches the bean lookup, to avoid lookup up bean on every usage. Default value:
+true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType abstract="true" name="noOutputDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:sequence/>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="catchDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:sequence>
+          <xs:element maxOccurs="unbounded" minOccurs="0" name="exception" type="xs:string"/>
+          <xs:element minOccurs="0" name="onWhen" type="tns:whenDefinition"/>
+          <xs:choice maxOccurs="unbounded" minOccurs="0">
+            <xs:element ref="tns:aggregate"/>
+            <xs:element ref="tns:bean"/>
+            <xs:element ref="tns:doCatch"/>
+            <xs:element ref="tns:when"/>
+            <xs:element ref="tns:choice"/>
+            <xs:element ref="tns:otherwise"/>
+            <xs:element ref="tns:claimCheck"/>
+            <xs:element ref="tns:convertBodyTo"/>
+            <xs:element ref="tns:delay"/>
+            <xs:element ref="tns:dynamicRouter"/>
+            <xs:element ref="tns:enrich"/>
+            <xs:element ref="tns:filter"/>
+            <xs:element ref="tns:doFinally"/>
+            <xs:element ref="tns:hystrix"/>
+            <xs:element ref="tns:idempotentConsumer"/>
+            <xs:element ref="tns:inOnly"/>
+            <xs:element ref="tns:inOut"/>
+            <xs:element ref="tns:intercept"/>
+            <xs:element ref="tns:interceptFrom"/>
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+            <xs:element ref="tns:loadBalance"/>
+            <xs:element ref="tns:log"/>
+            <xs:element ref="tns:loop"/>
+            <xs:element ref="tns:marshal"/>
+            <xs:element ref="tns:multicast"/>
+            <xs:element ref="tns:onCompletion"/>
+            <xs:element ref="tns:onException"/>
+            <xs:element ref="tns:onFallback"/>
+            <xs:element ref="tns:pipeline"/>
+            <xs:element ref="tns:policy"/>
+            <xs:element ref="tns:pollEnrich"/>
+            <xs:element ref="tns:process"/>
+            <xs:element ref="tns:recipientList"/>
+            <xs:element ref="tns:removeHeader"/>
+            <xs:element ref="tns:removeHeaders"/>
+            <xs:element ref="tns:removeProperties"/>
+            <xs:element ref="tns:removeProperty"/>
+            <xs:element ref="tns:resequence"/>
+            <xs:element ref="tns:rollback"/>
+            <xs:element ref="tns:route"/>
+            <xs:element ref="tns:routingSlip"/>
+            <xs:element ref="tns:saga"/>
+            <xs:element ref="tns:sample"/>
+            <xs:element ref="tns:script"/>
+            <xs:element ref="tns:setBody"/>
+            <xs:element ref="tns:setExchangePattern"/>
+            <xs:element ref="tns:setHeader"/>
+            <xs:element ref="tns:setProperty"/>
+            <xs:element ref="tns:sort"/>
+            <xs:element ref="tns:split"/>
+            <xs:element ref="tns:step"/>
+            <xs:element ref="tns:stop"/>
+            <xs:element ref="tns:threads"/>
+            <xs:element ref="tns:throttle"/>
+            <xs:element ref="tns:throwException"/>
+            <xs:element ref="tns:to"/>
+            <xs:element ref="tns:toD"/>
+            <xs:element ref="tns:transacted"/>
+            <xs:element ref="tns:transform"/>
+            <xs:element ref="tns:doTry"/>
+            <xs:element ref="tns:unmarshal"/>
+            <xs:element ref="tns:validate"/>
+            <xs:element ref="tns:whenSkipSendToEndpoint"/>
+            <xs:element ref="tns:wireTap"/>
+            <xs:element ref="tns:serviceCall"/>
+          </xs:choice>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="whenDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:sequence>
+          <xs:choice>
+            <xs:element ref="tns:expressionDefinition"/>
+            <xs:element ref="tns:constant"/>
+            <xs:element ref="tns:exchangeProperty"/>
+            <xs:element ref="tns:groovy"/>
+            <xs:element ref="tns:header"/>
+            <xs:element ref="tns:hl7terser"/>
+            <xs:element ref="tns:jsonpath"/>
+            <xs:element ref="tns:language"/>
+            <xs:element ref="tns:method"/>
+            <xs:element ref="tns:mvel"/>
+            <xs:element ref="tns:ognl"/>
+            <xs:element ref="tns:ref"/>
+            <xs:element ref="tns:simple"/>
+            <xs:element ref="tns:spel"/>
+            <xs:element ref="tns:tokenize"/>
+            <xs:element ref="tns:xtokenize"/>
+            <xs:element ref="tns:xpath"/>
+            <xs:element ref="tns:xquery"/>
+          </xs:choice>
+          <xs:choice maxOccurs="unbounded" minOccurs="0">
+            <xs:element ref="tns:aggregate"/>
+            <xs:element ref="tns:bean"/>
+            <xs:element ref="tns:doCatch"/>
+            <xs:element ref="tns:when"/>
+            <xs:element ref="tns:choice"/>
+            <xs:element ref="tns:otherwise"/>
+            <xs:element ref="tns:claimCheck"/>
+            <xs:element ref="tns:convertBodyTo"/>
+            <xs:element ref="tns:delay"/>
+            <xs:element ref="tns:dynamicRouter"/>
+            <xs:element ref="tns:enrich"/>
+            <xs:element ref="tns:filter"/>
+            <xs:element ref="tns:doFinally"/>
+            <xs:element ref="tns:hystrix"/>
+            <xs:element ref="tns:idempotentConsumer"/>
+            <xs:element ref="tns:inOnly"/>
+            <xs:element ref="tns:inOut"/>
+            <xs:element ref="tns:intercept"/>
+            <xs:element ref="tns:interceptFrom"/>
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+            <xs:element ref="tns:loadBalance"/>
+            <xs:element ref="tns:log"/>
+            <xs:element ref="tns:loop"/>
+            <xs:element ref="tns:marshal"/>
+            <xs:element ref="tns:multicast"/>
+            <xs:element ref="tns:onCompletion"/>
+            <xs:element ref="tns:onException"/>
+            <xs:element ref="tns:onFallback"/>
+            <xs:element ref="tns:pipeline"/>
+            <xs:element ref="tns:policy"/>
+            <xs:element ref="tns:pollEnrich"/>
+            <xs:element ref="tns:process"/>
+            <xs:element ref="tns:recipientList"/>
+            <xs:element ref="tns:removeHeader"/>
+            <xs:element ref="tns:removeHeaders"/>
+            <xs:element ref="tns:removeProperties"/>
+            <xs:element ref="tns:removeProperty"/>
+            <xs:element ref="tns:resequence"/>
+            <xs:element ref="tns:rollback"/>
+            <xs:element ref="tns:route"/>
+            <xs:element ref="tns:routingSlip"/>
+            <xs:element ref="tns:saga"/>
+            <xs:element ref="tns:sample"/>
+            <xs:element ref="tns:script"/>
+            <xs:element ref="tns:setBody"/>
+            <xs:element ref="tns:setExchangePattern"/>
+            <xs:element ref="tns:setHeader"/>
+            <xs:element ref="tns:setProperty"/>
+            <xs:element ref="tns:sort"/>
+            <xs:element ref="tns:split"/>
+            <xs:element ref="tns:step"/>
+            <xs:element ref="tns:stop"/>
+            <xs:element ref="tns:threads"/>
+            <xs:element ref="tns:throttle"/>
+            <xs:element ref="tns:throwException"/>
+            <xs:element ref="tns:to"/>
+            <xs:element ref="tns:toD"/>
+            <xs:element ref="tns:transacted"/>
+            <xs:element ref="tns:transform"/>
+            <xs:element ref="tns:doTry"/>
+            <xs:element ref="tns:unmarshal"/>
+            <xs:element ref="tns:validate"/>
+            <xs:element ref="tns:whenSkipSendToEndpoint"/>
+            <xs:element ref="tns:wireTap"/>
+            <xs:element ref="tns:serviceCall"/>
+          </xs:choice>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="choiceDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:sequence>
+          <xs:choice maxOccurs="unbounded" minOccurs="0">
+            <xs:element ref="tns:when"/>
+            <xs:element ref="tns:whenSkipSendToEndpoint"/>
+          </xs:choice>
+          <xs:element minOccurs="0" ref="tns:otherwise"/>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="otherwiseDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:output">
+        <xs:sequence/>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="claimCheckDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:noOutputDefinition">
+        <xs:sequence/>
+        <xs:attribute name="operation" type="tns:claimCheckOperation" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The claim check operation to use. The following operations is supported: Get -
+Gets (does not remove) the claim check by the given key. GetAndRemove - Gets and
+remove the claim check by the given key. Set - Sets a new (will override if key
+already exists) claim check with the given key. Push - Sets a new claim check on
+the stack (does not use key). Pop - Gets the latest claim check from the stack
+(does not use key).
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="key" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To use a specific key for claim check id (for dynamic keys use simple language
+syntax as the key).
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="filter" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Specified a filter to control what data gets merging data back from the claim
+check repository. The following syntax is supported: body - to aggregate the
+message body attachments - to aggregate all the message attachments headers - to
+aggregate all the message headers header:pattern - to aggregate all the message
+headers that matches the pattern. The pattern uses the following rules are
+applied in this order: exact match, returns true wildcard match (pattern ends
+with a and the name starts with the pattern), returns true regular expression
+match, returns true otherwise returns false You can specify multiple rules
+separated by comma. For example to include the message body and all headers
+starting with foo body,header:foo. The syntax supports the following prefixes
+which can be used to specify include,exclude, or remove - to include (which is
+the default mode) - - to exclude (exclude takes precedence over include) -- - to
+remove (remove takes precedence) For example to exclude a header name foo, and
+remove all headers starting with bar -header:foo,--headers:bar Note you cannot
+have both include and exclude header:pattern at the same time.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="strategyRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To use a custom AggregationStrategy instead of the default implementation.
+Notice you cannot use both custom aggregation strategy and configure data at the
+same time.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="strategyMethodName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+This option can be used to explicit declare the method name to use, when using
+POJOs as the AggregationStrategy.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType final="extension restriction" name="constants">
+    <xs:sequence/>
+  </xs:complexType>
+
+  <xs:complexType name="contextScanDefinition">
+    <xs:sequence>
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="excludes" type="xs:string"/>
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="includes" type="xs:string"/>
+    </xs:sequence>
+    <xs:attribute name="includeNonSingletons" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Whether to include non-singleton beans (prototypes) By default only singleton
+beans is included in the context scan. Default value: false
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:complexType name="convertBodyDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:noOutputDefinition">
+        <xs:sequence/>
+        <xs:attribute name="type" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The java type to convert to
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="charset" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To use a specific charset when converting
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="dataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:identifiedType">
+        <xs:sequence/>
+        <xs:attribute name="contentTypeHeader" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether the data format should set the Content-Type header with the type from
+the data format if the data format is capable of doing so. For example
+application/xml for data formats marshalling to XML, or application/json for
+data formats marshalling to JSon etc. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="delayDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:choice>
+          <xs:element ref="tns:expressionDefinition"/>
+          <xs:element ref="tns:constant"/>
+          <xs:element ref="tns:exchangeProperty"/>
+          <xs:element ref="tns:groovy"/>
+          <xs:element ref="tns:header"/>
+          <xs:element ref="tns:hl7terser"/>
+          <xs:element ref="tns:jsonpath"/>
+          <xs:element ref="tns:language"/>
+          <xs:element ref="tns:method"/>
+          <xs:element ref="tns:mvel"/>
+          <xs:element ref="tns:ognl"/>
+          <xs:element ref="tns:ref"/>
+          <xs:element ref="tns:simple"/>
+          <xs:element ref="tns:spel"/>
+          <xs:element ref="tns:tokenize"/>
+          <xs:element ref="tns:xtokenize"/>
+          <xs:element ref="tns:xpath"/>
+          <xs:element ref="tns:xquery"/>
+        </xs:choice>
+        <xs:attribute name="executorServiceRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Refers to a custom Thread Pool if asyncDelay has been enabled.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="asyncDelayed" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Enables asynchronous delay which means the thread will not block while delaying.
+Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="callerRunsWhenRejected" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether or not the caller should run the task when it was rejected by the thread
+pool. Is by default true. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="dynamicRouterDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:choice>
+          <xs:element ref="tns:expressionDefinition"/>
+          <xs:element ref="tns:constant"/>
+          <xs:element ref="tns:exchangeProperty"/>
+          <xs:element ref="tns:groovy"/>
+          <xs:element ref="tns:header"/>
+          <xs:element ref="tns:hl7terser"/>
+          <xs:element ref="tns:jsonpath"/>
+          <xs:element ref="tns:language"/>
+          <xs:element ref="tns:method"/>
+          <xs:element ref="tns:mvel"/>
+          <xs:element ref="tns:ognl"/>
+          <xs:element ref="tns:ref"/>
+          <xs:element ref="tns:simple"/>
+          <xs:element ref="tns:spel"/>
+          <xs:element ref="tns:tokenize"/>
+          <xs:element ref="tns:xtokenize"/>
+          <xs:element ref="tns:xpath"/>
+          <xs:element ref="tns:xquery"/>
+        </xs:choice>
+        <xs:attribute name="uriDelimiter" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the uri delimiter to use. Default value: ,
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="ignoreInvalidEndpoints" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Ignore the invalidate endpoint exception when try to create a producer with that
+endpoint. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="cacheSize" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the maximum size used by the org.apache.camel.spi.ProducerCache which is
+used to cache and reuse producers when using this dynamic router, when uris are
+reused.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="enrichDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:choice>
+          <xs:element ref="tns:expressionDefinition"/>
+          <xs:element ref="tns:constant"/>
+          <xs:element ref="tns:exchangeProperty"/>
+          <xs:element ref="tns:groovy"/>
+          <xs:element ref="tns:header"/>
+          <xs:element ref="tns:hl7terser"/>
+          <xs:element ref="tns:jsonpath"/>
+          <xs:element ref="tns:language"/>
+          <xs:element ref="tns:method"/>
+          <xs:element ref="tns:mvel"/>
+          <xs:element ref="tns:ognl"/>
+          <xs:element ref="tns:ref"/>
+          <xs:element ref="tns:simple"/>
+          <xs:element ref="tns:spel"/>
+          <xs:element ref="tns:tokenize"/>
+          <xs:element ref="tns:xtokenize"/>
+          <xs:element ref="tns:xpath"/>
+          <xs:element ref="tns:xquery"/>
+        </xs:choice>
+        <xs:attribute name="strategyRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Refers to an AggregationStrategy to be used to merge the reply from the external
+service, into a single outgoing message. By default Camel will use the reply
+from the external service as outgoing message.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="strategyMethodName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+This option can be used to explicit declare the method name to use, when using
+POJOs as the AggregationStrategy.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="strategyMethodAllowNull" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If this option is false then the aggregate method is not used if there was no
+data to enrich. If this option is true then null values is used as the
+oldExchange (when no data to enrich), when using POJOs as the
+AggregationStrategy. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="aggregateOnException" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If this option is false then the aggregate method is not used if there was an
+exception thrown while trying to retrieve the data to enrich from the resource.
+Setting this option to true allows end users to control what to do if there was
+an exception in the aggregate method. For example to suppress the exception or
+set a custom message body etc. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="shareUnitOfWork" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Shares the org.apache.camel.spi.UnitOfWork with the parent and the resource
+exchange. Enrich will by default not share unit of work between the parent
+exchange and the resource exchange. This means the resource exchange has its own
+individual unit of work. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="cacheSize" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the maximum size used by the org.apache.camel.spi.ProducerCache which is
+used to cache and reuse producer when uris are reused.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="ignoreInvalidEndpoint" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Ignore the invalidate endpoint exception when try to create a producer with that
+endpoint. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="filterDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:sequence>
+          <xs:choice>
+            <xs:element ref="tns:expressionDefinition"/>
+            <xs:element ref="tns:constant"/>
+            <xs:element ref="tns:exchangeProperty"/>
+            <xs:element ref="tns:groovy"/>
+            <xs:element ref="tns:header"/>
+            <xs:element ref="tns:hl7terser"/>
+            <xs:element ref="tns:jsonpath"/>
+            <xs:element ref="tns:language"/>
+            <xs:element ref="tns:method"/>
+            <xs:element ref="tns:mvel"/>
+            <xs:element ref="tns:ognl"/>
+            <xs:element ref="tns:ref"/>
+            <xs:element ref="tns:simple"/>
+            <xs:element ref="tns:spel"/>
+            <xs:element ref="tns:tokenize"/>
+            <xs:element ref="tns:xtokenize"/>
+            <xs:element ref="tns:xpath"/>
+            <xs:element ref="tns:xquery"/>
+          </xs:choice>
+          <xs:choice maxOccurs="unbounded" minOccurs="0">
+            <xs:element ref="tns:aggregate"/>
+            <xs:element ref="tns:bean"/>
+            <xs:element ref="tns:doCatch"/>
+            <xs:element ref="tns:when"/>
+            <xs:element ref="tns:choice"/>
+            <xs:element ref="tns:otherwise"/>
+            <xs:element ref="tns:claimCheck"/>
+            <xs:element ref="tns:convertBodyTo"/>
+            <xs:element ref="tns:delay"/>
+            <xs:element ref="tns:dynamicRouter"/>
+            <xs:element ref="tns:enrich"/>
+            <xs:element ref="tns:filter"/>
+            <xs:element ref="tns:doFinally"/>
+            <xs:element ref="tns:hystrix"/>
+            <xs:element ref="tns:idempotentConsumer"/>
+            <xs:element ref="tns:inOnly"/>
+            <xs:element ref="tns:inOut"/>
+            <xs:element ref="tns:intercept"/>
+            <xs:element ref="tns:interceptFrom"/>
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+            <xs:element ref="tns:loadBalance"/>
+            <xs:element ref="tns:log"/>
+            <xs:element ref="tns:loop"/>
+            <xs:element ref="tns:marshal"/>
+            <xs:element ref="tns:multicast"/>
+            <xs:element ref="tns:onCompletion"/>
+            <xs:element ref="tns:onException"/>
+            <xs:element ref="tns:onFallback"/>
+            <xs:element ref="tns:pipeline"/>
+            <xs:element ref="tns:policy"/>
+            <xs:element ref="tns:pollEnrich"/>
+            <xs:element ref="tns:process"/>
+            <xs:element ref="tns:recipientList"/>
+            <xs:element ref="tns:removeHeader"/>
+            <xs:element ref="tns:removeHeaders"/>
+            <xs:element ref="tns:removeProperties"/>
+            <xs:element ref="tns:removeProperty"/>
+            <xs:element ref="tns:resequence"/>
+            <xs:element ref="tns:rollback"/>
+            <xs:element ref="tns:route"/>
+            <xs:element ref="tns:routingSlip"/>
+            <xs:element ref="tns:saga"/>
+            <xs:element ref="tns:sample"/>
+            <xs:element ref="tns:script"/>
+            <xs:element ref="tns:setBody"/>
+            <xs:element ref="tns:setExchangePattern"/>
+            <xs:element ref="tns:setHeader"/>
+            <xs:element ref="tns:setProperty"/>
+            <xs:element ref="tns:sort"/>
+            <xs:element ref="tns:split"/>
+            <xs:element ref="tns:step"/>
+            <xs:element ref="tns:stop"/>
+            <xs:element ref="tns:threads"/>
+            <xs:element ref="tns:throttle"/>
+            <xs:element ref="tns:throwException"/>
+            <xs:element ref="tns:to"/>
+            <xs:element ref="tns:toD"/>
+            <xs:element ref="tns:transacted"/>
+            <xs:element ref="tns:transform"/>
+            <xs:element ref="tns:doTry"/>
+            <xs:element ref="tns:unmarshal"/>
+            <xs:element ref="tns:validate"/>
+            <xs:element ref="tns:whenSkipSendToEndpoint"/>
+            <xs:element ref="tns:wireTap"/>
+            <xs:element ref="tns:serviceCall"/>
+          </xs:choice>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="finallyDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:output">
+        <xs:sequence/>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="fromDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:optionalIdentifiedDefinition">
+        <xs:sequence/>
+        <xs:attribute name="uri" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the URI of the endpoint to use
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="globalOptionDefinition">
+    <xs:sequence/>
+    <xs:attribute name="key" type="xs:string" use="required">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Global option key
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="value" type="xs:string" use="required">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Global option value
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:complexType name="globalOptionsDefinition">
+    <xs:sequence>
+      <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:globalOption"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="hystrixConfigurationCommon">
+    <xs:complexContent>
+      <xs:extension base="tns:identifiedType">
+        <xs:sequence/>
+        <xs:attribute name="groupKey" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the group key to use. The default value is CamelHystrix. Default value:
+CamelHystrix
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="threadPoolKey" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the thread pool key to use. Will by default use the same value as groupKey
+has been configured to use. Default value: CamelHystrix
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="circuitBreakerEnabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to use a HystrixCircuitBreaker or not. If false no circuit-breaker logic
+will be used and all requests permitted. This is similar in effect to
+circuitBreakerForceClosed() except that continues tracking metrics and knowing
+whether it should be open/closed, this property results in not even
+instantiating a circuit-breaker. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="circuitBreakerErrorThresholdPercentage" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Error percentage threshold (as whole number such as 50) at which point the
+circuit breaker will trip open and reject requests. It will stay tripped for the
+duration defined in circuitBreakerSleepWindowInMilliseconds; The error
+percentage this is compared against comes from
+HystrixCommandMetrics.getHealthCounts(). Default value: 50
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="circuitBreakerForceClosed" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If true the HystrixCircuitBreaker#allowRequest() will always return true to
+allow requests regardless of the error percentage from
+HystrixCommandMetrics.getHealthCounts(). The circuitBreakerForceOpen() property
+takes precedence so if it set to true this property does nothing. Default value:
+false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="circuitBreakerForceOpen" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If true the HystrixCircuitBreaker.allowRequest() will always return false,
+causing the circuit to be open (tripped) and reject all requests. This property
+takes precedence over circuitBreakerForceClosed();. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="circuitBreakerRequestVolumeThreshold" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Minimum number of requests in the
+metricsRollingStatisticalWindowInMilliseconds() that must exist before the
+HystrixCircuitBreaker will trip. If below this number the circuit will not trip
+regardless of error percentage. Default value: 20
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="circuitBreakerSleepWindowInMilliseconds" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The time in milliseconds after a HystrixCircuitBreaker trips open that it should
+wait before trying requests again. Default value: 5000
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="executionIsolationSemaphoreMaxConcurrentRequests" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Number of concurrent requests permitted to HystrixCommand.run(). Requests beyond
+the concurrent limit will be rejected. Applicable only when
+executionIsolationStrategy == SEMAPHORE. Default value: 20
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="executionIsolationStrategy" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+What isolation strategy HystrixCommand.run() will be executed with. If THREAD
+then it will be executed on a separate thread and concurrent requests limited by
+the number of threads in the thread-pool. If SEMAPHORE then it will be executed
+on the calling thread and concurrent requests limited by the semaphore count.
+Default value: THREAD
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="executionIsolationThreadInterruptOnTimeout" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether the execution thread should attempt an interrupt (using Future#cancel)
+when a thread times out. Applicable only when executionIsolationStrategy() ==
+THREAD. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="executionTimeoutInMilliseconds" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Time in milliseconds at which point the command will timeout and halt execution.
+If executionIsolationThreadInterruptOnTimeout == true and the command is
+thread-isolated, the executing thread will be interrupted. If the command is
+semaphore-isolated and a HystrixObservableCommand, that command will get
+unsubscribed. Default value: 1000
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="executionTimeoutEnabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether the timeout mechanism is enabled for this command. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="fallbackIsolationSemaphoreMaxConcurrentRequests" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Number of concurrent requests permitted to HystrixCommand.getFallback().
+Requests beyond the concurrent limit will fail-fast and not attempt retrieving a
+fallback. Default value: 10
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="fallbackEnabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether HystrixCommand.getFallback() should be attempted when failure occurs.
+Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="metricsHealthSnapshotIntervalInMilliseconds" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Time in milliseconds to wait between allowing health snapshots to be taken that
+calculate success and error percentages and affect
+HystrixCircuitBreaker.isOpen() status. On high-volume circuits the continual
+calculation of error percentage can become CPU intensive thus this controls how
+often it is calculated. Default value: 500
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="metricsRollingPercentileBucketSize" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Maximum number of values stored in each bucket of the rolling percentile. This
+is passed into HystrixRollingPercentile inside HystrixCommandMetrics. Default
+value: 10
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="metricsRollingPercentileEnabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether percentile metrics should be captured using HystrixRollingPercentile
+inside HystrixCommandMetrics. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="metricsRollingPercentileWindowInMilliseconds" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Duration of percentile rolling window in milliseconds. This is passed into
+HystrixRollingPercentile inside HystrixCommandMetrics. Default value: 10000
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="metricsRollingPercentileWindowBuckets" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Number of buckets the rolling percentile window is broken into. This is passed
+into HystrixRollingPercentile inside HystrixCommandMetrics. Default value: 6
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="metricsRollingStatisticalWindowInMilliseconds" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+This property sets the duration of the statistical rolling window, in
+milliseconds. This is how long metrics are kept for the thread pool. The window
+is divided into buckets and rolls by those increments. Default value: 10000
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="metricsRollingStatisticalWindowBuckets" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Number of buckets the rolling statistical window is broken into. This is passed
+into HystrixRollingNumber inside HystrixCommandMetrics. Default value: 10
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="requestLogEnabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether HystrixCommand execution and events should be logged to
+HystrixRequestLog. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="corePoolSize" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Core thread-pool size that gets passed to
+java.util.concurrent.ThreadPoolExecutor#setCorePoolSize(int). Default value: 10
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="maximumSize" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Maximum thread-pool size that gets passed to
+ThreadPoolExecutor#setMaximumPoolSize(int). This is the maximum amount of
+concurrency that can be supported without starting to reject HystrixCommands.
+Please note that this setting only takes effect if you also set
+allowMaximumSizeToDivergeFromCoreSize. Default value: 10
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="keepAliveTime" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Keep-alive time in minutes that gets passed to {link
+ThreadPoolExecutor#setKeepAliveTime(long, TimeUnit)}. Default value: 1
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="maxQueueSize" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Max queue size that gets passed to BlockingQueue in
+HystrixConcurrencyStrategy.getBlockingQueue(int) This should only affect the
+instantiation of a threadpool - it is not eliglible to change a queue size on
+the fly. For that, use queueSizeRejectionThreshold(). Default value: -1
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="queueSizeRejectionThreshold" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Queue size rejection threshold is an artificial max size at which rejections
+will occur even if maxQueueSize has not been reached. This is done because the
+maxQueueSize of a BlockingQueue can not be dynamically changed and we want to
+support dynamically changing the queue size that affects rejections. This is
+used by HystrixCommand when queuing a thread for execution. Default value: 5
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="threadPoolRollingNumberStatisticalWindowInMilliseconds" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Duration of statistical rolling window in milliseconds. This is passed into
+HystrixRollingNumber inside each HystrixThreadPoolMetrics instance. Default
+value: 10000
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="threadPoolRollingNumberStatisticalWindowBuckets" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Number of buckets the rolling statistical window is broken into. This is passed
+into HystrixRollingNumber inside each HystrixThreadPoolMetrics instance. Default
+value: 10
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="allowMaximumSizeToDivergeFromCoreSize" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Allows the configuration for maximumSize to take effect. That value can then be
+equal to, or higher, than coreSize. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="hystrixConfigurationDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:hystrixConfigurationCommon">
+        <xs:sequence/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="hystrixDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:sequence>
+          <xs:element minOccurs="0" ref="tns:hystrixConfiguration"/>
+          <xs:choice maxOccurs="unbounded" minOccurs="0">
+            <xs:element ref="tns:aggregate"/>
+            <xs:element ref="tns:bean"/>
+            <xs:element ref="tns:doCatch"/>
+            <xs:element ref="tns:when"/>
+            <xs:element ref="tns:choice"/>
+            <xs:element ref="tns:otherwise"/>
+            <xs:element ref="tns:claimCheck"/>
+            <xs:element ref="tns:convertBodyTo"/>
+            <xs:element ref="tns:delay"/>
+            <xs:element ref="tns:dynamicRouter"/>
+            <xs:element ref="tns:enrich"/>
+            <xs:element ref="tns:filter"/>
+            <xs:element ref="tns:doFinally"/>
+            <xs:element ref="tns:hystrix"/>
+            <xs:element ref="tns:idempotentConsumer"/>
+            <xs:element ref="tns:inOnly"/>
+            <xs:element ref="tns:inOut"/>
+            <xs:element ref="tns:intercept"/>
+            <xs:element ref="tns:interceptFrom"/>
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+            <xs:element ref="tns:loadBalance"/>
+            <xs:element ref="tns:log"/>
+            <xs:element ref="tns:loop"/>
+            <xs:element ref="tns:marshal"/>
+            <xs:element ref="tns:multicast"/>
+            <xs:element ref="tns:onCompletion"/>
+            <xs:element ref="tns:onException"/>
+            <xs:element ref="tns:onFallback"/>
+            <xs:element ref="tns:pipeline"/>
+            <xs:element ref="tns:policy"/>
+            <xs:element ref="tns:pollEnrich"/>
+            <xs:element ref="tns:process"/>
+            <xs:element ref="tns:recipientList"/>
+            <xs:element ref="tns:removeHeader"/>
+            <xs:element ref="tns:removeHeaders"/>
+            <xs:element ref="tns:removeProperties"/>
+            <xs:element ref="tns:removeProperty"/>
+            <xs:element ref="tns:resequence"/>
+            <xs:element ref="tns:rollback"/>
+            <xs:element ref="tns:route"/>
+            <xs:element ref="tns:routingSlip"/>
+            <xs:element ref="tns:saga"/>
+            <xs:element ref="tns:sample"/>
+            <xs:element ref="tns:script"/>
+            <xs:element ref="tns:setBody"/>
+            <xs:element ref="tns:setExchangePattern"/>
+            <xs:element ref="tns:setHeader"/>
+            <xs:element ref="tns:setProperty"/>
+            <xs:element ref="tns:sort"/>
+            <xs:element ref="tns:split"/>
+            <xs:element ref="tns:step"/>
+            <xs:element ref="tns:stop"/>
+            <xs:element ref="tns:threads"/>
+            <xs:element ref="tns:throttle"/>
+            <xs:element ref="tns:throwException"/>
+            <xs:element ref="tns:to"/>
+            <xs:element ref="tns:toD"/>
+            <xs:element ref="tns:transacted"/>
+            <xs:element ref="tns:transform"/>
+            <xs:element ref="tns:doTry"/>
+            <xs:element ref="tns:unmarshal"/>
+            <xs:element ref="tns:validate"/>
+            <xs:element ref="tns:whenSkipSendToEndpoint"/>
+            <xs:element ref="tns:wireTap"/>
+            <xs:element ref="tns:serviceCall"/>
+          </xs:choice>
+        </xs:sequence>
+        <xs:attribute name="hystrixConfigurationRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Refers to a Hystrix configuration to use for configuring the Hystrix EIP.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="idempotentConsumerDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:sequence>
+          <xs:choice>
+            <xs:element ref="tns:expressionDefinition"/>
+            <xs:element ref="tns:constant"/>
+            <xs:element ref="tns:exchangeProperty"/>
+            <xs:element ref="tns:groovy"/>
+            <xs:element ref="tns:header"/>
+            <xs:element ref="tns:hl7terser"/>
+            <xs:element ref="tns:jsonpath"/>
+            <xs:element ref="tns:language"/>
+            <xs:element ref="tns:method"/>
+            <xs:element ref="tns:mvel"/>
+            <xs:element ref="tns:ognl"/>
+            <xs:element ref="tns:ref"/>
+            <xs:element ref="tns:simple"/>
+            <xs:element ref="tns:spel"/>
+            <xs:element ref="tns:tokenize"/>
+            <xs:element ref="tns:xtokenize"/>
+            <xs:element ref="tns:xpath"/>
+            <xs:element ref="tns:xquery"/>
+          </xs:choice>
+          <xs:choice maxOccurs="unbounded" minOccurs="0">
+            <xs:element ref="tns:aggregate"/>
+            <xs:element ref="tns:bean"/>
+            <xs:element ref="tns:doCatch"/>
+            <xs:element ref="tns:when"/>
+            <xs:element ref="tns:choice"/>
+            <xs:element ref="tns:otherwise"/>
+            <xs:element ref="tns:claimCheck"/>
+            <xs:element ref="tns:convertBodyTo"/>
+            <xs:element ref="tns:delay"/>
+            <xs:element ref="tns:dynamicRouter"/>
+            <xs:element ref="tns:enrich"/>
+            <xs:element ref="tns:filter"/>
+            <xs:element ref="tns:doFinally"/>
+            <xs:element ref="tns:hystrix"/>
+            <xs:element ref="tns:idempotentConsumer"/>
+            <xs:element ref="tns:inOnly"/>
+            <xs:element ref="tns:inOut"/>
+            <xs:element ref="tns:intercept"/>
+            <xs:element ref="tns:interceptFrom"/>
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+            <xs:element ref="tns:loadBalance"/>
+            <xs:element ref="tns:log"/>
+            <xs:element ref="tns:loop"/>
+            <xs:element ref="tns:marshal"/>
+            <xs:element ref="tns:multicast"/>
+            <xs:element ref="tns:onCompletion"/>
+            <xs:element ref="tns:onException"/>
+            <xs:element ref="tns:onFallback"/>
+            <xs:element ref="tns:pipeline"/>
+            <xs:element ref="tns:policy"/>
+            <xs:element ref="tns:pollEnrich"/>
+            <xs:element ref="tns:process"/>
+            <xs:element ref="tns:recipientList"/>
+            <xs:element ref="tns:removeHeader"/>
+            <xs:element ref="tns:removeHeaders"/>
+            <xs:element ref="tns:removeProperties"/>
+            <xs:element ref="tns:removeProperty"/>
+            <xs:element ref="tns:resequence"/>
+            <xs:element ref="tns:rollback"/>
+            <xs:element ref="tns:route"/>
+            <xs:element ref="tns:routingSlip"/>
+            <xs:element ref="tns:saga"/>
+            <xs:element ref="tns:sample"/>
+            <xs:element ref="tns:script"/>
+            <xs:element ref="tns:setBody"/>
+            <xs:element ref="tns:setExchangePattern"/>
+            <xs:element ref="tns:setHeader"/>
+            <xs:element ref="tns:setProperty"/>
+            <xs:element ref="tns:sort"/>
+            <xs:element ref="tns:split"/>
+            <xs:element ref="tns:step"/>
+            <xs:element ref="tns:stop"/>
+            <xs:element ref="tns:threads"/>
+            <xs:element ref="tns:throttle"/>
+            <xs:element ref="tns:throwException"/>
+            <xs:element ref="tns:to"/>
+            <xs:element ref="tns:toD"/>
+            <xs:element ref="tns:transacted"/>
+            <xs:element ref="tns:transform"/>
+            <xs:element ref="tns:doTry"/>
+            <xs:element ref="tns:unmarshal"/>
+            <xs:element ref="tns:validate"/>
+            <xs:element ref="tns:whenSkipSendToEndpoint"/>
+            <xs:element ref="tns:wireTap"/>
+            <xs:element ref="tns:serviceCall"/>
+          </xs:choice>
+        </xs:sequence>
+        <xs:attribute name="messageIdRepositoryRef" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the reference name of the message id repository
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="eager" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets whether to eagerly add the key to the idempotent repository or wait until
+the exchange is complete. Eager is default enabled. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="completionEager" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets whether to complete the idempotent consumer eager or when the exchange is
+done. If this option is true to complete eager, then the idempotent consumer
+will trigger its completion when the exchange reached the end of the block of
+the idempotent consumer pattern. So if the exchange is continued routed after
+the block ends, then whatever happens there does not affect the state. If this
+option is false (default) to not complete eager, then the idempotent consumer
+will complete when the exchange is done being routed. So if the exchange is
+continued routed after the block ends, then whatever happens there also affect
+the state. For example if the exchange failed due to an exception, then the
+state of the idempotent consumer will be a rollback. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="skipDuplicate" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets whether to skip duplicates or not. The default behavior is to skip
+duplicates. A duplicate message would have the Exchange property
+org.apache.camel.Exchange#DUPLICATE_MESSAGE set to a Boolean#TRUE value. A none
+duplicate message will not have this property set. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="removeOnFailure" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets whether to remove or keep the key on failure. The default behavior is to
+remove the key on failure. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="inOnlyDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:sendDefinition">
+        <xs:sequence/>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType abstract="true" name="sendDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:noOutputDefinition">
+        <xs:sequence/>
+        <xs:attribute name="uri" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the uri of the endpoint to send to.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="inOutDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:sendDefinition">
+        <xs:sequence/>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="inputTypeDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:optionalIdentifiedDefinition">
+        <xs:sequence/>
+        <xs:attribute name="urn" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Set input type URN.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="validate" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Set if validation is required for this input type. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="interceptDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:output">
+        <xs:sequence/>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="interceptFromDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:interceptDefinition">
+        <xs:sequence/>
+        <xs:attribute name="uri" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Intercept incoming messages from the uri or uri pattern. If this option is not
+configured, then all incoming messages is intercepted.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="interceptSendToEndpointDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:output">
+        <xs:sequence/>
+        <xs:attribute name="uri" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Intercept sending to the uri or uri pattern.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="skipSendToOriginalEndpoint" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If set to true then the message is not sent to the original endpoint. By default
+(false) the message is both intercepted and then sent to the original endpoint.
+Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="afterUri" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+After sending to the endpoint then send the message to this uri which allows to
+process its result.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="loadBalanceDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:sequence>
+          <xs:choice minOccurs="0">
+            <xs:element ref="tns:failover"/>
+            <xs:element ref="tns:random"/>
+            <xs:element ref="tns:customLoadBalancer"/>
+            <xs:element ref="tns:roundRobin"/>
+            <xs:element ref="tns:sticky"/>
+            <xs:element ref="tns:topic"/>
+            <xs:element ref="tns:weighted"/>
+          </xs:choice>
+          <xs:choice maxOccurs="unbounded" minOccurs="0">
+            <xs:element ref="tns:aggregate"/>
+            <xs:element ref="tns:bean"/>
+            <xs:element ref="tns:doCatch"/>
+            <xs:element ref="tns:when"/>
+            <xs:element ref="tns:choice"/>
+            <xs:element ref="tns:otherwise"/>
+            <xs:element ref="tns:claimCheck"/>
+            <xs:element ref="tns:convertBodyTo"/>
+            <xs:element ref="tns:delay"/>
+            <xs:element ref="tns:dynamicRouter"/>
+            <xs:element ref="tns:enrich"/>
+            <xs:element ref="tns:filter"/>
+            <xs:element ref="tns:doFinally"/>
+            <xs:element ref="tns:hystrix"/>
+            <xs:element ref="tns:idempotentConsumer"/>
+            <xs:element ref="tns:inOnly"/>
+            <xs:element ref="tns:inOut"/>
+            <xs:element ref="tns:intercept"/>
+            <xs:element ref="tns:interceptFrom"/>
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+            <xs:element ref="tns:loadBalance"/>
+            <xs:element ref="tns:log"/>
+            <xs:element ref="tns:loop"/>
+            <xs:element ref="tns:marshal"/>
+            <xs:element ref="tns:multicast"/>
+            <xs:element ref="tns:onCompletion"/>
+            <xs:element ref="tns:onException"/>
+            <xs:element ref="tns:onFallback"/>
+            <xs:element ref="tns:pipeline"/>
+            <xs:element ref="tns:policy"/>
+            <xs:element ref="tns:pollEnrich"/>
+            <xs:element ref="tns:process"/>
+            <xs:element ref="tns:recipientList"/>
+            <xs:element ref="tns:removeHeader"/>
+            <xs:element ref="tns:removeHeaders"/>
+            <xs:element ref="tns:removeProperties"/>
+            <xs:element ref="tns:removeProperty"/>
+            <xs:element ref="tns:resequence"/>
+            <xs:element ref="tns:rollback"/>
+            <xs:element ref="tns:route"/>
+            <xs:element ref="tns:routingSlip"/>
+            <xs:element ref="tns:saga"/>
+            <xs:element ref="tns:sample"/>
+            <xs:element ref="tns:script"/>
+            <xs:element ref="tns:setBody"/>
+            <xs:element ref="tns:setExchangePattern"/>
+            <xs:element ref="tns:setHeader"/>
+            <xs:element ref="tns:setProperty"/>
+            <xs:element ref="tns:sort"/>
+            <xs:element ref="tns:split"/>
+            <xs:element ref="tns:step"/>
+            <xs:element ref="tns:stop"/>
+            <xs:element ref="tns:threads"/>
+            <xs:element ref="tns:throttle"/>
+            <xs:element ref="tns:throwException"/>
+            <xs:element ref="tns:to"/>
+            <xs:element ref="tns:toD"/>
+            <xs:element ref="tns:transacted"/>
+            <xs:element ref="tns:transform"/>
+            <xs:element ref="tns:doTry"/>
+            <xs:element ref="tns:unmarshal"/>
+            <xs:element ref="tns:validate"/>
+            <xs:element ref="tns:whenSkipSendToEndpoint"/>
+            <xs:element ref="tns:wireTap"/>
+            <xs:element ref="tns:serviceCall"/>
+          </xs:choice>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="failoverLoadBalancerDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:loadBalancer">
+        <xs:sequence>
+          <xs:element maxOccurs="unbounded" minOccurs="0" name="exception" type="xs:string"/>
+        </xs:sequence>
+        <xs:attribute name="roundRobin" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether or not the failover load balancer should operate in round robin mode or
+not. If not, then it will always start from the first endpoint when a new
+message is to be processed. In other words it restart from the top for every
+message. If round robin is enabled, then it keeps state and will continue with
+the next endpoint in a round robin fashion. You can also enable sticky mode
+together with round robin, if so then it will pick the last known good endpoint
+to use when starting the load balancing (instead of using the next when
+starting). Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="sticky" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether or not the failover load balancer should operate in sticky mode or not.
+If not, then it will always start from the first endpoint when a new message is
+to be processed. In other words it restart from the top for every message. If
+sticky is enabled, then it keeps state and will continue with the last known
+good endpoint. You can also enable sticky mode together with round robin, if so
+then it will pick the last known good endpoint to use when starting the load
+balancing (instead of using the next when starting). Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="maximumFailoverAttempts" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+A value to indicate after X failover attempts we should exhaust (give up). Use
+-1 to indicate never give up and continuously try to failover. Use 0 to never
+failover. And use e.g. 3 to failover at most 3 times before giving up. his
+option can be used whether or not roundRobin is enabled or not. Default value:
+-1
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="loadBalancer">
+    <xs:complexContent>
+      <xs:extension base="tns:identifiedType">
+        <xs:sequence/>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="randomLoadBalancerDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:loadBalancer">
+        <xs:sequence/>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="customLoadBalancerDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:loadBalancer">
+        <xs:sequence/>
+        <xs:attribute name="ref" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Refers to the custom load balancer to lookup from the registry
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="roundRobinLoadBalancerDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:loadBalancer">
+        <xs:sequence/>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="stickyLoadBalancerDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:loadBalancer">
+        <xs:sequence>
+          <xs:element name="correlationExpression" type="tns:expressionSubElementDefinition"/>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="topicLoadBalancerDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:loadBalancer">
+        <xs:sequence/>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="weightedLoadBalancerDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:loadBalancer">
+        <xs:sequence/>
+        <xs:attribute name="roundRobin" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To enable round robin mode. By default the weighted distribution mode is used.
+The default value is false. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="distributionRatio" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The distribution ratio is a delimited String consisting on integer weights
+separated by delimiters for example 2,3,5. The distributionRatio must match the
+number of endpoints and/or processors specified in the load balancer list.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="distributionRatioDelimiter" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Delimiter used to specify the distribution ratio. The default value is ,.
+Default value: ,
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="logDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:noOutputDefinition">
+        <xs:sequence/>
+        <xs:attribute name="message" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the log message (uses simple language)
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="loggingLevel" type="tns:loggingLevel">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the logging level. The default value is INFO. Default value: INFO
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="logName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the name of the logger
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="marker" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To use slf4j marker
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="loggerRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To refer to a custom logger instance to lookup from the registry.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="loopDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:sequence>
+          <xs:choice>
+            <xs:element ref="tns:expressionDefinition"/>
+            <xs:element ref="tns:constant"/>
+            <xs:element ref="tns:exchangeProperty"/>
+            <xs:element ref="tns:groovy"/>
+            <xs:element ref="tns:header"/>
+            <xs:element ref="tns:hl7terser"/>
+            <xs:element ref="tns:jsonpath"/>
+            <xs:element ref="tns:language"/>
+            <xs:element ref="tns:method"/>
+            <xs:element ref="tns:mvel"/>
+            <xs:element ref="tns:ognl"/>
+            <xs:element ref="tns:ref"/>
+            <xs:element ref="tns:simple"/>
+            <xs:element ref="tns:spel"/>
+            <xs:element ref="tns:tokenize"/>
+            <xs:element ref="tns:xtokenize"/>
+            <xs:element ref="tns:xpath"/>
+            <xs:element ref="tns:xquery"/>
+          </xs:choice>
+          <xs:choice maxOccurs="unbounded" minOccurs="0">
+            <xs:element ref="tns:aggregate"/>
+            <xs:element ref="tns:bean"/>
+            <xs:element ref="tns:doCatch"/>
+            <xs:element ref="tns:when"/>
+            <xs:element ref="tns:choice"/>
+            <xs:element ref="tns:otherwise"/>
+            <xs:element ref="tns:claimCheck"/>
+            <xs:element ref="tns:convertBodyTo"/>
+            <xs:element ref="tns:delay"/>
+            <xs:element ref="tns:dynamicRouter"/>
+            <xs:element ref="tns:enrich"/>
+            <xs:element ref="tns:filter"/>
+            <xs:element ref="tns:doFinally"/>
+            <xs:element ref="tns:hystrix"/>
+            <xs:element ref="tns:idempotentConsumer"/>
+            <xs:element ref="tns:inOnly"/>
+            <xs:element ref="tns:inOut"/>
+            <xs:element ref="tns:intercept"/>
+            <xs:element ref="tns:interceptFrom"/>
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+            <xs:element ref="tns:loadBalance"/>
+            <xs:element ref="tns:log"/>
+            <xs:element ref="tns:loop"/>
+            <xs:element ref="tns:marshal"/>
+            <xs:element ref="tns:multicast"/>
+            <xs:element ref="tns:onCompletion"/>
+            <xs:element ref="tns:onException"/>
+            <xs:element ref="tns:onFallback"/>
+            <xs:element ref="tns:pipeline"/>
+            <xs:element ref="tns:policy"/>
+            <xs:element ref="tns:pollEnrich"/>
+            <xs:element ref="tns:process"/>
+            <xs:element ref="tns:recipientList"/>
+            <xs:element ref="tns:removeHeader"/>
+            <xs:element ref="tns:removeHeaders"/>
+            <xs:element ref="tns:removeProperties"/>
+            <xs:element ref="tns:removeProperty"/>
+            <xs:element ref="tns:resequence"/>
+            <xs:element ref="tns:rollback"/>
+            <xs:element ref="tns:route"/>
+            <xs:element ref="tns:routingSlip"/>
+            <xs:element ref="tns:saga"/>
+            <xs:element ref="tns:sample"/>
+            <xs:element ref="tns:script"/>
+            <xs:element ref="tns:setBody"/>
+            <xs:element ref="tns:setExchangePattern"/>
+            <xs:element ref="tns:setHeader"/>
+            <xs:element ref="tns:setProperty"/>
+            <xs:element ref="tns:sort"/>
+            <xs:element ref="tns:split"/>
+            <xs:element ref="tns:step"/>
+            <xs:element ref="tns:stop"/>
+            <xs:element ref="tns:threads"/>
+            <xs:element ref="tns:throttle"/>
+            <xs:element ref="tns:throwException"/>
+            <xs:element ref="tns:to"/>
+            <xs:element ref="tns:toD"/>
+            <xs:element ref="tns:transacted"/>
+            <xs:element ref="tns:transform"/>
+            <xs:element ref="tns:doTry"/>
+            <xs:element ref="tns:unmarshal"/>
+            <xs:element ref="tns:validate"/>
+            <xs:element ref="tns:whenSkipSendToEndpoint"/>
+            <xs:element ref="tns:wireTap"/>
+            <xs:element ref="tns:serviceCall"/>
+          </xs:choice>
+        </xs:sequence>
+        <xs:attribute name="copy" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If the copy attribute is true, a copy of the input Exchange is used for each
+iteration. That means each iteration will start from a copy of the same message.
+By default loop will loop the same exchange all over, so each iteration may have
+different message content. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="doWhile" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Enables the while loop that loops until the predicate evaluates to false or
+null. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="marshalDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:noOutputDefinition">
+        <xs:sequence>
+          <xs:choice minOccurs="0">
+            <xs:element ref="tns:any23"/>
+            <xs:element ref="tns:asn1"/>
+            <xs:element ref="tns:avro"/>
+            <xs:element ref="tns:barcode"/>
+            <xs:element ref="tns:base64"/>
+            <xs:element ref="tns:beanio"/>
+            <xs:element ref="tns:bindy"/>
+            <xs:element ref="tns:cbor"/>
+            <xs:element ref="tns:crypto"/>
+            <xs:element ref="tns:csv"/>
+            <xs:element name="custom" type="tns:customDataFormat"/>
+            <xs:element ref="tns:fhirJson"/>
+            <xs:element ref="tns:fhirXml"/>
+            <xs:element ref="tns:flatpack"/>
+            <xs:element name="gzip" type="tns:gzipDataFormat"/>
+            <xs:element ref="tns:hl7"/>
+            <xs:element ref="tns:ical"/>
+            <xs:element ref="tns:jacksonxml"/>
+            <xs:element ref="tns:jaxb"/>
+            <xs:element ref="tns:json"/>
+            <xs:element ref="tns:jsonApi"/>
+            <xs:element ref="tns:lzf"/>
+            <xs:element name="mimeMultipart" type="tns:mimeMultipartDataFormat"/>
+            <xs:element ref="tns:protobuf"/>
+            <xs:element ref="tns:rss"/>
+            <xs:element ref="tns:secureXML"/>
+            <xs:element ref="tns:soapjaxb"/>
+            <xs:element ref="tns:syslog"/>
+            <xs:element ref="tns:tarfile"/>
+            <xs:element ref="tns:thrift"/>
+            <xs:element ref="tns:tidyMarkup"/>
+            <xs:element ref="tns:univocity-csv"/>
+            <xs:element ref="tns:univocity-fixed"/>
+            <xs:element ref="tns:univocity-tsv"/>
+            <xs:element ref="tns:xmlrpc"/>
+            <xs:element ref="tns:xstream"/>
+            <xs:element ref="tns:pgp"/>
+            <xs:element ref="tns:yaml"/>
+            <xs:element name="zip" type="tns:zipDeflaterDataFormat"/>
+            <xs:element ref="tns:zipfile"/>
+          </xs:choice>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="any23DataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence>
+          <xs:element minOccurs="0" name="configuration" type="tns:propertyDefinitions"/>
+          <xs:element maxOccurs="unbounded" minOccurs="0" name="extractors" type="xs:string"/>
+        </xs:sequence>
+        <xs:attribute name="outputFormat" type="tns:any23Type">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+What RDF syntax to unmarshal as, can be: NTRIPLES, TURTLE, NQUADS, RDFXML,
+JSONLD, RDFJSON, RDF4JMODEL. It is by default: RDF4JMODEL. Default value:
+RDF4JMODEL
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="baseURI" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The URI to use as base for building RDF entities if only relative paths are
+provided.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="propertyDefinitions">
+    <xs:sequence>
+      <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:property"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="asn1DataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="usingIterator" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If the asn1 file has more then one entry, the setting this option to true,
+allows to work with the splitter EIP, to split the data using an iterator in a
+streaming mode. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="clazzName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Name of class to use when unmarshalling
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="avroDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="instanceClassName" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Class name to use for marshal and unmarshalling
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="barcodeDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="width" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Width of the barcode
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="height" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Height of the barcode
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="imageType" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Image type of the barcode such as png
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="barcodeFormat" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Barcode format such as QR-Code
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="base64DataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="lineLength" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To specific a maximum line length for the encoded data. By default 76 is used.
+Default value: 76
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="lineSeparator" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The line separators to use. Uses new line characters (CRLF) by default.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="urlSafe" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Instead of emitting '' and '/' we emit '-' and '_' respectively. urlSafe is only
+applied to encode operations. Decoding seamlessly handles both modes. Is by
+default false. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="beanioDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="mapping" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The BeanIO mapping file. Is by default loaded from the classpath. You can prefix
+with file:, http:, or classpath: to denote from where to load the mapping file.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="streamName" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The name of the stream to use.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="ignoreUnidentifiedRecords" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to ignore unidentified records. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="ignoreUnexpectedRecords" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to ignore unexpected records. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="ignoreInvalidRecords" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to ignore invalid records. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="encoding" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The charset to use. Is by default the JVM platform default charset.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="beanReaderErrorHandlerType" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To use a custom org.apache.camel.dataformat.beanio.BeanIOErrorHandler as error
+handler while parsing. Configure the fully qualified class name of the error
+handler. Notice the options ignoreUnidentifiedRecords, ignoreUnexpectedRecords,
+and ignoreInvalidRecords may not be in use when you use a custom error handler.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="unmarshalSingleObject" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+This options controls whether to unmarshal as a list of objects or as a single
+object only. The former is the default mode, and the latter is only intended in
+special use-cases where beanio maps the Camel message to a single POJO bean.
+Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="bindyDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="type" type="tns:bindyType" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to use Csv, Fixed, or KeyValue.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="classType" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Name of model class to use.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="locale" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To configure a default locale to use, such as us for united states. To use the
+JVM platform default locale then use the name default
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="unwrapSingleInstance" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+When unmarshalling should a single instance be unwrapped and returned instead of
+wrapped in a java.util.List. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="cborDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="objectMapper" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Lookup and use the existing CBOR ObjectMapper with the given id when using
+Jackson.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="useDefaultObjectMapper" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to lookup and use default Jackson CBOR ObjectMapper from the registry.
+Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="unmarshalTypeName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Class name of the java type to use when unarmshalling
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="collectionTypeName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Refers to a custom collection type to lookup in the registry to use. This option
+should rarely be used, but allows to use different collection types than
+java.util.Collection based as default.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="useList" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To unarmshal to a List of Map or a List of Pojo. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="allowUnmarshallType" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If enabled then Jackson CBOR is allowed to attempt to use the
+CamelCBORUnmarshalType header during the unmarshalling. This should only be
+enabled when desired to be used. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="prettyPrint" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To enable pretty printing output nicely formatted. Is by default false. Default
+value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="allowJmsType" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Used for JMS users to allow the JMSType header from the JMS spec to specify a
+FQN classname to use to unmarshal to. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="enableFeatures" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Set of features to enable on the Jackson
+com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that
+matches a enum from com.fasterxml.jackson.databind.SerializationFeature,
+com.fasterxml.jackson.databind.DeserializationFeature, or
+com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated
+by comma
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="disableFeatures" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Set of features to disable on the Jackson
+com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that
+matches a enum from com.fasterxml.jackson.databind.SerializationFeature,
+com.fasterxml.jackson.databind.DeserializationFeature, or
+com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated
+by comma
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="cryptoDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="algorithm" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The JCE algorithm name indicating the cryptographic algorithm that will be used.
+Is by default DES/CBC/PKCS5Padding. Default value: DES/CBC/PKCS5Padding
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="cryptoProvider" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The name of the JCE Security Provider that should be used.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="keyRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Refers to the secret key to lookup from the register to use.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="initVectorRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Refers to a byte array containing the Initialization Vector that will be used to
+initialize the Cipher.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="algorithmParameterRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+A JCE AlgorithmParameterSpec used to initialize the Cipher. Will lookup the type
+using the given name as a java.security.spec.AlgorithmParameterSpec type.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="buffersize" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The size of the buffer used in the signature process.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="macAlgorithm" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The JCE algorithm name indicating the Message Authentication algorithm. Default
+value: HmacSHA1
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="shouldAppendHMAC" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Flag indicating that a Message Authentication Code should be calculated and
+appended to the encrypted data. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="inline" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Flag indicating that the configured IV should be inlined into the encrypted data
+stream. Is by default false. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="csvDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence>
+          <xs:element maxOccurs="unbounded" minOccurs="0" name="header" type="xs:string"/>
+        </xs:sequence>
+        <xs:attribute name="formatRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The reference format to use, it will be updated with the other format options,
+the default value is CSVFormat.DEFAULT
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="formatName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The name of the format to use, the default value is CSVFormat.DEFAULT
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="commentMarkerDisabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Disables the comment marker of the reference format. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="commentMarker" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the comment marker of the reference format.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="delimiter" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the delimiter to use. The default value is , (comma)
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="escapeDisabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Use for disabling using escape character. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="escape" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the escape character to use
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="headerDisabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Use for disabling headers. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="allowMissingColumnNames" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to allow missing column names. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="ignoreEmptyLines" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to ignore empty lines. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="ignoreSurroundingSpaces" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to ignore surrounding spaces. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="nullStringDisabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Used to disable null strings. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="nullString" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the null string
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="quoteDisabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Used to disable quotes. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="quote" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the quote which by default is
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="recordSeparatorDisabled" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Used for disabling record separator
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="recordSeparator" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the record separator (aka new line) which by default is new line characters
+(CRLF)
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="skipHeaderRecord" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to skip the header record in the output. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="quoteMode" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the quote mode
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="ignoreHeaderCase" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets whether or not to ignore case when accessing header names. Default value:
+false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="trim" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets whether or not to trim leading and trailing blanks. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="trailingDelimiter" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets whether or not to add a trailing delimiter. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="marshallerFactoryRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the implementation of the CsvMarshallerFactory interface which is able to
+customize marshalling/unmarshalling behavior by extending CsvMarshaller or
+creating it from scratch.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="lazyLoad" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether the unmarshalling should produce an iterator that reads the lines on the
+fly or if all the lines must be read at one. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="useMaps" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether the unmarshalling should produce maps (HashMap)for the lines values
+instead of lists. It requires to have header (either defined or collected).
+Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="useOrderedMaps" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether the unmarshalling should produce ordered maps (LinkedHashMap) for the
+lines values instead of lists. It requires to have header (either defined or
+collected). Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="recordConverterRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Refers to a custom CsvRecordConverter to lookup from the registry to use.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="customDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="ref" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Reference to the custom org.apache.camel.spi.DataFormat to lookup from the Camel
+registry.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="fhirJsonDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:fhirDataformat">
+        <xs:sequence/>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType abstract="true" name="fhirDataformat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="fhirVersion" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The version of FHIR to use. Possible values are:
+DSTU2,DSTU2_HL7ORG,DSTU2_1,DSTU3,R4. Default value: DSTU3
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="prettyPrint" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the pretty print flag, meaning that the parser will encode resources with
+human-readable spacing and newlines between elements instead of condensing
+output as much as possible. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="serverBaseUrl" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the server's base URL used by this parser. If a value is set, resource
+references will be turned into relative references if they are provided as
+absolute URLs but have a base matching the given base.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="omitResourceId" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If set to true (default is false) the ID of any resources being encoded will not
+be included in the output. Note that this does not apply to contained resources,
+only to root resources. In other words, if this is set to true, contained
+resources will still have local IDs but the outer/containing ID will not have an
+ID. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="encodeElementsAppliesToChildResourcesOnly" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If set to true (default is false), the values supplied to setEncodeElements(Set)
+will not be applied to the root resource (typically a Bundle), but will be
+applied to any sub-resources contained within it (i.e. search result resources
+in that bundle). Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="encodeElements">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If provided, specifies the elements which should be encoded, to the exclusion of
+all others. Valid values for this field would include: Patient - Encode patient
+and all its children Patient.name - Encode only the patient's name
+Patient.name.family - Encode only the patient's family name .text - Encode the
+text element on any resource (only the very first position may contain a
+wildcard) .(mandatory) - This is a special case which causes any mandatory
+fields (min 0) to be encoded
+            ]]></xs:documentation>
+          </xs:annotation>
+          <xs:simpleType>
+            <xs:list itemType="xs:string"/>
+          </xs:simpleType>
+        </xs:attribute>
+        <xs:attribute name="dontEncodeElements">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If provided, specifies the elements which should NOT be encoded. Valid values
+for this field would include: Patient - Don't encode patient and all its
+children Patient.name - Don't encode the patient's name Patient.name.family -
+Don't encode the patient's family name .text - Don't encode the text element on
+any resource (only the very first position may contain a wildcard) DSTU2 note:
+Note that values including meta, such as Patient.meta will work for DSTU2
+parsers, but values with subelements on meta such as Patient.meta.lastUpdated
+will only work in DSTU3 mode.
+            ]]></xs:documentation>
+          </xs:annotation>
+          <xs:simpleType>
+            <xs:list itemType="xs:string"/>
+          </xs:simpleType>
+        </xs:attribute>
+        <xs:attribute name="stripVersionsFromReferences" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If set to true (which is the default), resource references containing a version
+will have the version removed when the resource is encoded. This is generally
+good behaviour because in most situations, references from one resource to
+another should be to the resource by ID, not by ID and version. In some cases
+though, it may be desirable to preserve the version in resource links. In that
+case, this value should be set to false. This method provides the ability to
+globally disable reference encoding. If finer-grained control is needed, use
+setDontStripVersionsFromReferencesAtPaths(List). Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="overrideResourceIdWithBundleEntryFullUrl" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If set to true (which is the default), the Bundle.entry.fullUrl will override
+the Bundle.entry.resource's resource id if the fullUrl is defined. This behavior
+happens when parsing the source data into a Bundle object. Set this to false if
+this is not the desired behavior (e.g. the client code wishes to perform
+additional validation checks between the fullUrl and the resource id). Default
+value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="summaryMode" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If set to true (default is false) only elements marked by the FHIR specification
+as being summary elements will be included. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="suppressNarratives" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If set to true (default is false), narratives will not be included in the
+encoded values. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="dontStripVersionsFromReferencesAtPaths">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If supplied value(s), any resource references at the specified paths will have
+their resource versions encoded instead of being automatically stripped during
+the encoding process. This setting has no effect on the parsing process. This
+method provides a finer-grained level of control than
+setStripVersionsFromReferences(Boolean) and any paths specified by this method
+will be encoded even if setStripVersionsFromReferences(Boolean) has been set to
+true (which is the default)
+            ]]></xs:documentation>
+          </xs:annotation>
+          <xs:simpleType>
+            <xs:list itemType="xs:string"/>
+          </xs:simpleType>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="fhirXmlDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:fhirDataformat">
+        <xs:sequence/>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="flatpackDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="definition" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The flatpack pzmap configuration file. Can be omitted in simpler situations, but
+its preferred to use the pzmap.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="fixed" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Delimited or fixed. Is by default false = delimited. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="ignoreFirstRecord" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether the first line is ignored for delimited files (for the column headers).
+Is by default true. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="textQualifier" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If the text is qualified with a character. Uses quote character by default.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="delimiter" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The delimiter char (could be ; , or similar). Default value: ,
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="allowShortLines" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Allows for lines to be shorter than expected and ignores the extra characters.
+Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="ignoreExtraColumns" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Allows for lines to be longer than expected and ignores the extra characters.
+Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="parserFactoryRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+References to a custom parser factory to lookup in the registry
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="gzipDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="hl7DataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="validate" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to validate the HL7 message Is by default true. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="icalDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="validating" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to validate. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="jacksonXMLDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="xmlMapper" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Lookup and use the existing XmlMapper with the given id.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="prettyPrint" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To enable pretty printing output nicely formatted. Is by default false. Default
+value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="unmarshalTypeName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Class name of the java type to use when unarmshalling
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="jsonView" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+When marshalling a POJO to JSON you might want to exclude certain fields from
+the JSON output. With Jackson you can use JSON views to accomplish this. This
+option is to refer to the class which has JsonView annotations
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="include" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If you want to marshal a pojo to JSON, and the pojo has some fields with null
+values. And you want to skip these null values, you can set this option to
+NON_NULL
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="allowJmsType" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Used for JMS users to allow the JMSType header from the JMS spec to specify a
+FQN classname to use to unmarshal to. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="collectionTypeName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Refers to a custom collection type to lookup in the registry to use. This option
+should rarely be used, but allows to use different collection types than
+java.util.Collection based as default.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="useList" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To unarmshal to a List of Map or a List of Pojo. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="enableJaxbAnnotationModule" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to enable the JAXB annotations module when using jackson. When enabled
+then JAXB annotations can be used by Jackson. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="moduleClassNames" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To use custom Jackson modules com.fasterxml.jackson.databind.Module specified as
+a String with FQN class names. Multiple classes can be separated by comma.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="moduleRefs" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To use custom Jackson modules referred from the Camel registry. Multiple modules
+can be separated by comma.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="enableFeatures" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Set of features to enable on the Jackson
+com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that
+matches a enum from com.fasterxml.jackson.databind.SerializationFeature,
+com.fasterxml.jackson.databind.DeserializationFeature, or
+com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated
+by comma
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="disableFeatures" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Set of features to disable on the Jackson
+com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that
+matches a enum from com.fasterxml.jackson.databind.SerializationFeature,
+com.fasterxml.jackson.databind.DeserializationFeature, or
+com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated
+by comma
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="allowUnmarshallType" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If enabled then Jackson is allowed to attempt to use the
+CamelJacksonUnmarshalType header during the unmarshalling. This should only be
+enabled when desired to be used. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="jaxbDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="contextPath" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Package name where your JAXB classes are located.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="schema" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To validate against an existing schema. Your can use the prefix classpath:,
+file: or http: to specify how the resource should by resolved. You can separate
+multiple schema files by using the ',' character.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="schemaSeverityLevel" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the schema severity level to use when validating against a schema. This
+level determines the minimum severity error that triggers JAXB to stop continue
+parsing. The default value of 0 (warning) means that any error (warning, error
+or fatal error) will trigger JAXB to stop. There are the following three levels:
+0=warning, 1=error, 2=fatal error. Default value: 0
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="prettyPrint" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To enable pretty printing output nicely formatted. Is by default false. Default
+value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="objectFactory" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to allow using ObjectFactory classes to create the POJO classes during
+marshalling. This only applies to POJO classes that has not been annotated with
+JAXB and providing jaxb.index descriptor files. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="ignoreJAXBElement" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to ignore JAXBElement elements - only needed to be set to false in very
+special use-cases. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="mustBeJAXBElement" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether marhsalling must be java objects with JAXB annotations. And if not then
+it fails. This option can be set to false to relax that, such as when the data
+is already in XML format. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="filterNonXmlChars" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To ignore non xml characheters and replace them with an empty space. Default
+value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="encoding" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To overrule and use a specific encoding
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="fragment" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To turn on marshalling XML fragment trees. By default JAXB looks for
+XmlRootElement annotation on given class to operate on whole XML tree. This is
+useful but not always - sometimes generated code does not have XmlRootElement
+annotation, sometimes you need unmarshall only part of tree. In that case you
+can use partial unmarshalling. To enable this behaviours you need set property
+partClass. Camel will pass this class to JAXB's unmarshaler. Default value:
+false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="partClass" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Name of class used for fragment parsing. See more details at the fragment
+option.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="partNamespace" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+XML namespace to use for fragment parsing. See more details at the fragment
+option.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="namespacePrefixRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+When marshalling using JAXB or SOAP then the JAXB implementation will automatic
+assign namespace prefixes, such as ns2, ns3, ns4 etc. To control this mapping,
+Camel allows you to refer to a map which contains the desired mapping.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="xmlStreamWriterWrapper" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To use a custom xml stream writer.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="schemaLocation" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To define the location of the schema
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="noNamespaceSchemaLocation" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To define the location of the namespaceless schema
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="jaxbProviderProperties" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Refers to a custom java.util.Map to lookup in the registry containing custom
+JAXB provider properties to be used with the JAXB marshaller.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="jsonDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="objectMapper" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Lookup and use the existing ObjectMapper with the given id when using Jackson.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="useDefaultObjectMapper" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to lookup and use default Jackson ObjectMapper from the registry.
+Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="prettyPrint" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To enable pretty printing output nicely formatted. Is by default false. Default
+value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="library" type="tns:jsonLibrary">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Which json library to use. Default value: Jackson
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="unmarshalTypeName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Class name of the java type to use when unarmshalling
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="jsonView" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+When marshalling a POJO to JSON you might want to exclude certain fields from
+the JSON output. With Jackson you can use JSON views to accomplish this. This
+option is to refer to the class which has JsonView annotations
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="include" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If you want to marshal a pojo to JSON, and the pojo has some fields with null
+values. And you want to skip these null values, you can set this option to
+NON_NULL
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="allowJmsType" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Used for JMS users to allow the JMSType header from the JMS spec to specify a
+FQN classname to use to unmarshal to. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="collectionTypeName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Refers to a custom collection type to lookup in the registry to use. This option
+should rarely be used, but allows to use different collection types than
+java.util.Collection based as default.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="useList" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To unarmshal to a List of Map or a List of Pojo. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="enableJaxbAnnotationModule" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to enable the JAXB annotations module when using jackson. When enabled
+then JAXB annotations can be used by Jackson. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="moduleClassNames" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To use custom Jackson modules com.fasterxml.jackson.databind.Module specified as
+a String with FQN class names. Multiple classes can be separated by comma.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="moduleRefs" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To use custom Jackson modules referred from the Camel registry. Multiple modules
+can be separated by comma.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="enableFeatures" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Set of features to enable on the Jackson
+com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that
+matches a enum from com.fasterxml.jackson.databind.SerializationFeature,
+com.fasterxml.jackson.databind.DeserializationFeature, or
+com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated
+by comma
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="disableFeatures" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Set of features to disable on the Jackson
+com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that
+matches a enum from com.fasterxml.jackson.databind.SerializationFeature,
+com.fasterxml.jackson.databind.DeserializationFeature, or
+com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated
+by comma
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="permissions" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Adds permissions that controls which Java packages and classes XStream is
+allowed to use during unmarshal from xml/json to Java beans. A permission must
+be configured either here or globally using a JVM system property. The
+permission can be specified in a syntax where a plus sign is allow, and minus
+sign is deny. Wildcards is supported by using . as prefix. For example to allow
+com.foo and all subpackages then specfy com.foo.. Multiple permissions can be
+configured separated by comma, such as com.foo.,-com.foo.bar.MySecretBean. The
+following default permission is always included: -,java.lang.,java.util. unless
+its overridden by specifying a JVM system property with they key
+org.apache.camel.xstream.permissions.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="allowUnmarshallType" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If enabled then Jackson is allowed to attempt to use the
+CamelJacksonUnmarshalType header during the unmarshalling. This should only be
+enabled when desired to be used. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="timezone" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If set then Jackson will use the Timezone when marshalling/unmarshalling. This
+option will have no effect on the others Json DataFormat, like gson, fastjson
+and xstream.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="jsonApiDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="dataFormatTypes">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The classes to take into account for the marshalling
+            ]]></xs:documentation>
+          </xs:annotation>
+          <xs:simpleType>
+            <xs:list itemType="xs:string"/>
+          </xs:simpleType>
+        </xs:attribute>
+        <xs:attribute name="mainFormatType" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The classes to take into account while unmarshalling
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="lzfDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="usingParallelCompression" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Enable encoding (compress) using multiple processing cores. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="mimeMultipartDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="multipartSubType" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Specify the subtype of the MIME Multipart. Default is mixed. Default value:
+mixed
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="multipartWithoutAttachment" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Defines whether a message without attachment is also marshaled into a MIME
+Multipart (with only one body part). Default is false. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="headersInline" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Defines whether the MIME-Multipart headers are part of the message body (true)
+or are set as Camel headers (false). Default is false. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="includeHeaders" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+A regex that defines which Camel headers are also included as MIME headers into
+the MIME multipart. This will only work if headersInline is set to true. Default
+is to include no headers
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="binaryContent" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Defines whether the content of binary parts in the MIME multipart is binary
+(true) or Base-64 encoded (false) Default is false. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="protobufDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="instanceClass" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Name of class to use when unarmshalling
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="contentTypeFormat" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Defines a content type format in which protobuf message will be
+serialized/deserialized from(to) the Java been. The format can either be native
+or json for either native protobuf or json fields representation. The default
+value is native. Default value: native
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="rssDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="xmlSecurityDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="xmlCipherAlgorithm" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The cipher algorithm to be used for encryption/decryption of the XML message
+content. The available choices are: XMLCipher.TRIPLEDES XMLCipher.AES_128
+XMLCipher.AES_128_GCM XMLCipher.AES_192 XMLCipher.AES_192_GCM XMLCipher.AES_256
+XMLCipher.AES_256_GCM XMLCipher.SEED_128 XMLCipher.CAMELLIA_128
+XMLCipher.CAMELLIA_192 XMLCipher.CAMELLIA_256 The default value is
+MLCipher.TRIPLEDES. Default value: TRIPLEDES
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="passPhrase" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+A String used as passPhrase to encrypt/decrypt content. The passPhrase has to be
+provided. If no passPhrase is specified, a default passPhrase is used. The
+passPhrase needs to be put together in conjunction with the appropriate
+encryption algorithm. For example using TRIPLEDES the passPhase can be a Only
+another 24 Byte key
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="passPhraseByte" type="xs:base64Binary">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+A byte used as passPhrase to encrypt/decrypt content. The passPhrase has to be
+provided. If no passPhrase is specified, a default passPhrase is used. The
+passPhrase needs to be put together in conjunction with the appropriate
+encryption algorithm. For example using TRIPLEDES the passPhase can be a Only
+another 24 Byte key
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="secureTag" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The XPath reference to the XML Element selected for encryption/decryption. If no
+tag is specified, the entire payload is encrypted/decrypted.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="secureTagContents" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+A boolean value to specify whether the XML Element is to be encrypted or the
+contents of the XML Element false = Element Level true = Element Content Level.
+Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="keyCipherAlgorithm" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The cipher algorithm to be used for encryption/decryption of the asymmetric key.
+The available choices are: XMLCipher.RSA_v1dot5 XMLCipher.RSA_OAEP
+XMLCipher.RSA_OAEP_11 The default value is XMLCipher.RSA_OAEP. Default value:
+RSA_OAEP
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="recipientKeyAlias" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The key alias to be used when retrieving the recipient's public or private key
+from a KeyStore when performing asymmetric key encryption or decryption.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="keyOrTrustStoreParametersRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Refers to a KeyStore instance to lookup in the registry, which is used for
+configuration options for creating and loading a KeyStore instance that
+represents the sender's trustStore or recipient's keyStore.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="keyPassword" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The password to be used for retrieving the private key from the KeyStore. This
+key is used for asymmetric decryption.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="digestAlgorithm" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The digest algorithm to use with the RSA OAEP algorithm. The available choices
+are: XMLCipher.SHA1 XMLCipher.SHA256 XMLCipher.SHA512 The default value is
+XMLCipher.SHA1. Default value: SHA1
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="mgfAlgorithm" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The MGF Algorithm to use with the RSA OAEP algorithm. The available choices are:
+EncryptionConstants.MGF1_SHA1 EncryptionConstants.MGF1_SHA256
+EncryptionConstants.MGF1_SHA512 The default value is
+EncryptionConstants.MGF1_SHA1. Default value: MGF1_SHA1
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="addKeyValueForEncryptedKey" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to add the public key used to encrypt the session key as a KeyValue in
+the EncryptedKey structure or not. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="soapJaxbDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="contextPath" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Package name where your JAXB classes are located.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="encoding" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To overrule and use a specific encoding
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="elementNameStrategyRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Refers to an element strategy to lookup from the registry. An element name
+strategy is used for two purposes. The first is to find a xml element name for a
+given object and soap action when marshaling the object into a SOAP message. The
+second is to find an Exception class for a given soap fault name. The following
+three element strategy class name is provided out of the box. QNameStrategy -
+Uses a fixed qName that is configured on instantiation. Exception lookup is not
+supported TypeNameStrategy - Uses the name and namespace from the XMLType
+annotation of the given type. If no namespace is set then package-info is used.
+Exception lookup is not supported ServiceInterfaceStrategy - Uses information
+from a webservice interface to determine the type name and to find the exception
+class for a SOAP fault All three classes is located in the package name
+org.apache.camel.dataformat.soap.name If you have generated the web service stub
+code with cxf-codegen or a similar tool then you probably will want to use the
+ServiceInterfaceStrategy. In the case you have no annotated service interface
+you should use QNameStrategy or TypeNameStrategy.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="version" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+SOAP version should either be 1.1 or 1.2. Is by default 1.1. Default value: 1.1
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="namespacePrefixRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+When marshalling using JAXB or SOAP then the JAXB implementation will automatic
+assign namespace prefixes, such as ns2, ns3, ns4 etc. To control this mapping,
+Camel allows you to refer to a map which contains the desired mapping.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="schema" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To validate against an existing schema. Your can use the prefix classpath:,
+file: or http: to specify how the resource should by resolved. You can separate
+multiple schema files by using the ',' character.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="syslogDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tarFileDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="usingIterator" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If the tar file has more then one entry, the setting this option to true, allows
+to work with the splitter EIP, to split the data using an iterator in a
+streaming mode. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="allowEmptyDirectory" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If the tar file has more then one entry, setting this option to true, allows to
+get the iterator even if the directory is empty. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="preservePathElements" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If the file name contains path elements, setting this option to true, allows the
+path to be maintained in the tar file. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="thriftDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="instanceClass" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Name of class to use when unarmshalling
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="contentTypeFormat" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Defines a content type format in which thrift message will be
+serialized/deserialized from(to) the Java been. The format can either be native
+or json for either native binary thrift, json or simple json fields
+representation. The default value is binary. Default value: binary
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tidyMarkupDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="dataObjectType" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+What data type to unmarshal as, can either be org.w3c.dom.Node or
+java.lang.String. Is by default org.w3c.dom.Node. Default value:
+org.w3c.dom.Node
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="omitXmlDeclaration" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+When returning a String, do we omit the XML declaration in the top. Default
+value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="uniVocityCsvDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:uniVocityAbstractDataFormat">
+        <xs:sequence/>
+        <xs:attribute name="quoteAllFields" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether or not all values must be quoted when writing them. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="quote" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The quote symbol. Default value: "
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="quoteEscape" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The quote escape symbol. Default value: "
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="delimiter" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The delimiter of values. Default value: ,
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType abstract="true" name="uniVocityAbstractDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence>
+          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:univocity-header"/>
+        </xs:sequence>
+        <xs:attribute name="nullValue" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The string representation of a null value. The default value is null
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="skipEmptyLines" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether or not the empty lines must be ignored. The default value is true.
+Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="ignoreTrailingWhitespaces" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether or not the trailing white spaces must ignored. The default value is
+true. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="ignoreLeadingWhitespaces" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether or not the leading white spaces must be ignored. The default value is
+true. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="headersDisabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether or not the headers are disabled. When defined, this option explicitly
+sets the headers as null which indicates that there is no header. The default
+value is false. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="headerExtractionEnabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether or not the header must be read in the first line of the test document
+The default value is false. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="numberOfRecordsToRead" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The maximum number of record to read.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="emptyValue" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The String representation of an empty value
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="lineSeparator" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The line separator of the files The default value is to use the JVM platform
+line separator
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="normalizedLineSeparator" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The normalized line separator of the files The default value is a new line
+character. Default value: 
+
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="comment" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The comment symbol. The default value is #. Default value: #
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="lazyLoad" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether the unmarshalling should produce an iterator that reads the lines on the
+fly or if all the lines must be read at one. The default value is false. Default
+value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="asMap" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether the unmarshalling should produce maps for the lines values instead of
+lists. It requires to have header (either defined or collected). The default
+value is false. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="uniVocityHeader">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:attribute name="length" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Header length
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:complexType name="uniVocityFixedWidthDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:uniVocityAbstractDataFormat">
+        <xs:sequence/>
+        <xs:attribute name="skipTrailingCharsUntilNewline" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether or not the trailing characters until new line must be ignored. The
+default value is false. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="recordEndsOnNewline" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether or not the record ends on new line. The default value is false. Default
+value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="padding" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The padding character. The default value is a space
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="uniVocityTsvDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:uniVocityAbstractDataFormat">
+        <xs:sequence/>
+        <xs:attribute name="escapeChar" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The escape character. Default value: \
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="xmlRpcDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="request" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to marshal/unmarshal request or response Is by default false. Default
+value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="xStreamDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence>
+          <xs:element minOccurs="0" name="converters" type="tns:converterList"/>
+          <xs:element minOccurs="0" name="aliases" type="tns:aliasList"/>
+          <xs:element minOccurs="0" name="omitFields" type="tns:omitFieldList"/>
+          <xs:element minOccurs="0" name="implicitCollections" type="tns:implicitCollectionList"/>
+        </xs:sequence>
+        <xs:attribute name="permissions" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Adds permissions that controls which Java packages and classes XStream is
+allowed to use during unmarshal from xml/json to Java beans. A permission must
+be configured either here or globally using a JVM system property. The
+permission can be specified in a syntax where a plus sign is allow, and minus
+sign is deny. Wildcards is supported by using . as prefix. For example to allow
+com.foo and all subpackages then specfy com.foo.. Multiple permissions can be
+configured separated by comma, such as com.foo.,-com.foo.bar.MySecretBean. The
+following default permission is always included: -,java.lang.,java.util. unless
+its overridden by specifying a JVM system property with they key
+org.apache.camel.xstream.permissions.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="encoding" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the encoding to use
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="driver" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To use a custom XStream driver. The instance must be of type
+com.thoughtworks.xstream.io.HierarchicalStreamDriver
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="driverRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To refer to a custom XStream driver to lookup in the registry. The instance must
+be of type com.thoughtworks.xstream.io.HierarchicalStreamDriver
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="mode" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Mode for dealing with duplicate references The possible values are:
+NO_REFERENCES ID_REFERENCES XPATH_RELATIVE_REFERENCES XPATH_ABSOLUTE_REFERENCES
+SINGLE_NODE_XPATH_RELATIVE_REFERENCES SINGLE_NODE_XPATH_ABSOLUTE_REFERENCES
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="converterList">
+    <xs:sequence>
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="converter" type="tns:converterEntry"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="converterEntry">
+    <xs:sequence/>
+    <xs:attribute name="class" type="xs:string"/>
+  </xs:complexType>
+
+  <xs:complexType name="aliasList">
+    <xs:sequence>
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="alias" type="tns:aliasEntry"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="aliasEntry">
+    <xs:sequence/>
+    <xs:attribute name="name" type="xs:string"/>
+    <xs:attribute name="class" type="xs:string"/>
+  </xs:complexType>
+
+  <xs:complexType name="omitFieldList">
+    <xs:sequence>
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="omitField" type="tns:omitFieldEntry"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="omitFieldEntry">
+    <xs:sequence>
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="field" type="xs:string"/>
+    </xs:sequence>
+    <xs:attribute name="class" type="xs:string"/>
+  </xs:complexType>
+
+  <xs:complexType name="implicitCollectionList">
+    <xs:sequence>
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="class" type="tns:implicitCollectionEntry"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="implicitCollectionEntry">
+    <xs:sequence>
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="field" type="xs:string"/>
+    </xs:sequence>
+    <xs:attribute name="name" type="xs:string"/>
+  </xs:complexType>
+
+  <xs:complexType name="pgpDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="keyUserid" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The user ID of the key in the PGP keyring used during encryption. Can also be
+only a part of a user ID. For example, if the user ID is Test User then you can
+use the part Test User or to address the user ID.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="signatureKeyUserid" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+User ID of the key in the PGP keyring used for signing (during encryption) or
+signature verification (during decryption). During the signature verification
+process the specified User ID restricts the public keys from the public keyring
+which can be used for the verification. If no User ID is specified for the
+signature verficiation then any public key in the public keyring can be used for
+the verification. Can also be only a part of a user ID. For example, if the user
+ID is Test User then you can use the part Test User or to address the User ID.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="password" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Password used when opening the private key (not used for encryption).
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="signaturePassword" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Password used when opening the private key used for signing (during encryption).
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="keyFileName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Filename of the keyring; must be accessible as a classpath resource (but you can
+specify a location in the file system by using the file: prefix).
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="signatureKeyFileName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Filename of the keyring to use for signing (during encryption) or for signature
+verification (during decryption); must be accessible as a classpath resource
+(but you can specify a location in the file system by using the file: prefix).
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="signatureKeyRing" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Keyring used for signing/verifying as byte array. You can not set the
+signatureKeyFileName and signatureKeyRing at the same time.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="armored" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+This option will cause PGP to base64 encode the encrypted text, making it
+available for copy/paste, etc. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="integrity" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Adds an integrity check/sign into the encryption file. The default value is
+true. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="provider" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Java Cryptography Extension (JCE) provider, default is Bouncy Castle (BC).
+Alternatively you can use, for example, the IAIK JCE provider; in this case the
+provider must be registered beforehand and the Bouncy Castle provider must not
+be registered beforehand. The Sun JCE provider does not work.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="algorithm" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Symmetric key encryption algorithm; possible values are defined in
+org.bouncycastle.bcpg.SymmetricKeyAlgorithmTags; for example 2 (= TRIPLE DES), 3
+(= CAST5), 4 (= BLOWFISH), 6 (= DES), 7 (= AES_128). Only relevant for
+encrypting.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="compressionAlgorithm" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Compression algorithm; possible values are defined in
+org.bouncycastle.bcpg.CompressionAlgorithmTags; for example 0 (= UNCOMPRESSED),
+1 (= ZIP), 2 (= ZLIB), 3 (= BZIP2). Only relevant for encrypting.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="hashAlgorithm" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Signature hash algorithm; possible values are defined in
+org.bouncycastle.bcpg.HashAlgorithmTags; for example 2 (= SHA1), 8 (= SHA256), 9
+(= SHA384), 10 (= SHA512), 11 (=SHA224). Only relevant for signing.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="signatureVerificationOption" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Controls the behavior for verifying the signature during unmarshaling. There are
+4 values possible: optional: The PGP message may or may not contain signatures;
+if it does contain signatures, then a signature verification is executed.
+required: The PGP message must contain at least one signature; if this is not
+the case an exception (PGPException) is thrown. A signature verification is
+executed. ignore: Contained signatures in the PGP message are ignored; no
+signature verification is executed. no_signature_allowed: The PGP message must
+not contain a signature; otherwise an exception (PGPException) is thrown.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="yamlDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence>
+          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:typeFilter"/>
+        </xs:sequence>
+        <xs:attribute name="library" type="tns:yamlLibrary">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Which yaml library to use. By default it is SnakeYAML. Default value: SnakeYAML
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="unmarshalTypeName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Class name of the java type to use when unarmshalling
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="constructor" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+BaseConstructor to construct incoming documents.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="representer" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Representer to emit outgoing objects.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="dumperOptions" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+DumperOptions to configure outgoing objects.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="resolver" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Resolver to detect implicit type
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="useApplicationContextClassLoader" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Use ApplicationContextClassLoader as custom ClassLoader. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="prettyFlow" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Force the emitter to produce a pretty YAML document when using the flow style.
+Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="allowAnyType" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Allow any class to be un-marshaled. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType final="extension restriction" name="yamlTypeFilterDefinition">
+    <xs:sequence/>
+    <xs:attribute name="value" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Value of type such as class name or regular expression
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="type" type="tns:yamlTypeFilterType">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Whether to filter by class type or regular expression
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:complexType name="zipDeflaterDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="compressionLevel" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To specify a specific compression between 0-9. -1 is default compression, 0 is
+no compression, and 9 is best compression. Default value: -1
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="zipFileDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="usingIterator" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If the zip file has more then one entry, the setting this option to true, allows
+to work with the splitter EIP, to split the data using an iterator in a
+streaming mode. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="allowEmptyDirectory" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If the zip file has more then one entry, setting this option to true, allows to
+get the iterator even if the directory is empty. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="preservePathElements" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If the file name contains path elements, setting this option to true, allows the
+path to be maintained in the zip file. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="multicastDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:output">
+        <xs:sequence/>
+        <xs:attribute name="parallelProcessing" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If enabled then sending messages to the multicasts occurs concurrently. Note the
+caller thread will still wait until all messages has been fully processed,
+before it continues. Its only the sending and processing the replies from the
+multicasts which happens concurrently. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="strategyRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Refers to an AggregationStrategy to be used to assemble the replies from the
+multicasts, into a single outgoing message from the Multicast. By default Camel
+will use the last reply as the outgoing message. You can also use a POJO as the
+AggregationStrategy
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="strategyMethodName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+This option can be used to explicit declare the method name to use, when using
+POJOs as the AggregationStrategy.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="strategyMethodAllowNull" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If this option is false then the aggregate method is not used if there was no
+data to enrich. If this option is true then null values is used as the
+oldExchange (when no data to enrich), when using POJOs as the
+AggregationStrategy. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="executorServiceRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Refers to a custom Thread Pool to be used for parallel processing. Notice if you
+set this option, then parallel processing is automatic implied, and you do not
+have to enable that option as well.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="streaming" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If enabled then Camel will process replies out-of-order, eg in the order they
+come back. If disabled, Camel will process replies in the same order as defined
+by the multicast. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="stopOnException" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Will now stop further processing if an exception or failure occurred during
+processing of an org.apache.camel.Exchange and the caused exception will be
+thrown. Will also stop if processing the exchange failed (has a fault message)
+or an exception was thrown and handled by the error handler (such as using
+onException). In all situations the multicast will stop further processing. This
+is the same behavior as in pipeline, which is used by the routing engine. The
+default behavior is to not stop but continue processing till the end. Default
+value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="timeout" type="xs:long">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets a total timeout specified in millis, when using parallel processing. If the
+Multicast hasn't been able to send and process all replies within the given
+timeframe, then the timeout triggers and the Multicast breaks out and continues.
+Notice if you provide a TimeoutAwareAggregationStrategy then the timeout method
+is invoked before breaking out. If the timeout is reached with running tasks
+still remaining, certain tasks for which it is difficult for Camel to shut down
+in a graceful manner may continue to run. So use this option with a bit of care.
+Default value: 0
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="onPrepareRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Uses the Processor when preparing the org.apache.camel.Exchange to be send. This
+can be used to deep-clone messages that should be send, or any custom logic
+needed before the exchange is send.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="shareUnitOfWork" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Shares the org.apache.camel.spi.UnitOfWork with the parent and each of the sub
+messages. Multicast will by default not share unit of work between the parent
+exchange and each multicasted exchange. This means each sub exchange has its own
+individual unit of work. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="parallelAggregate" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If enabled then the aggregate method on AggregationStrategy can be called
+concurrently. Notice that this would require the implementation of
+AggregationStrategy to be implemented as thread-safe. By default this is false
+meaning that Camel synchronizes the call to the aggregate method. Though in some
+use-cases this can be used to archive higher performance when the
+AggregationStrategy is implemented as thread-safe. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="stopOnAggregateException" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If enabled, unwind exceptions occurring at aggregation time to the error handler
+when parallelProcessing is used. Currently, aggregation time exceptions do not
+stop the route processing when parallelProcessing is used. Enabling this option
+allows to work around this behavior. The default value is false for the sake of
+backward compatibility. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="onCompletionDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:sequence>
+          <xs:element minOccurs="0" name="onWhen" type="tns:whenDefinition"/>
+          <xs:choice maxOccurs="unbounded" minOccurs="0">
+            <xs:element ref="tns:aggregate"/>
+            <xs:element ref="tns:bean"/>
+            <xs:element ref="tns:doCatch"/>
+            <xs:element ref="tns:when"/>
+            <xs:element ref="tns:choice"/>
+            <xs:element ref="tns:otherwise"/>
+            <xs:element ref="tns:claimCheck"/>
+            <xs:element ref="tns:convertBodyTo"/>
+            <xs:element ref="tns:delay"/>
+            <xs:element ref="tns:dynamicRouter"/>
+            <xs:element ref="tns:enrich"/>
+            <xs:element ref="tns:filter"/>
+            <xs:element ref="tns:doFinally"/>
+            <xs:element ref="tns:hystrix"/>
+            <xs:element ref="tns:idempotentConsumer"/>
+            <xs:element ref="tns:inOnly"/>
+            <xs:element ref="tns:inOut"/>
+            <xs:element ref="tns:intercept"/>
+            <xs:element ref="tns:interceptFrom"/>
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+            <xs:element ref="tns:loadBalance"/>
+            <xs:element ref="tns:log"/>
+            <xs:element ref="tns:loop"/>
+            <xs:element ref="tns:marshal"/>
+            <xs:element ref="tns:multicast"/>
+            <xs:element ref="tns:onCompletion"/>
+            <xs:element ref="tns:onException"/>
+            <xs:element ref="tns:onFallback"/>
+            <xs:element ref="tns:pipeline"/>
+            <xs:element ref="tns:policy"/>
+            <xs:element ref="tns:pollEnrich"/>
+            <xs:element ref="tns:process"/>
+            <xs:element ref="tns:recipientList"/>
+            <xs:element ref="tns:removeHeader"/>
+            <xs:element ref="tns:removeHeaders"/>
+            <xs:element ref="tns:removeProperties"/>
+            <xs:element ref="tns:removeProperty"/>
+            <xs:element ref="tns:resequence"/>
+            <xs:element ref="tns:rollback"/>
+            <xs:element ref="tns:route"/>
+            <xs:element ref="tns:routingSlip"/>
+            <xs:element ref="tns:saga"/>
+            <xs:element ref="tns:sample"/>
+            <xs:element ref="tns:script"/>
+            <xs:element ref="tns:setBody"/>
+            <xs:element ref="tns:setExchangePattern"/>
+            <xs:element ref="tns:setHeader"/>
+            <xs:element ref="tns:setProperty"/>
+            <xs:element ref="tns:sort"/>
+            <xs:element ref="tns:split"/>
+            <xs:element ref="tns:step"/>
+            <xs:element ref="tns:stop"/>
+            <xs:element ref="tns:threads"/>
+            <xs:element ref="tns:throttle"/>
+            <xs:element ref="tns:throwException"/>
+            <xs:element ref="tns:to"/>
+            <xs:element ref="tns:toD"/>
+            <xs:element ref="tns:transacted"/>
+            <xs:element ref="tns:transform"/>
+            <xs:element ref="tns:doTry"/>
+            <xs:element ref="tns:unmarshal"/>
+            <xs:element ref="tns:validate"/>
+            <xs:element ref="tns:whenSkipSendToEndpoint"/>
+            <xs:element ref="tns:wireTap"/>
+            <xs:element ref="tns:serviceCall"/>
+          </xs:choice>
+        </xs:sequence>
+        <xs:attribute name="mode" type="tns:onCompletionMode">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the on completion mode. The default value is AfterConsumer. Default value:
+AfterConsumer
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="onCompleteOnly" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Will only synchronize when the org.apache.camel.Exchange completed successfully
+(no errors). Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="onFailureOnly" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Will only synchronize when the org.apache.camel.Exchange ended with failure
+(exception or FAULT message). Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="parallelProcessing" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If enabled then the on completion process will run asynchronously by a separate
+thread from a thread pool. By default this is false, meaning the on completion
+process will run synchronously using the same caller thread as from the route.
+Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="executorServiceRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Refers to a custom Thread Pool to be used for parallel processing. Notice if you
+set this option, then parallel processing is automatic implied, and you do not
+have to enable that option as well.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="useOriginalMessage" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Will use the original input message body when an org.apache.camel.Exchange for
+this on completion. By default this feature is off. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="onExceptionDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:sequence>
+          <xs:element maxOccurs="unbounded" name="exception" type="xs:string"/>
+          <xs:element minOccurs="0" name="onWhen" type="tns:whenDefinition"/>
+          <xs:element minOccurs="0" name="retryWhile" type="tns:expressionSubElementDefinition"/>
+          <xs:element minOccurs="0" ref="tns:redeliveryPolicy"/>
+          <xs:element minOccurs="0" name="handled" type="tns:expressionSubElementDefinition"/>
+          <xs:element minOccurs="0" name="continued" type="tns:expressionSubElementDefinition"/>
+          <xs:choice maxOccurs="unbounded" minOccurs="0">
+            <xs:element ref="tns:aggregate"/>
+            <xs:element ref="tns:bean"/>
+            <xs:element ref="tns:doCatch"/>
+            <xs:element ref="tns:when"/>
+            <xs:element ref="tns:choice"/>
+            <xs:element ref="tns:otherwise"/>
+            <xs:element ref="tns:claimCheck"/>
+            <xs:element ref="tns:convertBodyTo"/>
+            <xs:element ref="tns:delay"/>
+            <xs:element ref="tns:dynamicRouter"/>
+            <xs:element ref="tns:enrich"/>
+            <xs:element ref="tns:filter"/>
+            <xs:element ref="tns:doFinally"/>
+            <xs:element ref="tns:hystrix"/>
+            <xs:element ref="tns:idempotentConsumer"/>
+            <xs:element ref="tns:inOnly"/>
+            <xs:element ref="tns:inOut"/>
+            <xs:element ref="tns:intercept"/>
+            <xs:element ref="tns:interceptFrom"/>
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+            <xs:element ref="tns:loadBalance"/>
+            <xs:element ref="tns:log"/>
+            <xs:element ref="tns:loop"/>
+            <xs:element ref="tns:marshal"/>
+            <xs:element ref="tns:multicast"/>
+            <xs:element ref="tns:onCompletion"/>
+            <xs:element ref="tns:onException"/>
+            <xs:element ref="tns:onFallback"/>
+            <xs:element ref="tns:pipeline"/>
+            <xs:element ref="tns:policy"/>
+            <xs:element ref="tns:pollEnrich"/>
+            <xs:element ref="tns:process"/>
+            <xs:element ref="tns:recipientList"/>
+            <xs:element ref="tns:removeHeader"/>
+            <xs:element ref="tns:removeHeaders"/>
+            <xs:element ref="tns:removeProperties"/>
+            <xs:element ref="tns:removeProperty"/>
+            <xs:element ref="tns:resequence"/>
+            <xs:element ref="tns:rollback"/>
+            <xs:element ref="tns:route"/>
+            <xs:element ref="tns:routingSlip"/>
+            <xs:element ref="tns:saga"/>
+            <xs:element ref="tns:sample"/>
+            <xs:element ref="tns:script"/>
+            <xs:element ref="tns:setBody"/>
+            <xs:element ref="tns:setExchangePattern"/>
+            <xs:element ref="tns:setHeader"/>
+            <xs:element ref="tns:setProperty"/>
+            <xs:element ref="tns:sort"/>
+            <xs:element ref="tns:split"/>
+            <xs:element ref="tns:step"/>
+            <xs:element ref="tns:stop"/>
+            <xs:element ref="tns:threads"/>
+            <xs:element ref="tns:throttle"/>
+            <xs:element ref="tns:throwException"/>
+            <xs:element ref="tns:to"/>
+            <xs:element ref="tns:toD"/>
+            <xs:element ref="tns:transacted"/>
+            <xs:element ref="tns:transform"/>
+            <xs:element ref="tns:doTry"/>
+            <xs:element ref="tns:unmarshal"/>
+            <xs:element ref="tns:validate"/>
+            <xs:element ref="tns:whenSkipSendToEndpoint"/>
+            <xs:element ref="tns:wireTap"/>
+            <xs:element ref="tns:serviceCall"/>
+          </xs:choice>
+        </xs:sequence>
+        <xs:attribute name="redeliveryPolicyRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets a reference to a RedeliveryPolicy to lookup in the
+org.apache.camel.spi.Registry to be used.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="onRedeliveryRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets a reference to a processor that should be processed before a redelivery
+attempt. Can be used to change the org.apache.camel.Exchange before its being
+redelivered.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="onExceptionOccurredRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets a reference to a processor that should be processed just after an exception
+occurred. Can be used to perform custom logging about the occurred exception at
+the exact time it happened. Important: Any exception thrown from this processor
+will be ignored.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="useOriginalMessage" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Will use the original input org.apache.camel.Message (original body and headers)
+when an org.apache.camel.Exchange is moved to the dead letter queue. Notice:
+this only applies when all redeliveries attempt have failed and the
+org.apache.camel.Exchange is doomed for failure. Instead of using the current
+inprogress org.apache.camel.Exchange IN message we use the original IN message
+instead. This allows you to store the original input in the dead letter queue
+instead of the inprogress snapshot of the IN message. For instance if you route
+transform the IN body during routing and then failed. With the original exchange
+store in the dead letter queue it might be easier to manually re submit the
+org.apache.camel.Exchange again as the IN message is the same as when Camel
+received it. So you should be able to send the org.apache.camel.Exchange to the
+same input. The difference between useOriginalMessage and useOriginalBody is
+that the former includes both the original body and headers, where as the latter
+only includes the original body. You can use the latter to enrich the message
+with custom headers and include the original message body. The former wont let
+you do this, as its using the original message body and headers as they are. You
+cannot enable both useOriginalMessage and useOriginalBody. Important: The
+original input means the input message that are bounded by the current
+org.apache.camel.spi.UnitOfWork. An unit of work typically spans one route, or
+multiple routes if they are connected using internal endpoints such as direct or
+seda. When messages is passed via external endpoints such as JMS or HTTP then
+the consumer will create a new unit of work, with the message it received as
+input as the original input. Also some EIP patterns such as splitter, multicast,
+will create a new unit of work boundary for the messages in their sub-route (eg
+the splitted message); however these EIPs have an option named shareUnitOfWork
+which allows to combine with the parent unit of work in regard to error handling
+and therefore use the parent original message. By default this feature is off.
+Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="useOriginalBody" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Will use the original input org.apache.camel.Message body (original body only)
+when an org.apache.camel.Exchange is moved to the dead letter queue. Notice:
+this only applies when all redeliveries attempt have failed and the
+org.apache.camel.Exchange is doomed for failure. Instead of using the current
+inprogress org.apache.camel.Exchange IN message we use the original IN message
+instead. This allows you to store the original input in the dead letter queue
+instead of the inprogress snapshot of the IN message. For instance if you route
+transform the IN body during routing and then failed. With the original exchange
+store in the dead letter queue it might be easier to manually re submit the
+org.apache.camel.Exchange again as the IN message is the same as when Camel
+received it. So you should be able to send the org.apache.camel.Exchange to the
+same input. The difference between useOriginalMessage and useOriginalBody is
+that the former includes both the original body and headers, where as the latter
+only includes the original body. You can use the latter to enrich the message
+with custom headers and include the original message body. The former wont let
+you do this, as its using the original message body and headers as they are. You
+cannot enable both useOriginalMessage and useOriginalBody. Important: The
+original input means the input message that are bounded by the current
+org.apache.camel.spi.UnitOfWork. An unit of work typically spans one route, or
+multiple routes if they are connected using internal endpoints such as direct or
+seda. When messages is passed via external endpoints such as JMS or HTTP then
+the consumer will create a new unit of work, with the message it received as
+input as the original input. Also some EIP patterns such as splitter, multicast,
+will create a new unit of work boundary for the messages in their sub-route (eg
+the splitted message); however these EIPs have an option named shareUnitOfWork
+which allows to combine with the parent unit of work in regard to error handling
+and therefore use the parent original message. By default this feature is off.
+Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="redeliveryPolicyDefinition">
+    <xs:sequence/>
+    <xs:attribute name="maximumRedeliveries" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Sets the maximum redeliveries x = redeliver at most x times 0 = no redeliveries
+-1 = redeliver forever
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="redeliveryDelay" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Sets the initial redelivery delay
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="asyncDelayedRedelivery" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Allow synchronous delayed redelivery. The route, in particular the consumer's
+component, must support the Asynchronous Routing Engine (e.g. seda).
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="backOffMultiplier" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Sets the back off multiplier
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="useExponentialBackOff" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Turn on exponential backk off
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="collisionAvoidanceFactor" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Sets the collision avoidance factor
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="useCollisionAvoidance" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Turn on collision avoidance.
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="maximumRedeliveryDelay" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Sets the maximum delay between redelivery
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="retriesExhaustedLogLevel" type="tns:loggingLevel">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Sets the logging level to use when retries has exhausted
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="retryAttemptedLogLevel" type="tns:loggingLevel">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Sets the logging level to use for logging retry attempts
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="retryAttemptedLogInterval" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Sets the interval to use for logging retry attempts
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="logRetryAttempted" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Sets whether retry attempts should be logged or not. Can be used to include or
+reduce verbose.
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="logStackTrace" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Sets whether stack traces should be logged. Can be used to include or reduce
+verbose.
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="logRetryStackTrace" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Sets whether stack traces should be logged when an retry attempt failed. Can be
+used to include or reduce verbose.
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="logHandled" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Sets whether handled exceptions should be logged or not. Can be used to include
+or reduce verbose.
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="logNewException" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Sets whether new exceptions should be logged or not. Can be used to include or
+reduce verbose. A new exception is an exception that was thrown while handling a
+previous exception.
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="logContinued" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Sets whether continued exceptions should be logged or not. Can be used to
+include or reduce verbose.
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="logExhausted" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Sets whether exhausted exceptions should be logged or not. Can be used to
+include or reduce verbose.
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="logExhaustedMessageHistory" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Sets whether exhausted exceptions should be logged including message history or
+not (supports property placeholders). Can be used to include or reduce verbose.
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="logExhaustedMessageBody" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Sets whether exhausted message body should be logged including message history
+or not (supports property placeholders). Can be used to include or reduce
+verbose. Requires logExhaustedMessageHistory to be enabled.
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="disableRedelivery" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Disables redelivery (same as setting maximum redeliveries to 0)
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="delayPattern" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Sets the delay pattern with delay intervals.
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="allowRedeliveryWhileStopping" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Controls whether to allow redelivery while stopping/shutting down a route that
+uses error handling.
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="exchangeFormatterRef" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Sets the reference of the instance of org.apache.camel.spi.ExchangeFormatter to
+generate the log message from exchange.
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:complexType name="onFallbackDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:output">
+        <xs:sequence/>
+        <xs:attribute name="fallbackViaNetwork" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether the fallback goes over the network. If the fallback will go over the
+network it is another possible point of failure and so it also needs to be
+wrapped by a HystrixCommand. It is important to execute the fallback command on
+a separate thread-pool, otherwise if the main command were to become latent and
+fill the thread-pool this would prevent the fallback from running if the two
+commands share the same pool. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="outputTypeDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:optionalIdentifiedDefinition">
+        <xs:sequence/>
+        <xs:attribute name="urn" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Set output type URN.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="validate" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Set if validation is required for this output type. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="packageScanDefinition">
+    <xs:sequence>
+      <xs:element maxOccurs="unbounded" name="package" type="xs:string"/>
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="excludes" type="xs:string"/>
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="includes" type="xs:string"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="pipelineDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:output">
+        <xs:sequence/>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="policyDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:output">
+        <xs:sequence/>
+        <xs:attribute name="ref" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets a reference to use for lookup the policy in the registry.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="pollEnrichDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:choice>
+          <xs:element ref="tns:expressionDefinition"/>
+          <xs:element ref="tns:constant"/>
+          <xs:element ref="tns:exchangeProperty"/>
+          <xs:element ref="tns:groovy"/>
+          <xs:element ref="tns:header"/>
+          <xs:element ref="tns:hl7terser"/>
+          <xs:element ref="tns:jsonpath"/>
+          <xs:element ref="tns:language"/>
+          <xs:element ref="tns:method"/>
+          <xs:element ref="tns:mvel"/>
+          <xs:element ref="tns:ognl"/>
+          <xs:element ref="tns:ref"/>
+          <xs:element ref="tns:simple"/>
+          <xs:element ref="tns:spel"/>
+          <xs:element ref="tns:tokenize"/>
+          <xs:element ref="tns:xtokenize"/>
+          <xs:element ref="tns:xpath"/>
+          <xs:element ref="tns:xquery"/>
+        </xs:choice>
+        <xs:attribute name="timeout" type="xs:long">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Timeout in millis when polling from the external service. The timeout has
+influence about the poll enrich behavior. It basically operations in three
+different modes: negative value - Waits until a message is available and then
+returns it. Warning that this method could block indefinitely if no messages are
+available. 0 - Attempts to receive a message exchange immediately without
+waiting and returning null if a message exchange is not available yet. positive
+value - Attempts to receive a message exchange, waiting up to the given timeout
+to expire if a message is not yet available. Returns null if timed out The
+default value is -1 and therefore the method could block indefinitely, and
+therefore its recommended to use a timeout value. Default value: -1
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="strategyRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Refers to an AggregationStrategy to be used to merge the reply from the external
+service, into a single outgoing message. By default Camel will use the reply
+from the external service as outgoing message.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="strategyMethodName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+This option can be used to explicit declare the method name to use, when using
+POJOs as the AggregationStrategy.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="strategyMethodAllowNull" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If this option is false then the aggregate method is not used if there was no
+data to enrich. If this option is true then null values is used as the
+oldExchange (when no data to enrich), when using POJOs as the
+AggregationStrategy. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="aggregateOnException" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If this option is false then the aggregate method is not used if there was an
+exception thrown while trying to retrieve the data to enrich from the resource.
+Setting this option to true allows end users to control what to do if there was
+an exception in the aggregate method. For example to suppress the exception or
+set a custom message body etc. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="cacheSize" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the maximum size used by the org.apache.camel.spi.ConsumerCache which is
+used to cache and reuse consumers when uris are reused.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="ignoreInvalidEndpoint" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Ignore the invalidate endpoint exception when try to create a producer with that
+endpoint. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="processDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:noOutputDefinition">
+        <xs:sequence/>
+        <xs:attribute name="ref" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Reference to the Processor to lookup in the registry to use.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="recipientListDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:choice>
+          <xs:element ref="tns:expressionDefinition"/>
+          <xs:element ref="tns:constant"/>
+          <xs:element ref="tns:exchangeProperty"/>
+          <xs:element ref="tns:groovy"/>
+          <xs:element ref="tns:header"/>
+          <xs:element ref="tns:hl7terser"/>
+          <xs:element ref="tns:jsonpath"/>
+          <xs:element ref="tns:language"/>
+          <xs:element ref="tns:method"/>
+          <xs:element ref="tns:mvel"/>
+          <xs:element ref="tns:ognl"/>
+          <xs:element ref="tns:ref"/>
+          <xs:element ref="tns:simple"/>
+          <xs:element ref="tns:spel"/>
+          <xs:element ref="tns:tokenize"/>
+          <xs:element ref="tns:xtokenize"/>
+          <xs:element ref="tns:xpath"/>
+          <xs:element ref="tns:xquery"/>
+        </xs:choice>
+        <xs:attribute name="delimiter" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Delimiter used if the Expression returned multiple endpoints. Can be turned off
+using the value false. The default value is ,. Default value: ,
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="parallelProcessing" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If enabled then sending messages to the recipients occurs concurrently. Note the
+caller thread will still wait until all messages has been fully processed,
+before it continues. Its only the sending and processing the replies from the
+recipients which happens concurrently. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="strategyRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets a reference to the AggregationStrategy to be used to assemble the replies
+from the recipients, into a single outgoing message from the RecipientList. By
+default Camel will use the last reply as the outgoing message. You can also use
+a POJO as the AggregationStrategy
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="strategyMethodName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+This option can be used to explicit declare the method name to use, when using
+POJOs as the AggregationStrategy.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="strategyMethodAllowNull" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If this option is false then the aggregate method is not used if there was no
+data to enrich. If this option is true then null values is used as the
+oldExchange (when no data to enrich), when using POJOs as the
+AggregationStrategy. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="executorServiceRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Refers to a custom Thread Pool to be used for parallel processing. Notice if you
+set this option, then parallel processing is automatic implied, and you do not
+have to enable that option as well.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="stopOnException" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Will now stop further processing if an exception or failure occurred during
+processing of an org.apache.camel.Exchange and the caused exception will be
+thrown. Will also stop if processing the exchange failed (has a fault message)
+or an exception was thrown and handled by the error handler (such as using
+onException). In all situations the recipient list will stop further processing.
+This is the same behavior as in pipeline, which is used by the routing engine.
+The default behavior is to not stop but continue processing till the end.
+Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="ignoreInvalidEndpoints" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Ignore the invalidate endpoint exception when try to create a producer with that
+endpoint. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="streaming" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If enabled then Camel will process replies out-of-order, eg in the order they
+come back. If disabled, Camel will process replies in the same order as defined
+by the recipient list. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="timeout" type="xs:long">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets a total timeout specified in millis, when using parallel processing. If the
+Recipient List hasn't been able to send and process all replies within the given
+timeframe, then the timeout triggers and the Recipient List breaks out and
+continues. Notice if you provide a TimeoutAwareAggregationStrategy then the
+timeout method is invoked before breaking out. If the timeout is reached with
+running tasks still remaining, certain tasks for which it is difficult for Camel
+to shut down in a graceful manner may continue to run. So use this option with a
+bit of care. Default value: 0
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="onPrepareRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Uses the Processor when preparing the org.apache.camel.Exchange to be send. This
+can be used to deep-clone messages that should be send, or any custom logic
+needed before the exchange is send.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="shareUnitOfWork" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Shares the org.apache.camel.spi.UnitOfWork with the parent and each of the sub
+messages. Recipient List will by default not share unit of work between the
+parent exchange and each recipient exchange. This means each sub exchange has
+its own individual unit of work. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="cacheSize" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the maximum size used by the org.apache.camel.spi.ProducerCache which is
+used to cache and reuse producers when using this recipient list, when uris are
+reused.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="parallelAggregate" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If enabled then the aggregate method on AggregationStrategy can be called
+concurrently. Notice that this would require the implementation of
+AggregationStrategy to be implemented as thread-safe. By default this is false
+meaning that Camel synchronizes the call to the aggregate method. Though in some
+use-cases this can be used to archive higher performance when the
+AggregationStrategy is implemented as thread-safe. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="stopOnAggregateException" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If enabled, unwind exceptions occurring at aggregation time to the error handler
+when parallelProcessing is used. Currently, aggregation time exceptions do not
+stop the route processing when parallelProcessing is used. Enabling this option
+allows to work around this behavior. The default value is false for the sake of
+backward compatibility. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="removeHeaderDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:noOutputDefinition">
+        <xs:sequence/>
+        <xs:attribute name="headerName" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Name of header to remove
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="removeHeadersDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:noOutputDefinition">
+        <xs:sequence/>
+        <xs:attribute name="pattern" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Name or pattern of headers to remove. The pattern is matched in the following
+order: 1 = exact match 2 = wildcard (pattern ends with a and the name starts
+with the pattern) 3 = regular expression (all of above is case in-sensitive).
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="excludePattern" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Name or patter of headers to not remove. The pattern is matched in the following
+order: 1 = exact match 2 = wildcard (pattern ends with a and the name starts
+with the pattern) 3 = regular expression (all of above is case in-sensitive).
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="removePropertiesDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:noOutputDefinition">
+        <xs:sequence/>
+        <xs:attribute name="pattern" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Name or pattern of properties to remove. The pattern is matched in the following
+order: 1 = exact match 2 = wildcard (pattern ends with a and the name starts
+with the pattern) 3 = regular expression (all of above is case in-sensitive).
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="excludePattern" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Name or pattern of properties to not remove. The pattern is matched in the
+following order: 1 = exact match 2 = wildcard (pattern ends with a and the name
+starts with the pattern) 3 = regular expression (all of above is case
+in-sensitive).
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="removePropertyDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:noOutputDefinition">
+        <xs:sequence/>
+        <xs:attribute name="propertyName" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Name of property to remove
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="resequenceDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:sequence>
+          <xs:choice minOccurs="0">
+            <xs:element ref="tns:batch-config"/>
+            <xs:element ref="tns:stream-config"/>
+          </xs:choice>
+          <xs:choice>
+            <xs:element ref="tns:expressionDefinition"/>
+            <xs:element ref="tns:constant"/>
+            <xs:element ref="tns:exchangeProperty"/>
+            <xs:element ref="tns:groovy"/>
+            <xs:element ref="tns:header"/>
+            <xs:element ref="tns:hl7terser"/>
+            <xs:element ref="tns:jsonpath"/>
+            <xs:element ref="tns:language"/>
+            <xs:element ref="tns:method"/>
+            <xs:element ref="tns:mvel"/>
+            <xs:element ref="tns:ognl"/>
+            <xs:element ref="tns:ref"/>
+            <xs:element ref="tns:simple"/>
+            <xs:element ref="tns:spel"/>
+            <xs:element ref="tns:tokenize"/>
+            <xs:element ref="tns:xtokenize"/>
+            <xs:element ref="tns:xpath"/>
+            <xs:element ref="tns:xquery"/>
+          </xs:choice>
+          <xs:choice maxOccurs="unbounded" minOccurs="0">
+            <xs:element ref="tns:aggregate"/>
+            <xs:element ref="tns:bean"/>
+            <xs:element ref="tns:doCatch"/>
+            <xs:element ref="tns:when"/>
+            <xs:element ref="tns:choice"/>
+            <xs:element ref="tns:otherwise"/>
+            <xs:element ref="tns:claimCheck"/>
+            <xs:element ref="tns:convertBodyTo"/>
+            <xs:element ref="tns:delay"/>
+            <xs:element ref="tns:dynamicRouter"/>
+            <xs:element ref="tns:enrich"/>
+            <xs:element ref="tns:filter"/>
+            <xs:element ref="tns:doFinally"/>
+            <xs:element ref="tns:hystrix"/>
+            <xs:element ref="tns:idempotentConsumer"/>
+            <xs:element ref="tns:inOnly"/>
+            <xs:element ref="tns:inOut"/>
+            <xs:element ref="tns:intercept"/>
+            <xs:element ref="tns:interceptFrom"/>
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+            <xs:element ref="tns:loadBalance"/>
+            <xs:element ref="tns:log"/>
+            <xs:element ref="tns:loop"/>
+            <xs:element ref="tns:marshal"/>
+            <xs:element ref="tns:multicast"/>
+            <xs:element ref="tns:onCompletion"/>
+            <xs:element ref="tns:onException"/>
+            <xs:element ref="tns:onFallback"/>
+            <xs:element ref="tns:pipeline"/>
+            <xs:element ref="tns:policy"/>
+            <xs:element ref="tns:pollEnrich"/>
+            <xs:element ref="tns:process"/>
+            <xs:element ref="tns:recipientList"/>
+            <xs:element ref="tns:removeHeader"/>
+            <xs:element ref="tns:removeHeaders"/>
+            <xs:element ref="tns:removeProperties"/>
+            <xs:element ref="tns:removeProperty"/>
+            <xs:element ref="tns:resequence"/>
+            <xs:element ref="tns:rollback"/>
+            <xs:element ref="tns:route"/>
+            <xs:element ref="tns:routingSlip"/>
+            <xs:element ref="tns:saga"/>
+            <xs:element ref="tns:sample"/>
+            <xs:element ref="tns:script"/>
+            <xs:element ref="tns:setBody"/>
+            <xs:element ref="tns:setExchangePattern"/>
+            <xs:element ref="tns:setHeader"/>
+            <xs:element ref="tns:setProperty"/>
+            <xs:element ref="tns:sort"/>
+            <xs:element ref="tns:split"/>
+            <xs:element ref="tns:step"/>
+            <xs:element ref="tns:stop"/>
+            <xs:element ref="tns:threads"/>
+            <xs:element ref="tns:throttle"/>
+            <xs:element ref="tns:throwException"/>
+            <xs:element ref="tns:to"/>
+            <xs:element ref="tns:toD"/>
+            <xs:element ref="tns:transacted"/>
+            <xs:element ref="tns:transform"/>
+            <xs:element ref="tns:doTry"/>
+            <xs:element ref="tns:unmarshal"/>
+            <xs:element ref="tns:validate"/>
+            <xs:element ref="tns:whenSkipSendToEndpoint"/>
+            <xs:element ref="tns:wireTap"/>
+            <xs:element ref="tns:serviceCall"/>
+          </xs:choice>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="batchResequencerConfig">
+    <xs:complexContent>
+      <xs:extension base="tns:resequencerConfig">
+        <xs:sequence/>
+        <xs:attribute name="batchSize" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the size of the batch to be re-ordered. The default size is 100. Default
+value: 100
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="batchTimeout" type="xs:long">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the timeout for collecting elements to be re-ordered. The default timeout
+is 1000 msec. Default value: 1000
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="allowDuplicates" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to allow duplicates. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="reverse" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to reverse the ordering. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="ignoreInvalidExchanges" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to ignore invalid exchanges. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType abstract="true" name="resequencerConfig">
+    <xs:sequence/>
+    <xs:anyAttribute namespace="##other" processContents="skip"/>
+  </xs:complexType>
+
+  <xs:complexType name="streamResequencerConfig">
+    <xs:complexContent>
+      <xs:extension base="tns:resequencerConfig">
+        <xs:sequence/>
+        <xs:attribute name="capacity" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the capacity of the resequencer's inbound queue. Default value: 100
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="timeout" type="xs:long">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets minimum time to wait for missing elements (messages). Default value: 1000
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="deliveryAttemptInterval" type="xs:long">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the interval in milli seconds the stream resequencer will at most wait
+while waiting for condition of being able to deliver. Default value: 1000
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="ignoreInvalidExchanges" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to ignore invalid exchanges. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="comparatorRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To use a custom comparator
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="rejectOld" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If true, throws an exception when messages older than the last delivered message
+are processed. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="restContextRefDefinition">
+    <xs:sequence/>
+    <xs:attribute name="ref" type="xs:string" use="required">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Reference to the rest-dsl
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:complexType name="rollbackDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:noOutputDefinition">
+        <xs:sequence/>
+        <xs:attribute name="markRollbackOnly" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Mark the transaction for rollback only (cannot be overruled to commit). Default
+value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="markRollbackOnlyLast" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Mark only last sub transaction for rollback only. When using sub transactions
+(if the transaction manager support this). Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="message" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Message to use in rollback exception
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="routeBuilderDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:identifiedType">
+        <xs:sequence/>
+        <xs:attribute name="ref" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Reference to the route builder instance
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="routeContextRefDefinition">
+    <xs:sequence/>
+    <xs:attribute name="ref" type="xs:string" use="required">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Reference to the routes in the xml dsl
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:complexType name="routeDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:sequence>
+          <xs:element minOccurs="0" ref="tns:from"/>
+          <xs:element minOccurs="0" ref="tns:inputType"/>
+          <xs:element minOccurs="0" ref="tns:outputType"/>
+          <xs:choice maxOccurs="unbounded" minOccurs="0">
+            <xs:element ref="tns:aggregate"/>
+            <xs:element ref="tns:bean"/>
+            <xs:element ref="tns:doCatch"/>
+            <xs:element ref="tns:when"/>
+            <xs:element ref="tns:choice"/>
+            <xs:element ref="tns:otherwise"/>
+            <xs:element ref="tns:claimCheck"/>
+            <xs:element ref="tns:convertBodyTo"/>
+            <xs:element ref="tns:delay"/>
+            <xs:element ref="tns:dynamicRouter"/>
+            <xs:element ref="tns:enrich"/>
+            <xs:element ref="tns:filter"/>
+            <xs:element ref="tns:doFinally"/>
+            <xs:element ref="tns:hystrix"/>
+            <xs:element ref="tns:idempotentConsumer"/>
+            <xs:element ref="tns:inOnly"/>
+            <xs:element ref="tns:inOut"/>
+            <xs:element ref="tns:intercept"/>
+            <xs:element ref="tns:interceptFrom"/>
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+            <xs:element ref="tns:loadBalance"/>
+            <xs:element ref="tns:log"/>
+            <xs:element ref="tns:loop"/>
+            <xs:element ref="tns:marshal"/>
+            <xs:element ref="tns:multicast"/>
+            <xs:element ref="tns:onCompletion"/>
+            <xs:element ref="tns:onException"/>
+            <xs:element ref="tns:onFallback"/>
+            <xs:element ref="tns:pipeline"/>
+            <xs:element ref="tns:policy"/>
+            <xs:element ref="tns:pollEnrich"/>
+            <xs:element ref="tns:process"/>
+            <xs:element ref="tns:recipientList"/>
+            <xs:element ref="tns:removeHeader"/>
+            <xs:element ref="tns:removeHeaders"/>
+            <xs:element ref="tns:removeProperties"/>
+            <xs:element ref="tns:removeProperty"/>
+            <xs:element ref="tns:resequence"/>
+            <xs:element ref="tns:rollback"/>
+            <xs:element ref="tns:route"/>
+            <xs:element ref="tns:routingSlip"/>
+            <xs:element ref="tns:saga"/>
+            <xs:element ref="tns:sample"/>
+            <xs:element ref="tns:script"/>
+            <xs:element ref="tns:setBody"/>
+            <xs:element ref="tns:setExchangePattern"/>
+            <xs:element ref="tns:setHeader"/>
+            <xs:element ref="tns:setProperty"/>
+            <xs:element ref="tns:sort"/>
+            <xs:element ref="tns:split"/>
+            <xs:element ref="tns:step"/>
+            <xs:element ref="tns:stop"/>
+            <xs:element ref="tns:threads"/>
+            <xs:element ref="tns:throttle"/>
+            <xs:element ref="tns:throwException"/>
+            <xs:element ref="tns:to"/>
+            <xs:element ref="tns:toD"/>
+            <xs:element ref="tns:transacted"/>
+            <xs:element ref="tns:transform"/>
+            <xs:element ref="tns:doTry"/>
+            <xs:element ref="tns:unmarshal"/>
+            <xs:element ref="tns:validate"/>
+            <xs:element ref="tns:whenSkipSendToEndpoint"/>
+            <xs:element ref="tns:wireTap"/>
+            <xs:element ref="tns:serviceCall"/>
+          </xs:choice>
+          <xs:element maxOccurs="unbounded" minOccurs="0" name="routeProperty" type="tns:propertyDefinition"/>
+        </xs:sequence>
+        <xs:attribute name="autoStartup" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to auto start this route. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="delayer" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to slow down processing messages by a given delay in msec.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="errorHandlerRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the bean ref name of the error handler builder to use on this route
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="group" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The group that this route belongs to; could be the name of the RouteBuilder
+class or be explicitly configured in the XML. May be null.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="logMask" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether security mask for Logging is enabled on this route. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="messageHistory" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether message history is enabled on this route. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="rest" type="xs:boolean"/>
+        <xs:attribute name="routePolicyRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Reference to custom org.apache.camel.spi.RoutePolicy to use by the route.
+Multiple policies can be configured by separating values using comma.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="shutdownRoute" type="tns:shutdownRoute">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To control how to shutdown the route.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="shutdownRunningTask" type="tns:shutdownRunningTask">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To control how to shutdown the route.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="startupOrder" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To configure the ordering of the routes being started
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="streamCache" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether stream caching is enabled on this route.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="trace" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether tracing is enabled on this route.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="routesDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:optionalIdentifiedDefinition">
+        <xs:sequence>
+          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:route"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="routingSlipDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:choice>
+          <xs:element ref="tns:expressionDefinition"/>
+          <xs:element ref="tns:constant"/>
+          <xs:element ref="tns:exchangeProperty"/>
+          <xs:element ref="tns:groovy"/>
+          <xs:element ref="tns:header"/>
+          <xs:element ref="tns:hl7terser"/>
+          <xs:element ref="tns:jsonpath"/>
+          <xs:element ref="tns:language"/>
+          <xs:element ref="tns:method"/>
+          <xs:element ref="tns:mvel"/>
+          <xs:element ref="tns:ognl"/>
+          <xs:element ref="tns:ref"/>
+          <xs:element ref="tns:simple"/>
+          <xs:element ref="tns:spel"/>
+          <xs:element ref="tns:tokenize"/>
+          <xs:element ref="tns:xtokenize"/>
+          <xs:element ref="tns:xpath"/>
+          <xs:element ref="tns:xquery"/>
+        </xs:choice>
+        <xs:attribute name="uriDelimiter" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the uri delimiter to use. Default value: ,
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="ignoreInvalidEndpoints" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Ignore the invalidate endpoint exception when try to create a producer with that
+endpoint. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="cacheSize" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the maximum size used by the org.apache.camel.spi.ProducerCache which is
+used to cache and reuse producers when using this routing slip, when uris are
+reused.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="sagaActionUriDefinition">
+    <xs:sequence/>
+    <xs:attribute name="uri" type="xs:string" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="sagaDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:output">
+        <xs:sequence>
+          <xs:element minOccurs="0" name="compensation" type="tns:sagaActionUriDefinition"/>
+          <xs:element minOccurs="0" name="completion" type="tns:sagaActionUriDefinition"/>
+          <xs:element maxOccurs="unbounded" minOccurs="0" name="option" type="tns:sagaOptionDefinition"/>
+        </xs:sequence>
+        <xs:attribute name="propagation" type="tns:sagaPropagation">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Set the Saga propagation mode (REQUIRED, REQUIRES_NEW, MANDATORY, SUPPORTS,
+NOT_SUPPORTED, NEVER). Default value: REQUIRED
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="completionMode" type="tns:sagaCompletionMode">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Determine how the saga should be considered complete. When set to AUTO, the saga
+is completed when the exchange that initiates the saga is processed
+successfully, or compensated when it completes exceptionally. When set to
+MANUAL, the user must complete or compensate the saga using the saga:complete or
+saga:compensate endpoints. Default value: AUTO
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="timeoutInMilliseconds" type="xs:long">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Set the maximum amount of time for the Saga. After the timeout is expired, the
+saga will be compensated automatically (unless a different decision has been
+taken in the meantime).
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="sagaOptionDefinition">
+    <xs:choice>
+      <xs:element ref="tns:expressionDefinition"/>
+      <xs:element ref="tns:constant"/>
+      <xs:element ref="tns:exchangeProperty"/>
+      <xs:element ref="tns:groovy"/>
+      <xs:element ref="tns:header"/>
+      <xs:element ref="tns:hl7terser"/>
+      <xs:element ref="tns:jsonpath"/>
+      <xs:element ref="tns:language"/>
+      <xs:element ref="tns:method"/>
+      <xs:element ref="tns:mvel"/>
+      <xs:element ref="tns:ognl"/>
+      <xs:element ref="tns:ref"/>
+      <xs:element ref="tns:simple"/>
+      <xs:element ref="tns:spel"/>
+      <xs:element ref="tns:tokenize"/>
+      <xs:element ref="tns:xtokenize"/>
+      <xs:element ref="tns:xpath"/>
+      <xs:element ref="tns:xquery"/>
+    </xs:choice>
+    <xs:attribute name="optionName" type="xs:string" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="samplingDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:noOutputDefinition">
+        <xs:sequence/>
+        <xs:attribute name="samplePeriod" type="xs:long">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the sample period during which only a single Exchange will pass through.
+Default value: 1
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="messageFrequency" type="xs:long">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the sample message count which only a single Exchange will pass through
+after this many received.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="units" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the time units for the sample period, defaulting to seconds. Default value:
+SECONDS
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="scriptDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:choice>
+          <xs:element ref="tns:expressionDefinition"/>
+          <xs:element ref="tns:constant"/>
+          <xs:element ref="tns:exchangeProperty"/>
+          <xs:element ref="tns:groovy"/>
+          <xs:element ref="tns:header"/>
+          <xs:element ref="tns:hl7terser"/>
+          <xs:element ref="tns:jsonpath"/>
+          <xs:element ref="tns:language"/>
+          <xs:element ref="tns:method"/>
+          <xs:element ref="tns:mvel"/>
+          <xs:element ref="tns:ognl"/>
+          <xs:element ref="tns:ref"/>
+          <xs:element ref="tns:simple"/>
+          <xs:element ref="tns:spel"/>
+          <xs:element ref="tns:tokenize"/>
+          <xs:element ref="tns:xtokenize"/>
+          <xs:element ref="tns:xpath"/>
+          <xs:element ref="tns:xquery"/>
+        </xs:choice>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="setBodyDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:choice>
+          <xs:element ref="tns:expressionDefinition"/>
+          <xs:element ref="tns:constant"/>
+          <xs:element ref="tns:exchangeProperty"/>
+          <xs:element ref="tns:groovy"/>
+          <xs:element ref="tns:header"/>
+          <xs:element ref="tns:hl7terser"/>
+          <xs:element ref="tns:jsonpath"/>
+          <xs:element ref="tns:language"/>
+          <xs:element ref="tns:method"/>
+          <xs:element ref="tns:mvel"/>
+          <xs:element ref="tns:ognl"/>
+          <xs:element ref="tns:ref"/>
+          <xs:element ref="tns:simple"/>
+          <xs:element ref="tns:spel"/>
+          <xs:element ref="tns:tokenize"/>
+          <xs:element ref="tns:xtokenize"/>
+          <xs:element ref="tns:xpath"/>
+          <xs:element ref="tns:xquery"/>
+        </xs:choice>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="setExchangePatternDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:noOutputDefinition">
+        <xs:sequence/>
+        <xs:attribute name="pattern" type="tns:exchangePattern" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the new exchange pattern of the Exchange to be used from this point forward
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="setHeaderDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:choice>
+          <xs:element ref="tns:expressionDefinition"/>
+          <xs:element ref="tns:constant"/>
+          <xs:element ref="tns:exchangeProperty"/>
+          <xs:element ref="tns:groovy"/>
+          <xs:element ref="tns:header"/>
+          <xs:element ref="tns:hl7terser"/>
+          <xs:element ref="tns:jsonpath"/>
+          <xs:element ref="tns:language"/>
+          <xs:element ref="tns:method"/>
+          <xs:element ref="tns:mvel"/>
+          <xs:element ref="tns:ognl"/>
+          <xs:element ref="tns:ref"/>
+          <xs:element ref="tns:simple"/>
+          <xs:element ref="tns:spel"/>
+          <xs:element ref="tns:tokenize"/>
+          <xs:element ref="tns:xtokenize"/>
+          <xs:element ref="tns:xpath"/>
+          <xs:element ref="tns:xquery"/>
+        </xs:choice>
+        <xs:attribute name="name" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Name of message header to set a new value The simple language can be used to
+define a dynamic evaluated header name to be used. Otherwise a constant name
+will be used.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="setPropertyDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:choice>
+          <xs:element ref="tns:expressionDefinition"/>
+          <xs:element ref="tns:constant"/>
+          <xs:element ref="tns:exchangeProperty"/>
+          <xs:element ref="tns:groovy"/>
+          <xs:element ref="tns:header"/>
+          <xs:element ref="tns:hl7terser"/>
+          <xs:element ref="tns:jsonpath"/>
+          <xs:element ref="tns:language"/>
+          <xs:element ref="tns:method"/>
+          <xs:element ref="tns:mvel"/>
+          <xs:element ref="tns:ognl"/>
+          <xs:element ref="tns:ref"/>
+          <xs:element ref="tns:simple"/>
+          <xs:element ref="tns:spel"/>
+          <xs:element ref="tns:tokenize"/>
+          <xs:element ref="tns:xtokenize"/>
+          <xs:element ref="tns:xpath"/>
+          <xs:element ref="tns:xquery"/>
+        </xs:choice>
+        <xs:attribute name="name" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Name of exchange property to set a new value. The simple language can be used to
+define a dynamic evaluated exchange property name to be used. Otherwise a
+constant name will be used.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="sortDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:choice>
+          <xs:element ref="tns:expressionDefinition"/>
+          <xs:element ref="tns:constant"/>
+          <xs:element ref="tns:exchangeProperty"/>
+          <xs:element ref="tns:groovy"/>
+          <xs:element ref="tns:header"/>
+          <xs:element ref="tns:hl7terser"/>
+          <xs:element ref="tns:jsonpath"/>
+          <xs:element ref="tns:language"/>
+          <xs:element ref="tns:method"/>
+          <xs:element ref="tns:mvel"/>
+          <xs:element ref="tns:ognl"/>
+          <xs:element ref="tns:ref"/>
+          <xs:element ref="tns:simple"/>
+          <xs:element ref="tns:spel"/>
+          <xs:element ref="tns:tokenize"/>
+          <xs:element ref="tns:xtokenize"/>
+          <xs:element ref="tns:xpath"/>
+          <xs:element ref="tns:xquery"/>
+        </xs:choice>
+        <xs:attribute name="comparatorRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets a reference to lookup for the comparator to use for sorting
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="splitDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:sequence>
+          <xs:choice>
+            <xs:element ref="tns:expressionDefinition"/>
+            <xs:element ref="tns:constant"/>
+            <xs:element ref="tns:exchangeProperty"/>
+            <xs:element ref="tns:groovy"/>
+            <xs:element ref="tns:header"/>
+            <xs:element ref="tns:hl7terser"/>
+            <xs:element ref="tns:jsonpath"/>
+            <xs:element ref="tns:language"/>
+            <xs:element ref="tns:method"/>
+            <xs:element ref="tns:mvel"/>
+            <xs:element ref="tns:ognl"/>
+            <xs:element ref="tns:ref"/>
+            <xs:element ref="tns:simple"/>
+            <xs:element ref="tns:spel"/>
+            <xs:element ref="tns:tokenize"/>
+            <xs:element ref="tns:xtokenize"/>
+            <xs:element ref="tns:xpath"/>
+            <xs:element ref="tns:xquery"/>
+          </xs:choice>
+          <xs:choice maxOccurs="unbounded" minOccurs="0">
+            <xs:element ref="tns:aggregate"/>
+            <xs:element ref="tns:bean"/>
+            <xs:element ref="tns:doCatch"/>
+            <xs:element ref="tns:when"/>
+            <xs:element ref="tns:choice"/>
+            <xs:element ref="tns:otherwise"/>
+            <xs:element ref="tns:claimCheck"/>
+            <xs:element ref="tns:convertBodyTo"/>
+            <xs:element ref="tns:delay"/>
+            <xs:element ref="tns:dynamicRouter"/>
+            <xs:element ref="tns:enrich"/>
+            <xs:element ref="tns:filter"/>
+            <xs:element ref="tns:doFinally"/>
+            <xs:element ref="tns:hystrix"/>
+            <xs:element ref="tns:idempotentConsumer"/>
+            <xs:element ref="tns:inOnly"/>
+            <xs:element ref="tns:inOut"/>
+            <xs:element ref="tns:intercept"/>
+            <xs:element ref="tns:interceptFrom"/>
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+            <xs:element ref="tns:loadBalance"/>
+            <xs:element ref="tns:log"/>
+            <xs:element ref="tns:loop"/>
+            <xs:element ref="tns:marshal"/>
+            <xs:element ref="tns:multicast"/>
+            <xs:element ref="tns:onCompletion"/>
+            <xs:element ref="tns:onException"/>
+            <xs:element ref="tns:onFallback"/>
+            <xs:element ref="tns:pipeline"/>
+            <xs:element ref="tns:policy"/>
+            <xs:element ref="tns:pollEnrich"/>
+            <xs:element ref="tns:process"/>
+            <xs:element ref="tns:recipientList"/>
+            <xs:element ref="tns:removeHeader"/>
+            <xs:element ref="tns:removeHeaders"/>
+            <xs:element ref="tns:removeProperties"/>
+            <xs:element ref="tns:removeProperty"/>
+            <xs:element ref="tns:resequence"/>
+            <xs:element ref="tns:rollback"/>
+            <xs:element ref="tns:route"/>
+            <xs:element ref="tns:routingSlip"/>
+            <xs:element ref="tns:saga"/>
+            <xs:element ref="tns:sample"/>
+            <xs:element ref="tns:script"/>
+            <xs:element ref="tns:setBody"/>
+            <xs:element ref="tns:setExchangePattern"/>
+            <xs:element ref="tns:setHeader"/>
+            <xs:element ref="tns:setProperty"/>
+            <xs:element ref="tns:sort"/>
+            <xs:element ref="tns:split"/>
+            <xs:element ref="tns:step"/>
+            <xs:element ref="tns:stop"/>
+            <xs:element ref="tns:threads"/>
+            <xs:element ref="tns:throttle"/>
+            <xs:element ref="tns:throwException"/>
+            <xs:element ref="tns:to"/>
+            <xs:element ref="tns:toD"/>
+            <xs:element ref="tns:transacted"/>
+            <xs:element ref="tns:transform"/>
+            <xs:element ref="tns:doTry"/>
+            <xs:element ref="tns:unmarshal"/>
+            <xs:element ref="tns:validate"/>
+            <xs:element ref="tns:whenSkipSendToEndpoint"/>
+            <xs:element ref="tns:wireTap"/>
+            <xs:element ref="tns:serviceCall"/>
+          </xs:choice>
+        </xs:sequence>
+        <xs:attribute name="parallelProcessing" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If enabled then processing each splitted messages occurs concurrently. Note the
+caller thread will still wait until all messages has been fully processed,
+before it continues. Its only processing the sub messages from the splitter
+which happens concurrently. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="strategyRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets a reference to the AggregationStrategy to be used to assemble the replies
+from the splitted messages, into a single outgoing message from the Splitter. By
+default Camel will use the original incoming message to the splitter (leave it
+unchanged). You can also use a POJO as the AggregationStrategy
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="strategyMethodName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+This option can be used to explicit declare the method name to use, when using
+POJOs as the AggregationStrategy.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="strategyMethodAllowNull" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If this option is false then the aggregate method is not used if there was no
+data to enrich. If this option is true then null values is used as the
+oldExchange (when no data to enrich), when using POJOs as the
+AggregationStrategy. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="executorServiceRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Refers to a custom Thread Pool to be used for parallel processing. Notice if you
+set this option, then parallel processing is automatic implied, and you do not
+have to enable that option as well.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="streaming" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+When in streaming mode, then the splitter splits the original message on-demand,
+and each splitted message is processed one by one. This reduces memory usage as
+the splitter do not split all the messages first, but then we do not know the
+total size, and therefore the org.apache.camel.Exchange#SPLIT_SIZE is empty. In
+non-streaming mode (default) the splitter will split each message first, to know
+the total size, and then process each message one by one. This requires to keep
+all the splitted messages in memory and therefore requires more memory. The
+total size is provided in the org.apache.camel.Exchange#SPLIT_SIZE header. The
+streaming mode also affects the aggregation behavior. If enabled then Camel will
+process replies out-of-order, eg in the order they come back. If disabled, Camel
+will process replies in the same order as the messages was splitted. Default
+value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="stopOnException" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Will now stop further processing if an exception or failure occurred during
+processing of an org.apache.camel.Exchange and the caused exception will be
+thrown. Will also stop if processing the exchange failed (has a fault message)
+or an exception was thrown and handled by the error handler (such as using
+onException). In all situations the splitter will stop further processing. This
+is the same behavior as in pipeline, which is used by the routing engine. The
+default behavior is to not stop but continue processing till the end. Default
+value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="timeout" type="xs:long">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets a total timeout specified in millis, when using parallel processing. If the
+Splitter hasn't been able to split and process all the sub messages within the
+given timeframe, then the timeout triggers and the Splitter breaks out and
+continues. Notice if you provide a TimeoutAwareAggregationStrategy then the
+timeout method is invoked before breaking out. If the timeout is reached with
+running tasks still remaining, certain tasks for which it is difficult for Camel
+to shut down in a graceful manner may continue to run. So use this option with a
+bit of care. Default value: 0
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="onPrepareRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Uses the Processor when preparing the org.apache.camel.Exchange to be send. This
+can be used to deep-clone messages that should be send, or any custom logic
+needed before the exchange is send.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="shareUnitOfWork" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Shares the org.apache.camel.spi.UnitOfWork with the parent and each of the sub
+messages. Splitter will by default not share unit of work between the parent
+exchange and each splitted exchange. This means each splitted exchange has its
+own individual unit of work. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="parallelAggregate" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If enabled then the aggregate method on AggregationStrategy can be called
+concurrently. Notice that this would require the implementation of
+AggregationStrategy to be implemented as thread-safe. By default this is false
+meaning that Camel synchronizes the call to the aggregate method. Though in some
+use-cases this can be used to archive higher performance when the
+AggregationStrategy is implemented as thread-safe. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="stopOnAggregateException" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If enabled, unwind exceptions occurring at aggregation time to the error handler
+when parallelProcessing is used. Currently, aggregation time exceptions do not
+stop the route processing when parallelProcessing is used. Enabling this option
+allows to work around this behavior. The default value is false for the sake of
+backward compatibility. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="stepDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:output">
+        <xs:sequence/>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="stopDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:noOutputDefinition">
+        <xs:sequence/>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="threadPoolProfileDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:optionalIdentifiedDefinition">
+        <xs:sequence/>
+        <xs:attribute name="defaultProfile" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether this profile is the default thread pool profile. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="poolSize" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the core pool size
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="maxPoolSize" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the maximum pool size
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="keepAliveTime" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the keep alive time for idle threads in the pool
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="timeUnit" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the time unit to use for keep alive time By default SECONDS is used.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="maxQueueSize" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the maximum number of tasks in the work queue. Use -1 or Integer.MAX_VALUE
+for an unbounded queue
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="allowCoreThreadTimeOut" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether idle core threads is allowed to timeout and therefore can shrink the
+pool size below the core pool size Is by default false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="rejectedPolicy" type="tns:threadPoolRejectedPolicy">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the handler for tasks which cannot be executed by the thread pool.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="threadsDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:noOutputDefinition">
+        <xs:sequence/>
+        <xs:attribute name="executorServiceRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To refer to a custom thread pool or use a thread pool profile (as overlay)
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="poolSize" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the core pool size
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="maxPoolSize" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the maximum pool size
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="keepAliveTime" type="xs:long">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the keep alive time for idle threads
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="timeUnit" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the keep alive time unit. By default SECONDS is used.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="maxQueueSize" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the maximum number of tasks in the work queue. Use -1 or Integer.MAX_VALUE
+for an unbounded queue
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="allowCoreThreadTimeOut" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether idle core threads is allowed to timeout and therefore can shrink the
+pool size below the core pool size Is by default false. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="threadName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the thread name to use. Default value: Threads
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="rejectedPolicy" type="tns:threadPoolRejectedPolicy">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the handler for tasks which cannot be executed by the thread pool.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="callerRunsWhenRejected" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether or not to use as caller runs as fallback when a task is rejected being
+added to the thread pool (when its full). This is only used as fallback if no
+rejectedPolicy has been configured, or the thread pool has no configured
+rejection handler. Is by default true. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="throttleDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:sequence>
+          <xs:choice>
+            <xs:element ref="tns:expressionDefinition"/>
+            <xs:element ref="tns:constant"/>
+            <xs:element ref="tns:exchangeProperty"/>
+            <xs:element ref="tns:groovy"/>
+            <xs:element ref="tns:header"/>
+            <xs:element ref="tns:hl7terser"/>
+            <xs:element ref="tns:jsonpath"/>
+            <xs:element ref="tns:language"/>
+            <xs:element ref="tns:method"/>
+            <xs:element ref="tns:mvel"/>
+            <xs:element ref="tns:ognl"/>
+            <xs:element ref="tns:ref"/>
+            <xs:element ref="tns:simple"/>
+            <xs:element ref="tns:spel"/>
+            <xs:element ref="tns:tokenize"/>
+            <xs:element ref="tns:xtokenize"/>
+            <xs:element ref="tns:xpath"/>
+            <xs:element ref="tns:xquery"/>
+          </xs:choice>
+          <xs:element minOccurs="0" name="correlationExpression" type="tns:expressionSubElementDefinition"/>
+        </xs:sequence>
+        <xs:attribute name="executorServiceRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To use a custom thread pool (ScheduledExecutorService) by the throttler.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="timePeriodMillis" type="xs:long">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the time period during which the maximum request count is valid for.
+Default value: 1000
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="asyncDelayed" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Enables asynchronous delay which means the thread will not block while delaying.
+Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="callerRunsWhenRejected" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether or not the caller should run the task when it was rejected by the thread
+pool. Is by default true. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="rejectExecution" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether or not throttler throws the ThrottlerRejectedExecutionException when the
+exchange exceeds the request limit Is by default false. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="throwExceptionDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:noOutputDefinition">
+        <xs:sequence/>
+        <xs:attribute name="ref" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Reference to the exception instance to lookup from the registry to throw
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="message" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To create a new exception instance and use the given message as caused message
+(supports simple language)
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="exceptionType" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The class of the exception to create using the message.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="toDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:sendDefinition">
+        <xs:sequence/>
+        <xs:attribute name="pattern" type="tns:exchangePattern">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the optional ExchangePattern used to invoke this endpoint
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="toDynamicDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:noOutputDefinition">
+        <xs:sequence/>
+        <xs:attribute name="uri" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The uri of the endpoint to send to. The uri can be dynamic computed using the
+org.apache.camel.language.simple.SimpleLanguage expression.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="pattern" type="tns:exchangePattern">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the optional ExchangePattern used to invoke this endpoint
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="cacheSize" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the maximum size used by the org.apache.camel.spi.ConsumerCache which is
+used to cache and reuse producers.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="ignoreInvalidEndpoint" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Ignore the invalidate endpoint exception when try to create a producer with that
+endpoint. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="allowOptimisedComponents" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to allow components to optimise toD if they are
+org.apache.camel.spi.SendDynamicAware. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="transactedDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:output">
+        <xs:sequence/>
+        <xs:attribute name="ref" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets a reference to use for lookup the policy in the registry.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="transformDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:choice>
+          <xs:element ref="tns:expressionDefinition"/>
+          <xs:element ref="tns:constant"/>
+          <xs:element ref="tns:exchangeProperty"/>
+          <xs:element ref="tns:groovy"/>
+          <xs:element ref="tns:header"/>
+          <xs:element ref="tns:hl7terser"/>
+          <xs:element ref="tns:jsonpath"/>
+          <xs:element ref="tns:language"/>
+          <xs:element ref="tns:method"/>
+          <xs:element ref="tns:mvel"/>
+          <xs:element ref="tns:ognl"/>
+          <xs:element ref="tns:ref"/>
+          <xs:element ref="tns:simple"/>
+          <xs:element ref="tns:spel"/>
+          <xs:element ref="tns:tokenize"/>
+          <xs:element ref="tns:xtokenize"/>
+          <xs:element ref="tns:xpath"/>
+          <xs:element ref="tns:xquery"/>
+        </xs:choice>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tryDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:output">
+        <xs:sequence/>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="unmarshalDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:noOutputDefinition">
+        <xs:sequence>
+          <xs:choice minOccurs="0">
+            <xs:element ref="tns:any23"/>
+            <xs:element ref="tns:asn1"/>
+            <xs:element ref="tns:avro"/>
+            <xs:element ref="tns:barcode"/>
+            <xs:element ref="tns:base64"/>
+            <xs:element ref="tns:beanio"/>
+            <xs:element ref="tns:bindy"/>
+            <xs:element ref="tns:cbor"/>
+            <xs:element ref="tns:crypto"/>
+            <xs:element ref="tns:csv"/>
+            <xs:element name="custom" type="tns:customDataFormat"/>
+            <xs:element ref="tns:fhirJson"/>
+            <xs:element ref="tns:fhirXml"/>
+            <xs:element ref="tns:flatpack"/>
+            <xs:element ref="tns:grok"/>
+            <xs:element name="gzip" type="tns:gzipDataFormat"/>
+            <xs:element ref="tns:hl7"/>
+            <xs:element ref="tns:ical"/>
+            <xs:element ref="tns:jacksonxml"/>
+            <xs:element ref="tns:jaxb"/>
+            <xs:element ref="tns:json"/>
+            <xs:element ref="tns:jsonApi"/>
+            <xs:element ref="tns:lzf"/>
+            <xs:element name="mimeMultipart" type="tns:mimeMultipartDataFormat"/>
+            <xs:element ref="tns:protobuf"/>
+            <xs:element ref="tns:rss"/>
+            <xs:element ref="tns:secureXML"/>
+            <xs:element ref="tns:soapjaxb"/>
+            <xs:element ref="tns:syslog"/>
+            <xs:element ref="tns:tarfile"/>
+            <xs:element ref="tns:thrift"/>
+            <xs:element ref="tns:tidyMarkup"/>
+            <xs:element ref="tns:univocity-csv"/>
+            <xs:element ref="tns:univocity-fixed"/>
+            <xs:element ref="tns:univocity-tsv"/>
+            <xs:element ref="tns:xmlrpc"/>
+            <xs:element ref="tns:xstream"/>
+            <xs:element ref="tns:pgp"/>
+            <xs:element ref="tns:yaml"/>
+            <xs:element name="zip" type="tns:zipDeflaterDataFormat"/>
+            <xs:element ref="tns:zipfile"/>
+          </xs:choice>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="grokDataFormat">
+    <xs:complexContent>
+      <xs:extension base="tns:dataFormat">
+        <xs:sequence/>
+        <xs:attribute name="pattern" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The grok pattern to match lines of input
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="flattened" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Turns on flattened mode. In flattened mode the exception is thrown when there
+are multiple pattern matches with same key. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="allowMultipleMatchesPerLine" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If false, every line of input is matched for pattern only once. Otherwise the
+line can be scanned multiple times when non-terminal pattern is used. Default
+value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="namedOnly" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to capture named expressions only or not (i.e. %{IP:ip} but not ${IP}).
+Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="validateDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:processorDefinition">
+        <xs:choice>
+          <xs:element ref="tns:expressionDefinition"/>
+          <xs:element ref="tns:constant"/>
+          <xs:element ref="tns:exchangeProperty"/>
+          <xs:element ref="tns:groovy"/>
+          <xs:element ref="tns:header"/>
+          <xs:element ref="tns:hl7terser"/>
+          <xs:element ref="tns:jsonpath"/>
+          <xs:element ref="tns:language"/>
+          <xs:element ref="tns:method"/>
+          <xs:element ref="tns:mvel"/>
+          <xs:element ref="tns:ognl"/>
+          <xs:element ref="tns:ref"/>
+          <xs:element ref="tns:simple"/>
+          <xs:element ref="tns:spel"/>
+          <xs:element ref="tns:tokenize"/>
+          <xs:element ref="tns:xtokenize"/>
+          <xs:element ref="tns:xpath"/>
+          <xs:element ref="tns:xquery"/>
+        </xs:choice>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="whenSkipSendToEndpointDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:whenDefinition">
+        <xs:sequence/>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="wireTapDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:toDynamicDefinition">
+        <xs:sequence>
+          <xs:element minOccurs="0" name="body" type="tns:expressionSubElementDefinition"/>
+          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:setHeader"/>
+        </xs:sequence>
+        <xs:attribute name="processorRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Reference to a Processor to use for creating a new body as the message to use
+for wire tapping
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="executorServiceRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Uses a custom thread pool
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="copy" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Uses a copy of the original exchange. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="dynamicUri" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether the uri is dynamic or static. If the uri is dynamic then the simple
+language is used to evaluate a dynamic uri to use as the wire-tap destination,
+for each incoming message. This works similar to how the toD EIP pattern works.
+If static then the uri is used as-is as the wire-tap destination. Default value:
+true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="onPrepareRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Uses the Processor when preparing the org.apache.camel.Exchange to be send. This
+can be used to deep-clone messages that should be send, or any custom logic
+needed before the exchange is send.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:anyAttribute namespace="##other" processContents="skip"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="blacklistServiceCallServiceFilterConfiguration">
+    <xs:complexContent>
+      <xs:extension base="tns:serviceCallServiceFilterConfiguration">
+        <xs:sequence>
+          <xs:element maxOccurs="unbounded" minOccurs="0" name="servers" type="xs:string"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="serviceCallServiceFilterConfiguration">
+    <xs:complexContent>
+      <xs:extension base="tns:identifiedType">
+        <xs:sequence>
+          <xs:element maxOccurs="unbounded" minOccurs="0" name="properties" type="tns:propertyDefinition"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="cachingServiceCallServiceDiscoveryConfiguration">
+    <xs:complexContent>
+      <xs:extension base="tns:serviceCallServiceDiscoveryConfiguration">
+        <xs:sequence>
+          <xs:choice minOccurs="0">
+            <xs:element ref="tns:consulServiceDiscovery"/>
+            <xs:element ref="tns:dnsServiceDiscovery"/>
+            <xs:element ref="tns:etcdServiceDiscovery"/>
+            <xs:element ref="tns:kubernetesServiceDiscovery"/>
+            <xs:element ref="tns:combinedServiceDiscovery"/>
+            <xs:element ref="tns:staticServiceDiscovery"/>
+          </xs:choice>
+        </xs:sequence>
+        <xs:attribute name="timeout" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Set the time the services will be retained. Default value: 60
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="units" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Set the time unit for the timeout. Default value: SECONDS
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="serviceCallServiceDiscoveryConfiguration">
+    <xs:complexContent>
+      <xs:extension base="tns:identifiedType">
+        <xs:sequence>
+          <xs:element maxOccurs="unbounded" minOccurs="0" name="properties" type="tns:propertyDefinition"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="consulServiceCallServiceDiscoveryConfiguration">
+    <xs:complexContent>
+      <xs:extension base="tns:serviceCallServiceDiscoveryConfiguration">
+        <xs:sequence/>
+        <xs:attribute name="url" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The Consul agent URL
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="datacenter" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The data center
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="aclToken" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the ACL token to be used with Consul
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="userName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the username to be used for basic authentication
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="password" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the password to be used for basic authentication
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="connectTimeoutMillis" type="xs:long">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Connect timeout for OkHttpClient
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="readTimeoutMillis" type="xs:long">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Read timeout for OkHttpClient
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="writeTimeoutMillis" type="xs:long">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Write timeout for OkHttpClient
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="blockSeconds" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The seconds to wait for a watch event, default 10 seconds. Default value: 10
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="dnsServiceCallServiceDiscoveryConfiguration">
+    <xs:complexContent>
+      <xs:extension base="tns:serviceCallServiceDiscoveryConfiguration">
+        <xs:sequence/>
+        <xs:attribute name="proto" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The transport protocol of the desired service. Default value: _tcp
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="domain" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The domain name;
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="etcdServiceCallServiceDiscoveryConfiguration">
+    <xs:complexContent>
+      <xs:extension base="tns:serviceCallServiceDiscoveryConfiguration">
+        <xs:sequence/>
+        <xs:attribute name="uris" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The URIs the client can connect to.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="userName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The user name to use for basic authentication.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="password" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The password to use for basic authentication.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="timeout" type="xs:long">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To set the maximum time an action could take to complete.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="servicePath" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The path to look for for service discovery. Default value: /services/
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="type" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To set the discovery type, valid values are on-demand and watch. Default value:
+on-demand
+            ]]></xs:documentation>
+          </xs:annotation>
... 30548 lines suppressed ...