You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gz...@apache.org on 2023/03/10 11:32:33 UTC

[camel-website] branch main updated: Add XML schemas for Camel 4.0.0-M2

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

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


The following commit(s) were added to refs/heads/main by this push:
     new 69b748fe Add XML schemas for Camel 4.0.0-M2
69b748fe is described below

commit 69b748fec6372c003cf8da1fe5e721bd698a79ef
Author: Gregor Zurowski <gr...@zurowski.org>
AuthorDate: Fri Mar 10 11:32:29 2023 +0000

    Add XML schemas for Camel 4.0.0-M2
---
 .../camel-cxf-spring-rest-4.0.0-M2-spring.xsd      |   144 +
 .../camel-cxf-spring-soap-4.0.0-M2-spring.xsd      |   104 +
 .../camel-spring-security-4.0.0-M2.xsd             |    44 +
 .../spring-xml/camel-spring-xml-4.0.0-M2.xsd       | 21362 +++++++++++++++++++
 4 files changed, 21654 insertions(+)

diff --git a/static/schema/cxf/jaxrs/camel-cxf-spring-rest-4.0.0-M2-spring.xsd b/static/schema/cxf/jaxrs/camel-cxf-spring-rest-4.0.0-M2-spring.xsd
new file mode 100644
index 00000000..8a99bf76
--- /dev/null
+++ b/static/schema/cxf/jaxrs/camel-cxf-spring-rest-4.0.0-M2-spring.xsd
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<xsd:schema xmlns="http://camel.apache.org/schema/cxf/jaxrs"
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+  xmlns:beans="http://www.springframework.org/schema/beans"
+  xmlns:cxf-beans="http://cxf.apache.org/configuration/beans"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  targetNamespace="http://camel.apache.org/schema/cxf/jaxrs" 
+  elementFormDefault="qualified"
+  attributeFormDefault="unqualified">
+
+  <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans.xsd"/>
+  <xsd:import namespace="http://cxf.apache.org/configuration/beans" schemaLocation="http://cxf.apache.org/schemas/configuration/cxf-beans.xsd"/>
+    
+  <xsd:element name="rsServer">
+    <xsd:complexType>
+      <xsd:complexContent>
+        <xsd:extension base="beans:identifiedType">
+          <xsd:all>
+            <xsd:element name="executor" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="features" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="binding" type="xsd:anyType" minOccurs="0" />  
+            <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="inFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="invoker" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="outInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="outFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="properties" type="beans:mapType" minOccurs="0"/>
+            <xsd:element name="serviceBeans" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="modelBeans" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="model" type="model" minOccurs="0"/>
+            <xsd:element name="providers" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="extensionMappings" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="languageMappings" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="schemaLocations" type="schemasType" minOccurs="0"/>
+          </xsd:all>
+          <xsd:attributeGroup ref="cxf-beans:beanAttributes"/>
+          <xsd:attribute name="address" type="xsd:string" />
+          <xsd:attribute name="bus" type="xsd:string" />
+          <xsd:attribute name="serviceClass" type="xsd:string"/>                    
+          <xsd:attribute name="transportId" type="xsd:string"/>
+          <xsd:attribute name="modelRef" type="xsd:string" />
+          <xsd:attribute name="bindingId" type="xsd:string" />          
+          <xsd:attribute name="staticSubresourceResolution" type="xsd:boolean" />
+          <xsd:attribute name="loggingFeatureEnabled" type="xsd:boolean"/>
+          <xsd:attribute name="loggingSizeLimit" type="xsd:integer" />
+          <xsd:attribute name="skipFaultLogging" type="xsd:boolean" />
+          <xsd:attribute name="publishedEndpointUrl" type="xsd:string" />
+        </xsd:extension>
+      </xsd:complexContent>
+    </xsd:complexType>
+  </xsd:element>
+  
+  <xsd:element name="rsClient">
+    <xsd:complexType>
+      <xsd:complexContent>
+        <xsd:extension base="beans:identifiedType">
+          <xsd:all>
+            <xsd:element name="executor" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="features" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="binding" type="xsd:anyType" minOccurs="0" />
+            <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="inFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="outInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="outFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="properties" type="beans:mapType" minOccurs="0"/>
+            <xsd:element name="providers" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="modelBeans" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="model" type="model" minOccurs="0"/>
+            <xsd:element name="headers" type="xsd:anyType" minOccurs="0"/> 
+            <xsd:element name="schemaLocations" type="schemasType" minOccurs="0"/>
+          </xsd:all>
+          <xsd:attributeGroup ref="cxf-beans:beanAttributes"/>
+          <xsd:attribute name="address" type="xsd:string" />
+          <xsd:attribute name="serviceClass" type="xsd:string"/>
+          <xsd:attribute name="inheritHeaders" type="xsd:boolean"/>
+          <xsd:attribute name="bus" type="xsd:string" />
+          <xsd:attribute name="transportId" type="xsd:string"/>
+          <xsd:attribute name="bindingId" type="xsd:string" />
+          <xsd:attribute name="modelRef" type="xsd:string" />
+          <xsd:attribute name="username" type="xsd:string"/>
+          <xsd:attribute name="password" type="xsd:string"/>
+          <xsd:attribute name="loggingFeatureEnabled" type="xsd:boolean"/>
+          <xsd:attribute name="loggingSizeLimit" type="xsd:integer" />
+          <xsd:attribute name="skipFaultLogging" type="xsd:boolean" />
+        </xsd:extension>
+      </xsd:complexContent>
+    </xsd:complexType>
+  </xsd:element>
+  
+  <xsd:complexType name="schemasType">
+    <xsd:sequence>
+      <xsd:element name="schemaLocation" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+  
+  <xsd:complexType name="model">
+    <xsd:sequence>
+      <xsd:element name="resource" minOccurs="0" maxOccurs="unbounded">
+         <xsd:complexType>
+             <xsd:sequence>
+                 <xsd:element name="operation" minOccurs="0" maxOccurs="unbounded">
+                    <xsd:complexType>
+                      <xsd:sequence>
+                         <xsd:element name="param" minOccurs="0" maxOccurs="unbounded">
+                           <xsd:complexType>
+                              <xsd:attribute name="name" type="xsd:string"/>
+                              <xsd:attribute name="type" type="xsd:string"/>
+                           </xsd:complexType>
+                         </xsd:element>
+                      </xsd:sequence>
+                      <xsd:attribute name="name" type="xsd:string"/>
+                      <xsd:attribute name="path" type="xsd:string"/>
+                      <xsd:attribute name="verb" type="xsd:string"/>
+                      <xsd:attribute name="consumes" type="xsd:string"/>
+                      <xsd:attribute name="produces" type="xsd:string"/>
+                    </xsd:complexType>
+                 </xsd:element>
+             </xsd:sequence>
+             <xsd:attribute name="name" type="xsd:string"/>
+             <xsd:attribute name="path" type="xsd:string"/>
+         </xsd:complexType>
+      </xsd:element>   
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:string"/>
+  </xsd:complexType>  
+</xsd:schema>
diff --git a/static/schema/cxf/jaxws/camel-cxf-spring-soap-4.0.0-M2-spring.xsd b/static/schema/cxf/jaxws/camel-cxf-spring-soap-4.0.0-M2-spring.xsd
new file mode 100644
index 00000000..ea7ac07a
--- /dev/null
+++ b/static/schema/cxf/jaxws/camel-cxf-spring-soap-4.0.0-M2-spring.xsd
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<xsd:schema xmlns="http://camel.apache.org/schema/cxf/jaxws"
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+  xmlns:beans="http://www.springframework.org/schema/beans"
+  xmlns:cxf-beans="http://cxf.apache.org/configuration/beans"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  targetNamespace="http://camel.apache.org/schema/cxf/jaxws" 
+  elementFormDefault="qualified"
+  attributeFormDefault="unqualified">
+
+  <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans.xsd"/>
+  <xsd:import namespace="http://cxf.apache.org/configuration/beans" schemaLocation="http://cxf.apache.org/schemas/configuration/cxf-beans.xsd"/>
+    
+  <xsd:element name="cxfEndpoint">
+    <xsd:complexType>
+      <xsd:complexContent>
+        <xsd:extension base="beans:identifiedType">
+          <xsd:all>
+            <xsd:element name="binding" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="dataBinding" type="xsd:anyType" minOccurs="0"/>            
+            <xsd:element name="features" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="inFaultInterceptors" type="xsd:anyType" minOccurs="0"/>            
+            <xsd:element name="outInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="outFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="handlers" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="properties" type="beans:mapType" minOccurs="0"/>
+            <xsd:element name="schemaLocations" type="schemasType" minOccurs="0"/>
+            <xsd:element name="serviceFactory" type="xsd:anyType" minOccurs="0"/>
+          </xsd:all>
+          <xsd:attributeGroup ref="cxf-beans:beanAttributes"/>
+          <xsd:attribute name="address" type="xsd:string" />
+          <xsd:attribute name="bindingId" type="xsd:string" />
+          <xsd:attribute name="bus" type="xsd:string" />
+          <xsd:attribute name="serviceClass" type="xsd:string"/>
+          <xsd:attribute name="transportId" type="xsd:string"/>
+          <xsd:attribute name="wsdlURL" type="xsd:string" />
+          <xsd:attribute name="endpointName" type="xsd:string" />
+          <xsd:attribute name="serviceName" type="xsd:string" />
+          <xsd:attribute name="loggingFeatureEnabled" type="xsd:boolean"/>
+          <xsd:attribute name="loggingSizeLimit" type="xsd:integer" />
+          <xsd:attribute name="skipFaultLogging" type="xsd:boolean" />
+          <xsd:attribute name="continuationTimeout" type="xsd:long" />
+          <xsd:attribute name="publishedEndpointUrl" type="xsd:string" />
+        </xsd:extension>
+      </xsd:complexContent>
+    </xsd:complexType>
+  </xsd:element>
+  
+  <xsd:complexType name="schemasType">
+    <xsd:sequence>
+      <xsd:element name="schemaLocation" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+  
+  <xsd:complexType name="model">
+    <xsd:sequence>
+      <xsd:element name="resource" minOccurs="0" maxOccurs="unbounded">
+         <xsd:complexType>
+             <xsd:sequence>
+                 <xsd:element name="operation" minOccurs="0" maxOccurs="unbounded">
+                    <xsd:complexType>
+                      <xsd:sequence>
+                         <xsd:element name="param" minOccurs="0" maxOccurs="unbounded">
+                           <xsd:complexType>
+                              <xsd:attribute name="name" type="xsd:string"/>
+                              <xsd:attribute name="type" type="xsd:string"/>
+                           </xsd:complexType>
+                         </xsd:element>
+                      </xsd:sequence>
+                      <xsd:attribute name="name" type="xsd:string"/>
+                      <xsd:attribute name="path" type="xsd:string"/>
+                      <xsd:attribute name="verb" type="xsd:string"/>
+                      <xsd:attribute name="consumes" type="xsd:string"/>
+                      <xsd:attribute name="produces" type="xsd:string"/>
+                    </xsd:complexType>
+                 </xsd:element>
+             </xsd:sequence>
+             <xsd:attribute name="name" type="xsd:string"/>
+             <xsd:attribute name="path" type="xsd:string"/>
+         </xsd:complexType>
+      </xsd:element>   
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:string"/>
+  </xsd:complexType>  
+</xsd:schema>
diff --git a/static/schema/spring-security/camel-spring-security-4.0.0-M2.xsd b/static/schema/spring-security/camel-spring-security-4.0.0-M2.xsd
new file mode 100644
index 00000000..1af02c46
--- /dev/null
+++ b/static/schema/spring-security/camel-spring-security-4.0.0-M2.xsd
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<xsd:schema xmlns="http://camel.apache.org/schema/spring-security"
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+  xmlns:beans="http://www.springframework.org/schema/beans"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xmlns:camel-spring="http://camel.apache.org/schema/spring"
+  targetNamespace="http://camel.apache.org/schema/spring-security"
+  elementFormDefault="qualified"
+  attributeFormDefault="unqualified">
+
+  <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans.xsd"/>
+  <xsd:import namespace="http://camel.apache.org/schema/spring" schemaLocation="http://camel.apache.org/schema/spring/camel-spring.xsd"/>
+
+  <xsd:element name="authorizationPolicy">
+	  <xsd:complexType>
+	  	<xsd:attribute name="id" type="xsd:ID" use="required" />
+	  	<xsd:attribute name="access" type="xsd:string" />	  	
+	  	<xsd:attribute name="accessDecisionManager" type="xsd:string" />
+	  	<xsd:attribute name="authenticationAdapter" type="xsd:string" />
+	  	<xsd:attribute name="authenticationManager" type="xsd:string" />
+	  	<xsd:attribute name="useThreadSecurityContext" type="xsd:boolean" default="true"/>
+	  	<xsd:attribute name="alwaysReauthenticate" type="xsd:boolean" default="false"/>
+	  </xsd:complexType>
+  </xsd:element>
+  
+</xsd:schema>
diff --git a/static/schema/spring-xml/camel-spring-xml-4.0.0-M2.xsd b/static/schema/spring-xml/camel-spring-xml-4.0.0-M2.xsd
new file mode 100644
index 00000000..1acd0dee
--- /dev/null
+++ b/static/schema/spring-xml/camel-spring-xml-4.0.0-M2.xsd
@@ -0,0 +1,21362 @@
+<?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="apiKey" type="tns:apiKeyDefinition">
+    <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[
+Encode and decode data structures using Abstract Syntax Notation One (ASN.1).
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="avro" type="tns:avroDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Serialize and deserialize messages using Apache Avro binary data format.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="barcode" type="tns:barcodeDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Transform strings to various 1D/2D barcode bitmap formats and back.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="base64" type="tns:base64DataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Encode and decode data using Base64.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="basicAuth" type="tns:basicAuthDefinition">
+    <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="bearerToken" type="tns:bearerTokenDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Rest security bearer token authentication definition
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="bindy" type="tns:bindyDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Marshal and unmarshal Java beans from and to 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[
+Deprecated: null
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="cachingServiceDiscovery" type="tns:cachingServiceCallServiceDiscoveryConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Deprecated: null
+      ]]></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[
+Unmarshal a CBOR payload to POJO and back.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="choice" type="tns:choiceDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Route messages based on a series of predicates
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="circuitBreaker" type="tns:circuitBreakerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Route messages in a fault tolerance way using Circuit Breaker
+      ]]></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[
+Deprecated: null
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="combinedServiceFilter" type="tns:combinedServiceCallServiceFilterConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Deprecated: null
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="constant" type="tns:constantExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+A fixed value set only once during the route startup.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="consulServiceDiscovery" type="tns:consulServiceCallServiceDiscoveryConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Deprecated: null
+      ]]></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[
+Encrypt and decrypt messages using Java Cryptography Extension (JCE).
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="csimple" type="tns:cSimpleExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Evaluate a compiled simple expression.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="csv" type="tns:csvDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Handle CSV (Comma Separated Values) payloads.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="custom" type="tns:customDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Delegate to a custom org.apache.camel.spi.DataFormat implementation via Camel
+registry.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="customLoadBalancer" type="tns:customLoadBalancerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To use a custom load balancer implementation.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="customServiceFilter" type="tns:customServiceCallServiceFilterConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Deprecated: null
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="dataFormats" type="tns:dataFormatsDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Configure data formats.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="datasonnet" type="tns:datasonnetExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To use DataSonnet scripts for message transformations.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="deadLetterChannel" type="tns:deadLetterChannelDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Error handler with dead letter queue.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="defaultErrorHandler" type="tns:defaultErrorHandlerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The default error handler.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="defaultLoadBalancer" type="tns:defaultServiceCallServiceLoadBalancerConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Deprecated: null
+      ]]></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:deleteDefinition">
+    <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[
+Deprecated: null
+      ]]></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[
+Route 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" nillable="true" type="xs:anyType">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Error handler settings
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="exchangeProperty" type="tns:exchangePropertyExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Gets a property from the Exchange.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <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[
+In case of failures the exchange will be tried on the next endpoint.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="faultToleranceConfiguration" type="tns:faultToleranceConfigurationDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+MicroProfile Fault Tolerance Circuit Breaker EIP configuration
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="fhirJson" type="tns:fhirJsonDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Marshall and unmarshall 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[
+Marshall and unmarshall 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[
+Marshal and unmarshal Java lists and maps to/from flat files (such as CSV,
+delimited, or fixed length formats) using Flatpack library.
+      ]]></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:getDefinition">
+    <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[
+Unmarshal 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[
+Evaluates a Groovy script.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="gzipDeflater" type="tns:gzipDeflaterDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Compress and decompress messages using java.util.zip.GZIPStream.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="head" type="tns:headDefinition">
+    <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[
+Gets a header from the Exchange.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="healthyServiceFilter" type="tns:healthyServiceCallServiceFilterConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Deprecated: null
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="hl7" type="tns:hl7DataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Marshal and unmarshal HL7 (Health Care) model objects using the HL7 MLLP codec.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="hl7terser" type="tns:hl7TerserExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Get the value of a HL7 message field specified by terse location specification
+syntax.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="ical" type="tns:icalDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Marshal and unmarshal iCal (.ics) documents to/from model objects.
+      ]]></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="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. If only 'xml' is specified, all the XML message
+matches. It's handy to add only one transformer/validator for all the
+transformation from/to XML.
+      ]]></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[
+Unmarshal an XML payloads to POJOs and back using XMLMapper extension of
+Jackson.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="jaxb" type="tns:jaxbDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Unmarshal XML payloads to POJOs and back using JAXB2 XML marshalling standard.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="jmxAgent" type="tns:camelJMXAgentDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+JMX configuration.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="joor" type="tns:joorExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Evaluates a jOOR (Java compiled once at runtime) expression.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="jq" type="tns:jqExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Evaluates a JQ expression against a JSON message body.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="js" type="tns:javaScriptExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Evaluates a JavaScript expression.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="json" type="tns:jsonDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Marshal POJOs to JSON and back.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="jsonApi" type="tns:jsonApiDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Marshal and unmarshal JSON:API resources using JSONAPI-Converter library.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="jsonpath" type="tns:jsonPathExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Evaluates a JSONPath expression against a JSON message body.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="jtaTransactionErrorHandler" type="tns:jtaTransactionErrorHandlerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+JTA based transactional error handler (requires camel-jta).
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="kamelet" type="tns:kameletDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To call Kamelets in special situations
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="keyStoreParameters" type="tns:keyStoreParametersFactoryBean">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Key store facility for cryptographic keys and certificates
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="kubernetesServiceDiscovery" type="tns:kubernetesServiceCallServiceDiscoveryConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Deprecated: null
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="language" type="tns:languageExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Evaluates a custom language.
+      ]]></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[
+Deprecated: null
+      ]]></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[
+Compress and decompress streams using 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[
+Calls a Java bean method.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="mimeMultipart" type="tns:mimeMultipartDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Marshal Camel messages with attachments into MIME-Multipart messages and back.
+      ]]></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="mutualTLS" type="tns:mutualTLSDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Rest security mutual TLS authentication definition
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="mvel" type="tns:mvelExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Evaluates a MVEL template.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="noErrorHandler" type="tns:noErrorHandlerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To not use an error handler.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="oauth2" type="tns:oAuth2Definition">
+    <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[
+Evaluates an OGNL expression (Apache Commons OGNL).
+      ]]></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 Circuit Breaker EIP executes fallback
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="openIdConnect" type="tns:openIdConnectDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Rest security OpenID Connect definition
+      ]]></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. If only 'xml' is specified, all the XML message
+matches. It's handy to add only one transformer/validator for all the XML-Java
+transformation.
+      ]]></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:paramDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To specify the rest operation parameters.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="passThroughServiceFilter" type="tns:passThroughServiceCallServiceFilterConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Deprecated: null
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="patch" type="tns:patchDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Rest PATCH command
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="pausable" type="tns:pausableDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Pausable EIP to support resuming processing from last known offset.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="pgp" type="tns:pgpDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Encrypt and decrypt messages using Java Cryptographic Extension (JCE) 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:postDefinition">
+    <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:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Function to use with properties placeholder
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="propertiesLocation" type="tns:camelPropertyPlaceholderLocationDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Properties to use with properties placeholder
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="property" type="tns:propertyDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+A key value pair where the value is a literal value
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="propertyExpression" type="tns:propertyExpressionDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+A key value pair where the value is an expression.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="propertyPlaceholder" type="tns:camelPropertyPlaceholderDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Properties placeholder
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="protobuf" type="tns:protobufDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Serialize and deserialize Java objects using Google's Protocol buffers.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="put" type="tns:putDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Rest PUT command
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="python" type="tns:pythonExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Evaluates a Python expression.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="random" type="tns:randomLoadBalancerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+The destination endpoints are selected by random.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="recipientList" type="tns:recipientListDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Route messages to a number of dynamically specified recipients
+      ]]></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[
+Uses an existing expression from the registry.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="refErrorHandler" type="tns:refErrorHandlerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+References to an existing or custom error handler.
+      ]]></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="resilience4jConfiguration" type="tns:resilience4JConfigurationDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Resilience4j Circuit Breaker EIP configuration
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="responseHeader" type="tns:responseHeaderDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To specify the rest operation response headers.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="responseMessage" type="tns:responseMessageDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To specify the rest operation response messages.
+      ]]></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="resumable" type="tns:resumableDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Resume EIP to support resuming processing from last known offset.
+      ]]></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[
+The destination endpoints are selected in a round-robin fashion. This is a well
+known and classic policy, which spreads the load evenly.
+      ]]></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="routeConfiguration" type="tns:routeConfigurationDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Reusable configuration for Camel route(s).
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="routeConfigurationContext" type="tns:camelRouteConfigurationContextFactoryBean">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Configuration of route configurations using XML
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="routeConfigurationContextRef" type="tns:routeConfigurationContextRefDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To refer to an XML file with route configuration defined using the xml-dsl
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="routeConfigurations" type="tns:routeConfigurationsDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+A series of route configurations
+      ]]></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="routeController" type="tns:camelRouteControllerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Route controller configuration.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="routeTemplate" type="tns:routeTemplateDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Defines a route template (parameterized routes)
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="routeTemplateContext" type="tns:camelRouteTemplateContextFactoryBean">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Configuration of route templates using XML
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="routeTemplateContextRef" type="tns:routeTemplateContextRefDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+To refer to an XML file with route templates defined using the xml-dsl
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="routeTemplates" type="tns:routeTemplatesDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+A series of route templates
+      ]]></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[
+Transform from ROME SyndFeed Java Objects 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:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Cryptographically strong random number generator
+      ]]></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[
+Deprecated: 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[
+Deprecated: 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[
+Deprecated: null
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="serviceDiscoveryConfiguration" type="tns:serviceCallServiceDiscoveryConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Deprecated: null
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="serviceExpression" type="tns:serviceCallExpressionConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Deprecated: null
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="serviceFilterConfiguration" type="tns:serviceCallServiceFilterConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Deprecated: null
+      ]]></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[
+Evaluates a Camel simple expression.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="soap" type="tns:soapDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Marshal Java objects to SOAP messages and back.
+      ]]></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[
+Evaluates a Spring expression (SpEL).
+      ]]></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="springTransactionErrorHandler" type="tns:springTransactionErrorHandlerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Spring based transactional error handler (requires camel-spring).
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="sslContextParameters" type="tns:sslContextParametersFactoryBean">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Secure socket protocol configuration
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="staticServiceDiscovery" type="tns:staticServiceCallServiceDiscoveryConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Deprecated: null
+      ]]></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 balancing using an expression to calculate a correlation key to
+perform the sticky load balancing.
+      ]]></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:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Stream caching configuration.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="swiftMt" type="tns:swiftMtDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Encode and decode SWIFT MT messages.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="swiftMx" type="tns:swiftMxDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Encode and decode SWIFT MX messages.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="syslog" type="tns:syslogDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Marshall SyslogMessages to RFC3164 and RFC5424 messages and back.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="tarFile" type="tns:tarFileDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Archive files into tarballs or extract files from tarballs.
+      ]]></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="templateBean" type="tns:routeTemplateBeanDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+A route template bean (local bean)
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="templateParameter" type="tns:routeTemplateParameterDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+A route template parameter
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="templatedRoute" type="tns:templatedRouteDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Defines a templated route (a route built from a route template)
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="templatedRouteBean" type="tns:templatedRouteBeanDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+A bean as input of a route template (local bean)
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="templatedRouteParameter" type="tns:templatedRouteParameterDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+An input parameter of a route template.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="templatedRoutes" type="tns:templatedRoutesDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+A series of templated routes
+      ]]></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[
+Serialize and deserialize messages using Apache Thrift binary data format.
+      ]]></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[
+Parse (potentially invalid) HTML into valid HTML or DOM.
+      ]]></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[
+Tokenize text payloads using delimiter patterns.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="topic" type="tns:topicLoadBalancerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Topic which sends to all destinations.
+      ]]></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[
+null
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="univocityCsv" type="tns:uniVocityCsvDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Marshal and unmarshal Java objects from and to CSV (Comma Separated Values)
+using UniVocity Parsers.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="univocityFixed" type="tns:uniVocityFixedDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Marshal and unmarshal Java objects from and to fixed length records using
+UniVocity Parsers.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="univocityHeader" 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="univocityTsv" type="tns:uniVocityTsvDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Marshal and unmarshal Java objects from and to TSV (Tab-Separated Values)
+records using UniVocity Parsers.
+      ]]></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="value" type="tns:valueDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+A single value
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="weighted" type="tns:weightedLoadBalancerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Uses a weighted load distribution ratio for each server with respect to others.
+      ]]></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 the expression evaluates to true
+      ]]></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="xmlSecurity" type="tns:xmlSecurityDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Encrypt and decrypt XML payloads using Apache Santuario.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="xpath" type="tns:xPathExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Evaluates an XPath expression against an XML payload.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="xquery" type="tns:xQueryExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Evaluates an XQuery expressions against an XML payload.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="xtokenize" type="tns:xmlTokenizerExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Tokenize XML payloads.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="yaml" type="tns:yamlDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+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[
+Compress and decompress streams using java.util.zip.Deflater and
+java.util.zip.Inflater.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="zipFile" type="tns:zipFileDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Compression and decompress streams using java.util.zip.ZipStream.
+      ]]></xs:documentation>
+    </xs:annotation>
+  </xs:element>
+    
+  <xs:element name="zookeeperServiceDiscovery" type="tns:zooKeeperServiceCallServiceDiscoveryConfiguration">
+    <xs:annotation>
+      <xs:documentation xml:lang="en"><![CDATA[
+Deprecated: null
+      ]]></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[
+The id of this node.
+        ]]></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="xs:string">
+          <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="xs:string">
+          <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. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="rejectedPolicy" type="xs:string">
+          <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:string">
+          <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:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Disable JMI (default false). Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="onlyRegisterProcessorWithCustomId" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Only register processor if a custom id was defined for it. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="mbeanServerDefaultDomain" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+MBean server default domain name (default org.apache.camel). Default value:
+org.apache.camel
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="mbeanObjectDomainName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+MBean object domain name (default org.apache.camel). Default value:
+org.apache.camel
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="usePlatformMBeanServer" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+A flag that indicates whether the platform mbean server should be used. Default
+value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="registerAlways" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+A flag that indicates whether to register mbeans always. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="registerNewRoutes" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+A flag that indicates whether to register mbeans when starting new routes.
+Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="statisticsLevel" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Level of granularity for performance statistics enabled. Default value: Default
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="mbeansLevel" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the mbeans registration level. The default value is Default. Default value:
+Default
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="loadStatisticsEnabled" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+A flag that indicates whether Load statistics is enabled. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="endpointRuntimeStatisticsEnabled" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+A flag that indicates whether endpoint runtime statistics is enabled. Default
+value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="includeHostName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+A flag that indicates whether to include hostname in JMX MBean names. Default
+value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="useHostIPAddress" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+A flag that indicates whether to use hostname or IP Address in the service url.
+Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="mask" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+A flag that indicates whether to remove detected sensitive information (such as
+passwords) from MBean names and attributes. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </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:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+A list of locations to load properties. You can use comma to separate multiple
+locations. This option will override any default locations and only use the
+locations from this option.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="encoding" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Encoding to use when loading properties file from the file system or classpath.
+If no encoding has been set, then the properties files is loaded using
+ISO-8859-1 encoding (latin-1) as documented by
+java.util.Properties#load(java.io.InputStream).
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="ignoreMissingLocation" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to silently ignore if a location cannot be located, such as a properties
+file not found. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="nestedPlaceholder" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to support nested property placeholders. A nested placeholder, means
+that a placeholder, has also a placeholder, that should be resolved
+(recursively). Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="propertiesParserRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Reference to a custom PropertiesParser to be used.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="defaultFallbackEnabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If false, the component does not attempt to find a default for the key by
+looking after the colon separator. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </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:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Reference to the custom properties function to lookup in the registry.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </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:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The resolver to use to locate the location. Default value: classpath
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="path" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Property locations to use.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="optional" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If the location is optional. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="camelRouteControllerDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:identifiedType">
+                
+        <xs:sequence/>
+                
+        <xs:attribute name="supervising" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To enable using supervising route controller which allows Camel to startup and
+then the controller takes care of starting the routes in a safe manner. This can
+be used when you want to startup Camel despite a route may otherwise fail fast
+during startup and cause Camel to fail to startup as well. By delegating the
+route startup to the supervising route controller then its manages the startup
+using a background thread. The controller allows to be configured with various
+settings to attempt to restart failing routes. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="includeRoutes" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Pattern for filtering routes to be included as supervised. The pattern is
+matching on route id, and endpoint uri for the route. Multiple patterns can be
+separated by comma. For example to include all kafka routes, you can say kafka:.
+And to include routes with specific route ids myRoute,myOtherRoute. The pattern
+supports wildcards and uses the matcher from
+org.apache.camel.support.PatternHelper#matchPattern.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="excludeRoutes" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Pattern for filtering routes to be excluded as supervised. The pattern is
+matching on route id, and endpoint uri for the route. Multiple patterns can be
+separated by comma. For example to exclude all JMS routes, you can say jms:. And
+to exclude routes with specific route ids mySpecialRoute,myOtherSpecialRoute.
+The pattern supports wildcards and uses the matcher from
+org.apache.camel.support.PatternHelper#matchPattern.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="threadPoolSize" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The number of threads used by the scheduled thread pool that are used for
+restarting routes. The pool uses 1 thread by default, but you can increase this
+to allow the controller to concurrently attempt to restart multiple routes in
+case more than one route has problems starting. Default value: 1
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="initialDelay" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Initial delay in milli seconds before the route controller starts, after
+CamelContext has been started.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="backOffDelay" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Backoff delay in millis when restarting a route that failed to startup. Default
+value: 2000
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="backOffMaxDelay" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Backoff maximum delay in millis when restarting a route that failed to startup.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="backOffMaxElapsedTime" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Backoff maximum elapsed time in millis, after which the backoff should be
+considered exhausted and no more attempts should be made.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="backOffMaxAttempts" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Backoff maximum number of attempts to restart a route that failed to startup.
+When this threshold has been exceeded then the controller will give up
+attempting to restart the route, and the route will remain as stopped.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="backOffMultiplier" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Backoff multiplier to use for exponential backoff. This is used to extend the
+delay between restart attempts. Default value: 1.0
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="unhealthyOnExhausted" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to mark the route as unhealthy (down) when all restarting attempts
+(backoff) have failed and the route is not successfully started and the route
+manager is giving up. Setting this to true allows health checks to know about
+this and can report the Camel application as DOWN. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="loggingLevel" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the logging level used for logging route activity (such as starting and
+stopping routes). The default logging level is DEBUG. Default value: DEBUG
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </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:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets whether stream caching is enabled or not. While stream types (like
+StreamSource, InputStream and Reader) are commonly used in messaging for
+performance reasons, they also have an important drawback: they can only be read
+once. In order to be able to work with message content multiple times, the
+stream needs to be cached. Streams are cached in memory only (by default). If
+streamCachingSpoolEnabled=true, then, for large stream messages (over 128 KB by
+default) will be cached in a temporary file instead, and Camel will handle
+deleting the temporary file once the cached stream is no longer necessary.
+Default is true. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="spoolEnabled" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To enable stream caching spooling to disk. This means, for large stream messages
+(over 128 KB by default) will be cached in a temporary file instead, and Camel
+will handle deleting the temporary file once the cached stream is no longer
+necessary. Default is false. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="spoolDirectory" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the spool (temporary) directory to use for overflow and spooling to disk.
+If no spool directory has been explicit configured, then a temporary directory
+is created in the java.io.tmpdir directory.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="spoolCipher" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets a cipher name to use when spooling to disk to write with encryption. By
+default the data is not encrypted.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="spoolThreshold" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Threshold in bytes when overflow to disk is activated. The default threshold is
+org.apache.camel.StreamCache#DEFAULT_SPOOL_THRESHOLD bytes (eg 128kb). Use -1 to
+disable overflow to disk. Default value: 131072
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="spoolUsedHeapMemoryThreshold" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets a percentage (1-99) of used heap memory threshold to activate spooling to
+disk.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="spoolUsedHeapMemoryLimit" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets what the upper bounds should be when spoolUsedHeapMemoryThreshold is in
+use.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="spoolRules" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Reference to one or more custom
+org.apache.camel.spi.StreamCachingStrategy.SpoolRule to use. Multiple rules can
+be separated by comma.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="bufferSize" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the buffer size to use when allocating in-memory buffers used for in-memory
+stream caches. The default size is
+org.apache.camel.util.IOHelper#DEFAULT_BUFFER_SIZE. Default value: 4096
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="removeSpoolDirectoryWhenStopping" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to remove the temporary directory when stopping. This option is default
+true. Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="statisticsEnabled" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets whether statistics is enabled. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="anySpoolRules" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets whether if just any of the
+org.apache.camel.spi.StreamCachingStrategy.SpoolRule rules returns true then
+shouldSpoolCache(long) returns true. If this option is false, then all the
+org.apache.camel.spi.StreamCachingStrategy.SpoolRule must return true. The
+default value is false which means that all the rules must return true. Default
+value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </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:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The optional type of the key store to load. See Appendix A in the Java
+Cryptography Architecture Standard Algorithm Name Documentation for more
+information on standard names.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="password" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The optional password for reading/opening/verifying the key store.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="provider" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The optional provider identifier for instantiating the key store.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="resource" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The optional file path, class path resource, or URL of the resource used to load
+the key store.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </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:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The Random Number Generator algorithm identifier for the SecureRandom factory
+method used to create the SecureRandom represented by this object's
+configuration. See Appendix A in the Java Cryptography Architecture API
+Specification and Reference guide for information about standard RNG algorithm
+names.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="provider" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The optional provider identifier for the SecureRandom factory method used to
+create the SecureRandom represented by this object's configuration.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </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:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType abstract="true" name="processorDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:optionalIdentifiedDefinition">
+                
+        <xs:sequence/>
+                
+        <xs:attribute name="disabled" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to disable this EIP from the route during build time. Once an EIP has
+been disabled then it cannot be enabled later at runtime. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="inheritErrorHandler" type="xs:boolean"/>
+              
+      </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:simpleType name="descriptionDefinition">
+        
+    <xs:restriction base="xs:string"/>
+      
+  </xs:simpleType>
+    
+  <xs:complexType name="aggregateDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:output">
+                
+        <xs:sequence>
+                    
+          <xs:element name="correlationExpression" type="tns:expressionSubElementDefinition">
+            <xs:annotation>
+              <xs:documentation xml:lang="en"><![CDATA[
+The expression used to calculate the correlation key to use for aggregation. The
+Exchange which has the same correlation key is aggregated together. If the
+correlation key could not be evaluated an Exception is thrown. You can disable
+this by using the ignoreBadCorrelationKeys option.
+              ]]></xs:documentation>
+            </xs:annotation>
+          </xs:element>
+                    
+          <xs:element minOccurs="0" name="completionPredicate" type="tns:expressionSubElementDefinition">
+            <xs:annotation>
+              <xs:documentation xml:lang="en"><![CDATA[
+A Predicate to indicate when an aggregated exchange is complete. If this is not
+specified and the AggregationStrategy object implements Predicate, the
+aggregationStrategy object will be used as the completionPredicate.
+              ]]></xs:documentation>
+            </xs:annotation>
+          </xs:element>
+                    
+          <xs:element minOccurs="0" name="completionTimeoutExpression" type="tns:expressionSubElementDefinition">
+            <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:element>
+                    
+          <xs:element minOccurs="0" name="completionSizeExpression" type="tns:expressionSubElementDefinition">
+            <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:element>
+                    
+          <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:circuitBreaker"/>
+                        
+            <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:idempotentConsumer"/>
+                        
+            <xs:element ref="tns:intercept"/>
+                        
+            <xs:element ref="tns:interceptFrom"/>
+                        
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+                        
+            <xs:element ref="tns:kamelet"/>
+                        
+            <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:pausable"/>
+                        
+            <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:resumable"/>
+                        
+            <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:wireTap"/>
+                        
+            <xs:element ref="tns:serviceCall"/>
+                      
+          </xs:choice>
+                  
+        </xs:sequence>
+                
+        <xs:attribute name="parallelProcessing" type="xs:string">
+          <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:string">
+          <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="executorService" 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="timeoutCheckerExecutorService" 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="aggregateController" 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:attribute name="aggregationRepository" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The AggregationRepository to use. 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="aggregationStrategy" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The AggregationStrategy to use. For example to lookup a bean with the name foo,
+the value is simply just #bean:foo. 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="aggregationStrategyMethodName" 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
+beans as the AggregationStrategy.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="aggregationStrategyMethodAllowNull" type="xs:string">
+          <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 beans as the AggregationStrategy.
+Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="completionSize" type="xs:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="expressionSubElementDefinition">
+        
+    <xs:choice>
+            
+      <xs:element ref="tns:expressionDefinition"/>
+            
+      <xs:element ref="tns:csimple"/>
+            
+      <xs:element ref="tns:constant"/>
+            
+      <xs:element ref="tns:datasonnet"/>
+            
+      <xs:element ref="tns:exchangeProperty"/>
+            
+      <xs:element ref="tns:groovy"/>
+            
+      <xs:element ref="tns:header"/>
+            
+      <xs:element ref="tns:hl7terser"/>
+            
+      <xs:element ref="tns:js"/>
+            
+      <xs:element ref="tns:joor"/>
+            
+      <xs:element ref="tns:jq"/>
+            
+      <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:python"/>
+            
+      <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:string">
+          <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:string">
+      <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:string">
+      <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:string">
+      <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:string">
+      <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:string">
+      <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 an exiting bean to use, which is looked up from the
+registry.
+            ]]></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 name (fully qualified) of the bean to use.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="scope" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Scope of bean. When using singleton scope (default) the bean is created or
+looked up only once and reused for the lifetime of the endpoint. The bean should
+be thread-safe in case concurrent threads is calling the bean at the same time.
+When using request scope the bean is created or looked up once per request
+(exchange). This can be used if you want to store state on a bean while
+processing a request and you want to call the same bean instance multiple times
+while processing the request. The bean does not have to be thread-safe as the
+instance is only called from the same request. When using prototype scope, then
+the bean will be looked up or created per call. However in case of lookup then
+this is delegated to the bean registry such as Spring or CDI (if in use), which
+depends on their configuration can act as either singleton or prototype scope.
+So when using prototype scope then this depends on the bean registry
+implementation. Default value: Singleton
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType abstract="true" name="noOutputDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:processorDefinition">
+                
+        <xs:sequence/>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType abstract="true" name="beanFactoryDefinition">
+        
+    <xs:sequence>
+            
+      <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:property"/>
+            
+      <xs:element minOccurs="0" name="script" type="xs:string">
+        <xs:annotation>
+          <xs:documentation xml:lang="en"><![CDATA[
+The script to execute that creates the bean when using scripting languages. If
+the script use the prefix resource: such as
+resource:classpath:com/foo/myscript.groovy, resource:file:/var/myscript.groovy,
+then its loaded from the external resource.
+          ]]></xs:documentation>
+        </xs:annotation>
+      </xs:element>
+          
+    </xs:sequence>
+        
+    <xs:attribute name="name" type="xs:string" use="required">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+Bean name.
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+        
+    <xs:attribute name="type" type="xs:string" use="required">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+What type to use for creating the bean. Can be one of:
+#class,#type,bean,groovy,joor,language,mvel,ognl. #class or #type then the bean
+is created via the fully qualified classname, such as #class:com.foo.MyBean The
+others are scripting languages that gives more power to create the bean with an
+inlined code in the script section, such as using groovy.
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+        
+    <xs:attribute name="beanType" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en"><![CDATA[
+To set the type (fully qualified class name) of the returned bean created by the
+script. Knowing the type of the bean can be needed when dependency injection by
+type is in use, or when looking in registry via class type.
+        ]]></xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="catchDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:output">
+                
+        <xs:sequence>
+                    
+          <xs:element maxOccurs="unbounded" minOccurs="0" name="exception" type="xs:string">
+            <xs:annotation>
+              <xs:documentation xml:lang="en"><![CDATA[
+The exception(s) to catch.
+              ]]></xs:documentation>
+            </xs:annotation>
+          </xs:element>
+                    
+          <xs:element minOccurs="0" name="onWhen" type="tns:whenDefinition">
+            <xs:annotation>
+              <xs:documentation xml:lang="en"><![CDATA[
+Sets an additional predicate that should be true before the onCatch is
+triggered. To be used for fine grained controlling whether a thrown exception
+should be intercepted by this exception type or not.
+              ]]></xs:documentation>
+            </xs:annotation>
+          </xs:element>
+                    
+          <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:circuitBreaker"/>
+                        
+            <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:idempotentConsumer"/>
+                        
+            <xs:element ref="tns:intercept"/>
+                        
+            <xs:element ref="tns:interceptFrom"/>
+                        
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+                        
+            <xs:element ref="tns:kamelet"/>
+                        
+            <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:pausable"/>
+                        
+            <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:resumable"/>
+                        
+            <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:wireTap"/>
+                        
+            <xs:element ref="tns:serviceCall"/>
+                      
+          </xs:choice>
+                  
+        </xs:sequence>
+              
+      </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:csimple"/>
+                        
+            <xs:element ref="tns:constant"/>
+                        
+            <xs:element ref="tns:datasonnet"/>
+                        
+            <xs:element ref="tns:exchangeProperty"/>
+                        
+            <xs:element ref="tns:groovy"/>
+                        
+            <xs:element ref="tns:header"/>
+                        
+            <xs:element ref="tns:hl7terser"/>
+                        
+            <xs:element ref="tns:js"/>
+                        
+            <xs:element ref="tns:joor"/>
+                        
+            <xs:element ref="tns:jq"/>
+                        
+            <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:python"/>
+                        
+            <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:circuitBreaker"/>
+                        
+            <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:idempotentConsumer"/>
+                        
+            <xs:element ref="tns:intercept"/>
+                        
+            <xs:element ref="tns:interceptFrom"/>
+                        
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+                        
+            <xs:element ref="tns:kamelet"/>
+                        
+            <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:pausable"/>
+                        
+            <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:resumable"/>
+                        
+            <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:wireTap"/>
+                        
+            <xs:element ref="tns:serviceCall"/>
+                      
+          </xs:choice>
+                  
+        </xs:sequence>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="choiceDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:processorDefinition">
+                
+        <xs:sequence>
+                    
+          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:when"/>
+                    
+          <xs:element minOccurs="0" ref="tns:otherwise"/>
+                  
+        </xs:sequence>
+                
+        <xs:attribute name="precondition" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Indicates whether this Choice EIP is in precondition mode or not. If so its
+branches (when/otherwise) are evaluated during startup to keep at runtime only
+the branch that matched. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="otherwiseDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:output">
+                
+        <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:circuitBreaker"/>
+                        
+            <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:idempotentConsumer"/>
+                        
+            <xs:element ref="tns:intercept"/>
+                        
+            <xs:element ref="tns:interceptFrom"/>
+                        
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+                        
+            <xs:element ref="tns:kamelet"/>
+                        
+            <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:pausable"/>
+                        
+            <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:resumable"/>
+                        
+            <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:wireTap"/>
+                        
+            <xs:element ref="tns:serviceCall"/>
+                      
+          </xs:choice>
+                  
+        </xs:sequence>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="circuitBreakerDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:output">
+                
+        <xs:sequence>
+                    
+          <xs:element minOccurs="0" ref="tns:resilience4jConfiguration"/>
+                    
+          <xs:element minOccurs="0" ref="tns:faultToleranceConfiguration"/>
+                    
+          <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:circuitBreaker"/>
+                        
+            <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:idempotentConsumer"/>
+                        
+            <xs:element ref="tns:intercept"/>
+                        
+            <xs:element ref="tns:interceptFrom"/>
+                        
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+                        
+            <xs:element ref="tns:kamelet"/>
+                        
+            <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:pausable"/>
+                        
+            <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:resumable"/>
+                        
+            <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:wireTap"/>
+                        
+            <xs:element ref="tns:serviceCall"/>
+                      
+          </xs:choice>
+                  
+        </xs:sequence>
+                
+        <xs:attribute name="configuration" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Refers to a circuit breaker configuration (such as resillience4j, or
+microprofile-fault-tolerance) to use for configuring the circuit breaker EIP.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="resilience4JConfigurationDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:resilience4JConfigurationCommon">
+                
+        <xs:sequence/>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="resilience4JConfigurationCommon">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:identifiedType">
+                
+        <xs:sequence>
+                    
+          <xs:element minOccurs="0" name="bulkheadEnabled" type="xs:string"/>
+                    
+          <xs:element minOccurs="0" name="bulkheadMaxConcurrentCalls" type="xs:string"/>
+                    
+          <xs:element minOccurs="0" name="bulkheadMaxWaitDuration" type="xs:string"/>
+                    
+          <xs:element minOccurs="0" name="timeoutEnabled" type="xs:string"/>
+                    
+          <xs:element minOccurs="0" name="timeoutExecutorService" type="xs:string"/>
+                    
+          <xs:element minOccurs="0" name="timeoutDuration" type="xs:string"/>
+                    
+          <xs:element minOccurs="0" name="timeoutCancelRunningFuture" type="xs:string"/>
+                  
+        </xs:sequence>
+                
+        <xs:attribute name="circuitBreaker" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Refers to an existing io.github.resilience4j.circuitbreaker.CircuitBreaker
+instance to lookup and use from the registry. When using this, then any other
+circuit breaker options are not in use.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="config" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Refers to an existing io.github.resilience4j.circuitbreaker.CircuitBreakerConfig
+instance to lookup and use from the registry.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="failureRateThreshold" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Configures the failure rate threshold in percentage. If the failure rate is
+equal or greater than the threshold the CircuitBreaker transitions to open and
+starts short-circuiting calls. The threshold must be greater than 0 and not
+greater than 100. Default value is 50 percentage. Default value: 50
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="permittedNumberOfCallsInHalfOpenState" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Configures the number of permitted calls when the CircuitBreaker is half open.
+The size must be greater than 0. Default size is 10. Default value: 10
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="throwExceptionWhenHalfOpenOrOpenState" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to throw io.github.resilience4j.circuitbreaker.CallNotPermittedException
+when the call is rejected due circuit breaker is half open or open. Default
+value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="slidingWindowSize" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Configures the size of the sliding window which is used to record the outcome of
+calls when the CircuitBreaker is closed. slidingWindowSize configures the size
+of the sliding window. Sliding window can either be count-based or time-based.
+If slidingWindowType is COUNT_BASED, the last slidingWindowSize calls are
+recorded and aggregated. If slidingWindowType is TIME_BASED, the calls of the
+last slidingWindowSize seconds are recorded and aggregated. The
+slidingWindowSize must be greater than 0. The minimumNumberOfCalls must be
+greater than 0. If the slidingWindowType is COUNT_BASED, the
+minimumNumberOfCalls cannot be greater than slidingWindowSize . If the
+slidingWindowType is TIME_BASED, you can pick whatever you want. Default
+slidingWindowSize is 100. Default value: 100
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="slidingWindowType" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Configures the type of the sliding window which is used to record the outcome of
+calls when the CircuitBreaker is closed. Sliding window can either be
+count-based or time-based. If slidingWindowType is COUNT_BASED, the last
+slidingWindowSize calls are recorded and aggregated. If slidingWindowType is
+TIME_BASED, the calls of the last slidingWindowSize seconds are recorded and
+aggregated. Default slidingWindowType is COUNT_BASED. Default value: COUNT_BASED
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="minimumNumberOfCalls" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Configures the minimum number of calls which are required (per sliding window
+period) before the CircuitBreaker can calculate the error rate. For example, if
+minimumNumberOfCalls is 10, then at least 10 calls must be recorded, before the
+failure rate can be calculated. If only 9 calls have been recorded the
+CircuitBreaker will not transition to open even if all 9 calls have failed.
+Default minimumNumberOfCalls is 100. Default value: 100
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="writableStackTraceEnabled" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Enables writable stack traces. When set to false, Exception.getStackTrace
+returns a zero length array. This may be used to reduce log spam when the
+circuit breaker is open as the cause of the exceptions is already known (the
+circuit breaker is short-circuiting calls). Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="waitDurationInOpenState" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Configures the wait duration (in seconds) which specifies how long the
+CircuitBreaker should stay open, before it switches to half open. Default value
+is 60 seconds. Default value: 60
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="automaticTransitionFromOpenToHalfOpenEnabled" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Enables automatic transition from OPEN to HALF_OPEN state once the
+waitDurationInOpenState has passed. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="slowCallRateThreshold" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Configures a threshold in percentage. The CircuitBreaker considers a call as
+slow when the call duration is greater than slowCallDurationThreshold Duration.
+When the percentage of slow calls is equal or greater the threshold, the
+CircuitBreaker transitions to open and starts short-circuiting calls. The
+threshold must be greater than 0 and not greater than 100. Default value is 100
+percentage which means that all recorded calls must be slower than
+slowCallDurationThreshold. Default value: 100
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="slowCallDurationThreshold" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Configures the duration threshold (seconds) above which calls are considered as
+slow and increase the slow calls percentage. Default value is 60 seconds.
+Default value: 60
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="faultToleranceConfigurationDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:faultToleranceConfigurationCommon">
+                
+        <xs:sequence/>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="faultToleranceConfigurationCommon">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:identifiedType">
+                
+        <xs:sequence/>
+                
+        <xs:attribute name="circuitBreaker" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Refers to an existing
+io.smallrye.faulttolerance.core.circuit.breaker.CircuitBreaker instance to
+lookup and use from the registry. When using this, then any other circuit
+breaker options are not in use.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="delay" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Control how long the circuit breaker stays open. The default is 5 seconds.
+Default value: 5000
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="successThreshold" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Controls the number of trial calls which are allowed when the circuit breaker is
+half-open. Default value: 1
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="requestVolumeThreshold" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Controls the size of the rolling window used when the circuit breaker is closed.
+Default value: 20
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="failureRatio" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Configures the failure rate threshold in percentage. If the failure rate is
+equal or greater than the threshold the CircuitBreaker transitions to open and
+starts short-circuiting calls. The threshold must be greater than 0 and not
+greater than 100. Default value is 50 percentage. Default value: 50
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="timeoutEnabled" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether timeout is enabled or not on the circuit breaker. Default is false.
+Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="timeoutDuration" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Configures the thread execution timeout. Default value is 1 second. Default
+value: 1000
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="timeoutPoolSize" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Configures the pool size of the thread pool when timeout is enabled. Default
+value is 10. Default value: 10
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="timeoutScheduledExecutorService" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+References to a custom thread pool to use when timeout is enabled.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="bulkheadEnabled" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether bulkhead is enabled or not on the circuit breaker. Default is false.
+Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="bulkheadMaxConcurrentCalls" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Configures the max amount of concurrent calls the bulkhead will support. Default
+value: 10
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="bulkheadWaitingTaskQueue" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Configures the task queue size for holding waiting tasks to be processed by the
+bulkhead. Default value: 10
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="bulkheadExecutorService" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+References to a custom thread pool to use when bulkhead is enabled.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="claimCheckDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:noOutputDefinition">
+                
+        <xs:sequence/>
+                
+        <xs:attribute name="operation" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The claim check operation to use. The following operations are supported: Get -
+Gets (does not remove) the claim check by the given key. GetAndRemove - Gets and
+removes 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[
+Specify a filter to control what data gets merged 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 following pattern 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, the following includes 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="aggregationStrategy" 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="aggregationStrategyMethodName" 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: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:annotation>
+          <xs:documentation xml:lang="en"><![CDATA[
+Exclude finding route builder from these java package names.
+          ]]></xs:documentation>
+        </xs:annotation>
+      </xs:element>
+            
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="includes" type="xs:string">
+        <xs:annotation>
+          <xs:documentation xml:lang="en"><![CDATA[
+Include finding route builder from these java package names.
+          ]]></xs:documentation>
+        </xs:annotation>
+      </xs:element>
+          
+    </xs:sequence>
+        
+    <xs:attribute name="includeNonSingletons" type="xs:string">
+      <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="mandatory" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+When mandatory then the conversion must return a value (cannot be null), if this
+is not possible then NoTypeConversionAvailableException is thrown. Setting this
+to false could mean conversion is not possible and the value is null. Default
+value: true
+            ]]></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:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="dataFormat">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:identifiedType">
+                
+        <xs:sequence/>
+              
+      </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:csimple"/>
+                    
+          <xs:element ref="tns:constant"/>
+                    
+          <xs:element ref="tns:datasonnet"/>
+                    
+          <xs:element ref="tns:exchangeProperty"/>
+                    
+          <xs:element ref="tns:groovy"/>
+                    
+          <xs:element ref="tns:header"/>
+                    
+          <xs:element ref="tns:hl7terser"/>
+                    
+          <xs:element ref="tns:js"/>
+                    
+          <xs:element ref="tns:joor"/>
+                    
+          <xs:element ref="tns:jq"/>
+                    
+          <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:python"/>
+                    
+          <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="asyncDelayed" type="xs:string">
+          <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:string">
+          <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="executorService" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To use a custom Thread Pool if asyncDelay has been enabled.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </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:csimple"/>
+                    
+          <xs:element ref="tns:constant"/>
+                    
+          <xs:element ref="tns:datasonnet"/>
+                    
+          <xs:element ref="tns:exchangeProperty"/>
+                    
+          <xs:element ref="tns:groovy"/>
+                    
+          <xs:element ref="tns:header"/>
+                    
+          <xs:element ref="tns:hl7terser"/>
+                    
+          <xs:element ref="tns:js"/>
+                    
+          <xs:element ref="tns:joor"/>
+                    
+          <xs:element ref="tns:jq"/>
+                    
+          <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:python"/>
+                    
+          <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:string">
+          <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:string">
+          <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. Beware that when using dynamic endpoints then it affects how well the
+cache can be utilized. If each dynamic endpoint is unique then its best to turn
+of caching by setting this to -1, which allows Camel to not cache both the
+producers and endpoints; they are regarded as prototype scoped and will be
+stopped and discarded after use. This reduces memory usage as otherwise
+producers/endpoints are stored in memory in the caches. However if there are a
+high degree of dynamic endpoints that have been used before, then it can benefit
+to use the cache to reuse both producers and endpoints and therefore the cache
+size can be set accordingly or rely on the default size (1000). If there is a
+mix of unique and used before dynamic endpoints, then setting a reasonable cache
+size can help reduce memory usage to avoid storing too many non frequent used
+producers.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </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:csimple"/>
+                    
+          <xs:element ref="tns:constant"/>
+                    
+          <xs:element ref="tns:datasonnet"/>
+                    
+          <xs:element ref="tns:exchangeProperty"/>
+                    
+          <xs:element ref="tns:groovy"/>
+                    
+          <xs:element ref="tns:header"/>
+                    
+          <xs:element ref="tns:hl7terser"/>
+                    
+          <xs:element ref="tns:js"/>
+                    
+          <xs:element ref="tns:joor"/>
+                    
+          <xs:element ref="tns:jq"/>
+                    
+          <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:python"/>
+                    
+          <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="aggregationStrategy" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the 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="aggregationStrategyMethodName" 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="aggregationStrategyMethodAllowNull" type="xs:string">
+          <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.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="aggregateOnException" type="xs:string">
+          <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:string">
+          <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:string">
+          <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. Beware that when using
+dynamic endpoints then it affects how well the cache can be utilized. If each
+dynamic endpoint is unique then its best to turn of caching by setting this to
+-1, which allows Camel to not cache both the producers and endpoints; they are
+regarded as prototype scoped and will be stopped and discarded after use. This
+reduces memory usage as otherwise producers/endpoints are stored in memory in
+the caches. However if there are a high degree of dynamic endpoints that have
+been used before, then it can benefit to use the cache to reuse both producers
+and endpoints and therefore the cache size can be set accordingly or rely on the
+default size (1000). If there is a mix of unique and used before dynamic
+endpoints, then setting a reasonable cache size can help reduce memory usage to
+avoid storing too many non frequent used producers.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="ignoreInvalidEndpoint" type="xs:string">
+          <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:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to allow components to optimise enricher if they are
+org.apache.camel.spi.SendDynamicAware . Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="errorHandlerDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:identifiedType">
+                
+        <xs:sequence>
+                    
+          <xs:choice minOccurs="0">
+                        
+            <xs:element ref="tns:deadLetterChannel"/>
+                        
+            <xs:element ref="tns:defaultErrorHandler"/>
+                        
+            <xs:element ref="tns:noErrorHandler"/>
+                        
+            <xs:element ref="tns:jtaTransactionErrorHandler"/>
+                        
+            <xs:element ref="tns:springTransactionErrorHandler"/>
+                      
+          </xs:choice>
+                  
+        </xs:sequence>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="deadLetterChannelDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:defaultErrorHandlerDefinition">
+                
+        <xs:sequence/>
+                
+        <xs:attribute name="deadLetterUri" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The dead letter endpoint uri for the Dead Letter error handler.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="deadLetterHandleNewException" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether the dead letter channel should handle (and ignore) any new exception
+that may been thrown during sending the message to the dead letter endpoint. The
+default value is true which means any such kind of exception is handled and
+ignored. Set this to false to let the exception be propagated back on the
+org.apache.camel.Exchange . This can be used in situations where you use
+transactions, and want to use Camel's dead letter channel to deal with
+exceptions during routing, but if the dead letter channel itself fails because
+of a new exception being thrown, then by setting this to false the new
+exceptions is propagated back and set on the org.apache.camel.Exchange , which
+allows the transaction to detect the exception, and rollback. Default value:
+true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="defaultErrorHandlerDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:baseErrorHandlerDefinition">
+                
+        <xs:sequence>
+                    
+          <xs:element minOccurs="0" ref="tns:redeliveryPolicy"/>
+                  
+        </xs:sequence>
+                
+        <xs:attribute name="loggerRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+References to a logger to use as logger for the error handler.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="level" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Logging level to use when using the logging error handler type. Default value:
+ERROR
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="logName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Name of the logger to use for the logging error handler.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="useOriginalMessage" type="xs:string">
+          <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:string">
+          <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: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="onPrepareFailureRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets a reference to a processor to prepare the org.apache.camel.Exchange before
+handled by the failure processor / dead letter channel. This allows for example
+to enrich the message before sending to a dead letter queue.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="retryWhileRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets a retry while predicate. Will continue retrying until the predicate
+evaluates to false.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="redeliveryPolicyRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets a reference to a RedeliveryPolicy to be used for redelivery settings.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="executorServiceRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets a reference to a thread pool to be used by the error handler.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType abstract="true" name="baseErrorHandlerDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:identifiedType">
+                
+        <xs:sequence/>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="redeliveryPolicyDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:identifiedType">
+                
+        <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. Default value: 1000
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="asyncDelayedRedelivery" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Allow asynchronous delayed redelivery. The route, in particular the consumer's
+component, must support the Asynchronous Routing Engine (e.g. seda). 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 back off multiplier. Default value: 2.0
+            ]]></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. 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 collision avoidance factor. 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[
+Turn on collision avoidance. 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 delay between redelivery. Default value: 60000
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="retriesExhaustedLogLevel" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the logging level to use when retries have been exhausted. Default value:
+ERROR
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="retryAttemptedLogLevel" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the logging level to use for logging retry attempts. 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 to use for logging retry attempts. Default value: 1
+            ]]></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. 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. Can be used to include or reduce
+verbose. 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 when an retry attempt failed. Can be
+used to include or reduce verbose. 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 handled exceptions should be logged or not. Can be used to include
+or reduce verbose. 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 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. 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 continued exceptions should be logged or not. Can be used to
+include or reduce verbose. 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. Can be used to
+include or reduce verbose. 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 exhausted exceptions should be logged including message history or
+not (supports property placeholders). Can be used to include or reduce verbose.
+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 should be logged including message history
+or not (supports property placeholders). Can be used to include or reduce
+verbose. Requires logExhaustedMessageHistory to be enabled. 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 (same as 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 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. 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 name="noErrorHandlerDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:baseErrorHandlerDefinition">
+                
+        <xs:sequence/>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="jtaTransactionErrorHandlerDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:transactionErrorHandlerDefinition">
+                
+        <xs:sequence/>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType abstract="true" name="transactionErrorHandlerDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:defaultErrorHandlerDefinition">
+                
+        <xs:sequence/>
+                
+        <xs:attribute name="transactedPolicyRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The transacted policy to use that is configured for either Spring or JTA based
+transactions. If no policy has been configured then Camel will attempt to
+auto-discover.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="rollbackLoggingLevel" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the logging level to use for logging transactional rollback. This option is
+default WARN. Default value: WARN
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="springTransactionErrorHandlerDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:transactionErrorHandlerDefinition">
+                
+        <xs:sequence/>
+              
+      </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:csimple"/>
+                        
+            <xs:element ref="tns:constant"/>
+                        
+            <xs:element ref="tns:datasonnet"/>
+                        
+            <xs:element ref="tns:exchangeProperty"/>
+                        
+            <xs:element ref="tns:groovy"/>
+                        
+            <xs:element ref="tns:header"/>
+                        
+            <xs:element ref="tns:hl7terser"/>
+                        
+            <xs:element ref="tns:js"/>
+                        
+            <xs:element ref="tns:joor"/>
+                        
+            <xs:element ref="tns:jq"/>
+                        
+            <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:python"/>
+                        
+            <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:circuitBreaker"/>
+                        
+            <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:idempotentConsumer"/>
+                        
+            <xs:element ref="tns:intercept"/>
+                        
+            <xs:element ref="tns:interceptFrom"/>
+                        
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+                        
+            <xs:element ref="tns:kamelet"/>
+                        
+            <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:pausable"/>
+                        
+            <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:resumable"/>
+                        
+            <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:wireTap"/>
+                        
+            <xs:element ref="tns:serviceCall"/>
+                      
+          </xs:choice>
+                  
+        </xs:sequence>
+                
+        <xs:attribute name="statusPropertyName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Name of exchange property to use for storing the status of the filtering.
+Setting this allows to know if the filter predicate evaluated as true or false.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="finallyDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:output">
+                
+        <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:circuitBreaker"/>
+                        
+            <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:idempotentConsumer"/>
+                        
+            <xs:element ref="tns:intercept"/>
+                        
+            <xs:element ref="tns:interceptFrom"/>
+                        
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+                        
+            <xs:element ref="tns:kamelet"/>
+                        
+            <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:pausable"/>
+                        
+            <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:resumable"/>
+                        
+            <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:wireTap"/>
+                        
+            <xs:element ref="tns:serviceCall"/>
+                      
+          </xs:choice>
+                  
+        </xs:sequence>
+              
+      </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="idempotentConsumerDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:processorDefinition">
+                
+        <xs:sequence>
+                    
+          <xs:choice>
+                        
+            <xs:element ref="tns:expressionDefinition"/>
+                        
+            <xs:element ref="tns:csimple"/>
+                        
+            <xs:element ref="tns:constant"/>
+                        
+            <xs:element ref="tns:datasonnet"/>
+                        
+            <xs:element ref="tns:exchangeProperty"/>
+                        
+            <xs:element ref="tns:groovy"/>
+                        
+            <xs:element ref="tns:header"/>
+                        
+            <xs:element ref="tns:hl7terser"/>
+                        
+            <xs:element ref="tns:js"/>
+                        
+            <xs:element ref="tns:joor"/>
+                        
+            <xs:element ref="tns:jq"/>
+                        
+            <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:python"/>
+                        
+            <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:circuitBreaker"/>
+                        
+            <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:idempotentConsumer"/>
+                        
+            <xs:element ref="tns:intercept"/>
+                        
+            <xs:element ref="tns:interceptFrom"/>
+                        
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+                        
+            <xs:element ref="tns:kamelet"/>
+                        
+            <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:pausable"/>
+                        
+            <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:resumable"/>
+                        
+            <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:wireTap"/>
+                        
+            <xs:element ref="tns:serviceCall"/>
+                      
+          </xs:choice>
+                  
+        </xs:sequence>
+                
+        <xs:attribute name="idempotentRepository" 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:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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: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[
+The input type URN.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="validate" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether 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: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:circuitBreaker"/>
+                        
+            <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:idempotentConsumer"/>
+                        
+            <xs:element ref="tns:intercept"/>
+                        
+            <xs:element ref="tns:interceptFrom"/>
+                        
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+                        
+            <xs:element ref="tns:kamelet"/>
+                        
+            <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:pausable"/>
+                        
+            <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:resumable"/>
+                        
+            <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:wireTap"/>
+                        
+            <xs:element ref="tns:serviceCall"/>
+                      
+          </xs:choice>
+                  
+        </xs:sequence>
+              
+      </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:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="interceptSendToEndpointDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:output">
+                
+        <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:circuitBreaker"/>
+                        
+            <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:idempotentConsumer"/>
+                        
+            <xs:element ref="tns:intercept"/>
+                        
+            <xs:element ref="tns:interceptFrom"/>
+                        
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+                        
+            <xs:element ref="tns:kamelet"/>
+                        
+            <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:pausable"/>
+                        
+            <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:resumable"/>
+                        
+            <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:wireTap"/>
+                        
+            <xs:element ref="tns:serviceCall"/>
+                      
+          </xs:choice>
+                  
+        </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:string">
+          <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.
+            ]]></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:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="kameletDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:output">
+                
+        <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:circuitBreaker"/>
+                        
+            <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:idempotentConsumer"/>
+                        
+            <xs:element ref="tns:intercept"/>
+                        
+            <xs:element ref="tns:interceptFrom"/>
+                        
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+                        
+            <xs:element ref="tns:kamelet"/>
+                        
+            <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:pausable"/>
+                        
+            <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:resumable"/>
+                        
+            <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:wireTap"/>
+                        
+            <xs:element ref="tns:serviceCall"/>
+                      
+          </xs:choice>
+                  
+        </xs:sequence>
+                
+        <xs:attribute name="name" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Name of the Kamelet (templateId/routeId) to call. Options for the kamelet can be
+specified using uri syntax, eg mynamecount=4&type=gold.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="loadBalanceDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:output">
+                
+        <xs:sequence>
+                    
+          <xs:choice minOccurs="0">
+                        
+            <xs:element ref="tns:customLoadBalancer"/>
+                        
+            <xs:element ref="tns:failover"/>
+                        
+            <xs:element ref="tns:random"/>
+                        
+            <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:circuitBreaker"/>
+                        
+            <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:idempotentConsumer"/>
+                        
+            <xs:element ref="tns:intercept"/>
+                        
+            <xs:element ref="tns:interceptFrom"/>
+                        
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+                        
+            <xs:element ref="tns:kamelet"/>
+                        
+            <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:pausable"/>
+                        
+            <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:resumable"/>
+                        
+            <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:wireTap"/>
+                        
+            <xs:element ref="tns:serviceCall"/>
+                      
+          </xs:choice>
+                  
+        </xs:sequence>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="customLoadBalancerDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:loadBalancerDefinition">
+                
+        <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:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType abstract="true" name="loadBalancerDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:identifiedType">
+                
+        <xs:sequence/>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="failoverLoadBalancerDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:loadBalancerDefinition">
+                
+        <xs:sequence>
+                    
+          <xs:element maxOccurs="unbounded" minOccurs="0" name="exception" type="xs:string">
+            <xs:annotation>
+              <xs:documentation xml:lang="en"><![CDATA[
+A list of class names for specific exceptions to monitor. If no exceptions are
+configured then all exceptions are monitored.
+              ]]></xs:documentation>
+            </xs:annotation>
+          </xs:element>
+                  
+        </xs:sequence>
+                
+        <xs:attribute name="roundRobin" type="xs:string">
+          <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).
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="sticky" type="xs:string">
+          <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).
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="maximumFailoverAttempts" type="xs:string">
+          <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:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="randomLoadBalancerDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:loadBalancerDefinition">
+                
+        <xs:sequence/>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="roundRobinLoadBalancerDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:loadBalancerDefinition">
+                
+        <xs:sequence/>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="stickyLoadBalancerDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:loadBalancerDefinition">
+                
+        <xs:sequence>
+                    
+          <xs:element name="correlationExpression" type="tns:expressionSubElementDefinition">
+            <xs:annotation>
+              <xs:documentation xml:lang="en"><![CDATA[
+The correlation expression to use to calculate the correlation key.
+              ]]></xs:documentation>
+            </xs:annotation>
+          </xs:element>
+                  
+        </xs:sequence>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="topicLoadBalancerDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:loadBalancerDefinition">
+                
+        <xs:sequence/>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="weightedLoadBalancerDefinition">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:loadBalancerDefinition">
+                
+        <xs:sequence/>
+                
+        <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 ,
+(comma). Default value: ,
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="roundRobin" type="xs:string">
+          <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: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="xs:string">
+          <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="logger" 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: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:csimple"/>
+                        
+            <xs:element ref="tns:constant"/>
+                        
+            <xs:element ref="tns:datasonnet"/>
+                        
+            <xs:element ref="tns:exchangeProperty"/>
+                        
+            <xs:element ref="tns:groovy"/>
+                        
+            <xs:element ref="tns:header"/>
+                        
+            <xs:element ref="tns:hl7terser"/>
+                        
+            <xs:element ref="tns:js"/>
+                        
+            <xs:element ref="tns:joor"/>
+                        
+            <xs:element ref="tns:jq"/>
+                        
+            <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:python"/>
+                        
+            <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:circuitBreaker"/>
+                        
+            <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:idempotentConsumer"/>
+                        
+            <xs:element ref="tns:intercept"/>
+                        
+            <xs:element ref="tns:interceptFrom"/>
+                        
+            <xs:element ref="tns:interceptSendToEndpoint"/>
+                        
+            <xs:element ref="tns:kamelet"/>
+                        
+            <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:pausable"/>
+                        
+            <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:resumable"/>
+                        
+            <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:wireTap"/>
+                        
+            <xs:element ref="tns:serviceCall"/>
+                      
+          </xs:choice>
+                  
+        </xs:sequence>
+                
+        <xs:attribute name="copy" type="xs:string">
+          <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:string">
+          <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:attribute name="breakOnShutdown" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If the breakOnShutdown attribute is true, then the loop will not iterate until
+it reaches the end when Camel is shut down. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </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:asn1"/>
+                        
+            <xs:element ref="tns:avro"/>
+                        
+            <xs:element ref="tns:barcode"/>
+                        
+            <xs:element ref="tns:base64"/>
+                        
+            <xs:element ref="tns:bindy"/>
+                        
+            <xs:element ref="tns:cbor"/>
+                        
+            <xs:element ref="tns:crypto"/>
+                        
+            <xs:element ref="tns:csv"/>
+                        
+            <xs:element ref="tns:custom"/>
+                        
+            <xs:element ref="tns:fhirJson"/>
+                        
+            <xs:element ref="tns:fhirXml"/>
+                        
+            <xs:element ref="tns:flatpack"/>
+                        
+            <xs:element ref="tns:grok"/>
+                        
+            <xs:element ref="tns:gzipDeflater"/>
+                        
+            <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 ref="tns:mimeMultipart"/>
+                        
+            <xs:element ref="tns:protobuf"/>
+                        
+            <xs:element ref="tns:rss"/>
+                        
+            <xs:element ref="tns:soap"/>
+                        
+            <xs:element ref="tns:swiftMt"/>
+                        
+            <xs:element ref="tns:swiftMx"/>
+                        
+            <xs:element ref="tns:syslog"/>
+                        
+            <xs:element ref="tns:tarFile"/>
+                        
+            <xs:element ref="tns:thrift"/>
+                        
+            <xs:element ref="tns:tidyMarkup"/>
+                        
+            <xs:element ref="tns:univocityCsv"/>
+                        
+            <xs:element ref="tns:univocityFixed"/>
+                        
+            <xs:element ref="tns:univocityTsv"/>
+                        
+            <xs:element ref="tns:xmlSecurity"/>
+                        
+            <xs:element ref="tns:pgp"/>
+                        
+            <xs:element ref="tns:yaml"/>
+                        
+            <xs:element ref="tns:zipDeflater"/>
+                        
+            <xs:element ref="tns:zipFile"/>
+                      
+          </xs:choice>
+                  
+        </xs:sequence>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="asn1DataFormat">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:dataFormat">
+                
+        <xs:sequence/>
+                
+        <xs:attribute name="unmarshalType" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Class to use when unmarshalling.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="usingIterator" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If the asn1 file has more than one entry, the setting this option to true,
+allows working 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: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">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Class name to use for marshal and unmarshalling.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="library" type="tns:avroLibrary">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Which Avro library to use. Default value: ApacheAvro
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <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:string">
+          <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="unmarshalType" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Class name of the java type to use when unmarshalling.
+            ]]></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:string">
+          <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="collectionType" 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:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To unmarshal to a List of Map or a List of Pojo. 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:string">
+          <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.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="autoDiscoverObjectMapper" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If set to true then Jackson will lookup for an objectMapper into the registry.
+Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="contentTypeHeader" type="xs:string">
+          <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. For example application/xml for data formats marshalling to
+XML, or application/json for data formats marshalling to JSON. Default value:
+true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="schemaResolver" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Optional schema resolver used to lookup schemas for the data in transit.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="autoDiscoverSchemaResolver" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+When not disabled, the SchemaResolver will be looked up into the registry.
+Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="barcodeDataFormat">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:dataFormat">
+                
+        <xs:sequence/>
+                
+        <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: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="width" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Width of the barcode.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="height" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Height of the barcode.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </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:string">
+          <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:string">
+          <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:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="bindyDataFormat">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:dataFormat">
+                
+        <xs:sequence/>
+                
+        <xs:attribute name="type" type="xs:string" 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="allowEmptyStream" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to allow empty streams in the unmarshal process. If true, no exception
+will be thrown when a body without records is provided. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="unwrapSingleInstance" type="xs:string">
+          <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: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: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:string">
+          <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="unmarshalType" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Class name of the java type to use when unmarshalling.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="collectionType" 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:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To unmarshal 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:string">
+          <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:string">
+          <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:string">
+          <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: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.
+            ]]></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="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="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:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+The size of the buffer used in the signature process. Default value: 4096
+            ]]></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:string">
+          <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: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="inline" type="xs:string">
+          <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: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:annotation>
+              <xs:documentation xml:lang="en"><![CDATA[
+To configure the CSV headers.
+              ]]></xs:documentation>
+            </xs:annotation>
+          </xs:element>
+                  
+        </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. Default
+value: DEFAULT
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="commentMarkerDisabled" type="xs:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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:attribute name="captureHeaderRecord" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether the unmarshalling should capture the header record and store it in the
+message header. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </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:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="fhirJsonDataFormat">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:fhirDataformat">
+                
+        <xs:sequence/>
+              
+      </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,R5. Default value: R4
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="fhirContext" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To use a custom fhir context. Reference to object of type
+ca.uhn.fhir.context.FhirContext.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="prettyPrint" type="xs:string">
+          <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="parserErrorHandler" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Registers an error handler which will be invoked when any parse errors are
+found. Reference to object of type ca.uhn.fhir.parser.IParserErrorHandler.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="parserOptions" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Sets the parser options object which will be used to supply default options to
+newly created parsers. Reference to object of type
+ca.uhn.fhir.context.ParserOptions.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="preferTypes" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If set (FQN class names), when parsing resources the parser will try to use the
+given types when possible, in the order that they are provided (from highest to
+lowest priority). For example, if a custom type which declares to implement the
+Patient resource is passed in here, and the parser is parsing a Bundle
+containing a Patient resource, the parser will use the given custom type.
+Multiple class names can be separated by comma.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="forceResourceId" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+When encoding, force this resource ID to be encoded as the resource ID.
+Reference to object of type org.hl7.fhir.instance.model.api.IIdType.
+            ]]></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:string">
+          <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:string">
+          <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" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If provided, specifies the elements which should be encoded, to the exclusion of
+all others. Multiple elements can be separated by comma when using String
+parameter. 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:attribute>
+                
+        <xs:attribute name="dontEncodeElements" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+If provided, specifies the elements which should NOT be encoded. Multiple
+elements can be separated by comma when using String parameter. 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:attribute>
+                
+        <xs:attribute name="stripVersionsFromReferences" type="xs:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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" type="xs:string">
+          <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.
+Multiple elements can be separated by comma when using String parameter. This
+method provides a finer-grained level of control than
+setStripVersionsFromReferences(String) and any paths specified by this method
+will be encoded even if setStripVersionsFromReferences(String) has been set to
+true (which is the default).
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="contentTypeHeader" type="xs:string">
+          <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. For example application/xml for data formats marshalling to
+XML, or application/json for data formats marshalling to JSON. Default value:
+true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </xs:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="fhirXmlDataFormat">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:fhirDataformat">
+                
+        <xs:sequence/>
+              
+      </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:string">
+          <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="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="ignoreFirstRecord" type="xs:string">
+          <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="allowShortLines" type="xs:string">
+          <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:string">
+          <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="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="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: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:string">
+          <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:string">
+          <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:string">
+          <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:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="gzipDeflaterDataFormat">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:dataFormat">
+                
+        <xs:sequence/>
+              
+      </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:string">
+          <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:extension>
+          
+    </xs:complexContent>
+      
+  </xs:complexType>
+    
+  <xs:complexType name="icalDataFormat">
+        
+    <xs:complexContent>
+            
+      <xs:extension base="tns:dataFormat">
+                
+        <xs:sequence/>
+                
+        <xs:attribute name="validating" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether to validate. Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </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:string">
+          <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="unmarshalType" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Class name of the java type to use when unmarshalling.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="allowUnmarshallType" type="xs:string">
+          <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="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:string">
+          <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="collectionType" 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:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+To unmarshal to a List of Map or a List of Pojo. 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.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="enableJaxbAnnotationModule" type="xs:string">
+          <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="contentTypeHeader" type="xs:string">
+          <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. For example application/xml for data formats marshalling to
+XML, or application/json for data formats marshalling to JSON. Default value:
+true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+              
+      </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="contextPathIsClassName" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+This can be set to true to mark that the contextPath is referring to a classname
+and not a package name. Default value: false
+            ]]></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 be resolved. You can separate
+multiple schema files by using the ',' character.
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="schemaSeverityLevel" type="xs:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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:string">
+          <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>
... 11694 lines suppressed ...