You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2015/03/10 15:37:17 UTC

svn commit: r943182 [3/7] - in /websites/production/camel/content/schema: blueprint/ cxf/ spring-security/ spring/ spring/integration/

Modified: websites/production/camel/content/schema/blueprint/camel-blueprint.xsd
==============================================================================
--- websites/production/camel/content/schema/blueprint/camel-blueprint.xsd (original)
+++ websites/production/camel/content/schema/blueprint/camel-blueprint.xsd Tue Mar 10 14:37:17 2015
@@ -1,337 +1,978 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<xs:schema elementFormDefault="qualified" version="1.0" targetNamespace="http://camel.apache.org/schema/blueprint" xmlns:tns="http://camel.apache.org/schema/blueprint" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://camel.apache.org/schema/blueprint" elementFormDefault="qualified" targetNamespace="http://camel.apache.org/schema/blueprint" version="1.0">
 
-  <xs:element name="aggregate" type="tns:aggregateDefinition"/>
-
-  <xs:element name="aop" type="tns:aopDefinition"/>
-
-  <xs:element name="avro" type="tns:avroDataFormat"/>
-
-  <xs:element name="barcode" type="tns:barcodeDataFormat"/>
-
-  <xs:element name="base64" type="tns:base64DataFormat"/>
-
-  <xs:element name="batchResequencerConfig" type="tns:batchResequencerConfig"/>
-
-  <xs:element name="bean" type="tns:beanDefinition"/>
-
-  <xs:element name="beanio" type="tns:beanioDataFormat"/>
-
-  <xs:element name="bindy" type="tns:bindyDataFormat"/>
+  <xs:element name="aggregate" type="tns:aggregateDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Aggregates many messages into a single message</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="aop" type="tns:aopDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Does processing before and/or after the route is completed</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="avro" type="tns:avroDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Avro data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="barcode" type="tns:barcodeDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Barcode data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="base64" type="tns:base64DataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Base64 data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="batch-config" type="tns:batchResequencerConfig">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">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">Calls a java bean</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="beanio" type="tns:beanioDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">BeanIO data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="bindy" type="tns:bindyDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Bindy data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
 
   <xs:element name="camelContext" type="tns:camelContextFactoryBean"/>
 
-  <xs:element name="castor" type="tns:castorDataFormat"/>
-
-  <xs:element name="choice" type="tns:choiceDefinition"/>
-
-  <xs:element name="circuitBreaker" type="tns:circuitBreakerLoadBalancerDefinition"/>
-
-  <xs:element name="constant" type="tns:constantExpression"/>
+  <xs:element name="castor" type="tns:castorDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Castor data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="choice" type="tns:choiceDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Routes messages based on a series of predicates</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="circuitBreaker" type="tns:circuitBreakerLoadBalancerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Circuit break load balancer</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="constant" type="tns:constantExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">For expressions and predicates using a constant</xs:documentation>
+    </xs:annotation>
+  </xs:element>
 
   <xs:element name="consumerTemplate" type="tns:camelConsumerTemplateFactoryBean"/>
 
-  <xs:element name="contextScan" type="tns:contextScanDefinition"/>
-
-  <xs:element name="convertBodyTo" type="tns:convertBodyDefinition"/>
-
-  <xs:element name="crypto" type="tns:cryptoDataFormat"/>
-
-  <xs:element name="csv" type="tns:csvDataFormat"/>
-
-  <xs:element name="customDataFormat" type="tns:customDataFormat"/>
-
-  <xs:element name="customLoadBalancer" type="tns:customLoadBalancerDefinition"/>
-
-  <xs:element name="dataFormats" type="tns:dataFormatsDefinition"/>
-
-  <xs:element name="delay" type="tns:delayDefinition"/>
-
-  <xs:element name="delete" type="tns:deleteVerbDefinition"/>
-
-  <xs:element name="description" type="tns:descriptionDefinition"/>
-
-  <xs:element name="doCatch" type="tns:catchDefinition"/>
-
-  <xs:element name="doFinally" type="tns:finallyDefinition"/>
-
-  <xs:element name="doTry" type="tns:tryDefinition"/>
-
-  <xs:element name="dynamicRouter" type="tns:dynamicRouterDefinition"/>
-
-  <xs:element name="el" type="tns:elExpression"/>
+  <xs:element name="contextScan" type="tns:contextScanDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">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">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">Crypto data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="csv" type="tns:csvDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">CSV data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="customDataFormat" type="tns:customDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Custom data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="customLoadBalancer" type="tns:customLoadBalancerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Custom load balancer</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="dataFormats" type="tns:dataFormatsDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">To configure data formats</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="delay" type="tns:delayDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Delays processing for a specified length of time</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="delete" type="tns:deleteVerbDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Rest DELETE command</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="description" type="tns:descriptionDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">To provide comments about the node.</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="doCatch" type="tns:catchDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">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">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">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">Routes messages based on dynamic rules</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="el" type="tns:elExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">For EL expressions and predicates</xs:documentation>
+    </xs:annotation>
+  </xs:element>
 
   <xs:element name="endpoint" type="tns:camelEndpointFactoryBean"/>
 
-  <xs:element name="enrich" type="tns:enrichDefinition"/>
+  <xs:element name="enrich" type="tns:enrichDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Enriches a message with data from a secondary resource</xs:documentation>
+    </xs:annotation>
+  </xs:element>
 
   <xs:element name="errorHandler" type="tns:camelErrorHandlerFactoryBean"/>
 
+  <xs:element name="exchangeProperty" type="tns:exchangePropertyExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">An expression which extracts the named exchange property</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
   <xs:element name="export" type="tns:camelServiceExporterDefinition"/>
 
-  <xs:element name="expression" type="tns:expressionSubElementDefinition"/>
+  <xs:element name="expression" type="tns:expressionSubElementDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">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:element name="filter" type="tns:filterDefinition"/>
-
-  <xs:element name="flatpack" type="tns:flatpackDataFormat"/>
-
-  <xs:element name="from" type="tns:fromDefinition"/>
-
-  <xs:element name="get" type="tns:getVerbDefinition"/>
-
-  <xs:element name="groovy" type="tns:groovyExpression"/>
-
-  <xs:element name="gzip" type="tns:gzipDataFormat"/>
-
-  <xs:element name="head" type="tns:headVerbDefinition"/>
-
-  <xs:element name="header" type="tns:headerExpression"/>
-
-  <xs:element name="hl7" type="tns:hl7DataFormat"/>
-
-  <xs:element name="idempotentConsumer" type="tns:idempotentConsumerDefinition"/>
-
-  <xs:element name="inOnly" type="tns:inOnlyDefinition"/>
-
-  <xs:element name="inOut" type="tns:inOutDefinition"/>
-
-  <xs:element name="intercept" type="tns:interceptDefinition"/>
-
-  <xs:element name="interceptFrom" type="tns:interceptFromDefinition"/>
-
-  <xs:element name="interceptToEndpoint" type="tns:interceptSendToEndpointDefinition"/>
-
-  <xs:element name="javaScript" type="tns:javaScriptExpression"/>
-
-  <xs:element name="jaxb" type="tns:jaxbDataFormat"/>
-
-  <xs:element name="jibx" type="tns:jibxDataFormat"/>
+  <xs:element name="failover" type="tns:failoverLoadBalancerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Failover load balancer</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="filter" type="tns:filterDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">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">Flatpack data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="from" type="tns:fromDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Act as a message source as input to a route</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="get" type="tns:getVerbDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Rest GET command</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="groovy" type="tns:groovyExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">For Groovy expressions and predicates</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="gzip" type="tns:gzipDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">GZip data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="head" type="tns:headVerbDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Rest HEAD command</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="header" type="tns:headerExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">An expression which extracts the named exchange header</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="hl7" type="tns:hl7DataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">HL7 data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="ical" type="tns:icalDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">iCal data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="idempotentConsumer" type="tns:idempotentConsumerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Filters out duplicate messages</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="inOnly" type="tns:inOnlyDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Marks the exchange pattern for the route to one way</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="inOut" type="tns:inOutDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Marks the exchange pattern for the route to request/reply</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="intercept" type="tns:interceptDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">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">Intercepts incoming messages</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="interceptSendToEndpoint" type="tns:interceptSendToEndpointDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Intercepts messages being sent to an endpoint</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="javaScript" type="tns:javaScriptExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">For JavaScript expressions and predicates</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="jaxb" type="tns:jaxbDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">JAXB data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="jibx" type="tns:jibxDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">JiBX data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
 
   <xs:element name="jmxAgent" type="tns:camelJMXAgentDefinition"/>
 
-  <xs:element name="json" type="tns:jsonDataFormat"/>
-
-  <xs:element name="jsonpath" type="tns:jsonPathExpression"/>
-
-  <xs:element name="jxpath" type="tns:jxPathExpression"/>
+  <xs:element name="json" type="tns:jsonDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Json data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="jsonpath" type="tns:jsonPathExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">For JSonPath expressions and predicates</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="jxpath" type="tns:jxPathExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">For JXPath expressions and predicates</xs:documentation>
+    </xs:annotation>
+  </xs:element>
 
   <xs:element name="keyStoreParameters" type="tns:keyStoreParametersFactoryBean"/>
 
-  <xs:element name="language" type="tns:languageExpression"/>
-
-  <xs:element name="loadBalance" type="tns:loadBalanceDefinition"/>
-
-  <xs:element name="log" type="tns:logDefinition"/>
-
-  <xs:element name="loop" type="tns:loopDefinition"/>
-
-  <xs:element name="marshal" type="tns:marshalDefinition"/>
-
-  <xs:element name="method" type="tns:methodCallExpression"/>
-
-  <xs:element name="multicast" type="tns:multicastDefinition"/>
-
-  <xs:element name="mvel" type="tns:mvelExpression"/>
-
-  <xs:element name="ognl" type="tns:ognlExpression"/>
-
-  <xs:element name="onCompletion" type="tns:onCompletionDefinition"/>
-
-  <xs:element name="onException" type="tns:onExceptionDefinition"/>
-
-  <xs:element name="optimisticLockRetryPolicy" type="tns:optimisticLockRetryPolicyDefinition"/>
-
-  <xs:element name="otherwise" type="tns:otherwiseDefinition"/>
-
-  <xs:element name="packageScan" type="tns:packageScanDefinition"/>
-
-  <xs:element name="pgp" type="tns:pgpDataFormat"/>
-
-  <xs:element name="php" type="tns:phpExpression"/>
-
-  <xs:element name="pipeline" type="tns:pipelineDefinition"/>
-
-  <xs:element name="policy" type="tns:policyDefinition"/>
-
-  <xs:element name="pollEnrich" type="tns:pollEnrichDefinition"/>
-
-  <xs:element name="post" type="tns:postVerbDefinition"/>
-
-  <xs:element name="process" type="tns:processDefinition"/>
-
-  <xs:element name="properties" type="tns:propertiesDefinition"/>
+  <xs:element name="language" type="tns:languageExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Represents a parameterised language expression which can support any language at runtime using the language attribute.</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="loadBalance" type="tns:loadBalanceDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Balances message processing among a number of nodes</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="log" type="tns:logDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">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">Processes a message multiple times</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="marshal" type="tns:marshalDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">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">For expressions and predicates using a java bean (aka method call)</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="multicast" type="tns:multicastDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Routes the same message to multiple paths either sequentially or in parallel.</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="mvel" type="tns:mvelExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">For MVEL expressions and predicates</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="ognl" type="tns:ognlExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">For OGNL expressions and predicates</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="onCompletion" type="tns:onCompletionDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">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">Route to be executed when an exception is thrown</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="optimisticLockRetryPolicy" type="tns:optimisticLockRetryPolicyDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">To configure optimistic locking</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="otherwise" type="tns:otherwiseDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Route to be executed when all other choices evaluate to false</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="packageScan" type="tns:packageScanDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Scans for Java org.apache.camel.builder.RouteBuilder classes in java packages</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="pgp" type="tns:pgpDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">PGP data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="php" type="tns:phpExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">For PHP expressions and predicates</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="pipeline" type="tns:pipelineDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">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">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">Enriches messages with data polled from a secondary resource</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="post" type="tns:postVerbDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Rest POST command</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="process" type="tns:processDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Calls a Camel processor.</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="properties" type="tns:propertiesDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">A series of key value pair</xs:documentation>
+    </xs:annotation>
+  </xs:element>
 
   <xs:element name="propertiesFunction" type="tns:camelPropertyPlaceholderFunctionDefinition"/>
 
-  <xs:element name="property" nillable="true" type="xs:anyType"/>
+  <xs:element name="property" type="tns:propertyDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">A key value pair</xs:documentation>
+    </xs:annotation>
+  </xs:element>
 
   <xs:element name="propertyPlaceholder" type="tns:camelPropertyPlaceholderDefinition"/>
 
-  <xs:element name="protobuf" type="tns:protobufDataFormat"/>
+  <xs:element name="protobuf" type="tns:protobufDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Google protobuf data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
 
   <xs:element name="proxy" nillable="true" type="xs:anyType"/>
 
-  <xs:element name="put" type="tns:putVerbDefinition"/>
-
-  <xs:element name="python" type="tns:pythonExpression"/>
-
-  <xs:element name="random" type="tns:randomLoadBalancerDefinition"/>
-
-  <xs:element name="recipientList" type="tns:recipientListDefinition"/>
-
-  <xs:element name="redeliveryPolicy" type="tns:redeliveryPolicyDefinition"/>
+  <xs:element name="put" type="tns:putVerbDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Rest PUT command</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="python" type="tns:pythonExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">For Python expressions and predicates</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="random" type="tns:randomLoadBalancerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Random load balancer</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="recipientList" type="tns:recipientListDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Routes messages to a number of dynamically specified recipients (dynamic to)</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="redeliveryPolicy" type="tns:redeliveryPolicyDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">To configure re-delivery for error handling</xs:documentation>
+    </xs:annotation>
+  </xs:element>
 
   <xs:element name="redeliveryPolicyProfile" type="tns:camelRedeliveryPolicyFactoryBean"/>
 
-  <xs:element name="ref" type="tns:refExpression"/>
-
-  <xs:element name="removeHeader" type="tns:removeHeaderDefinition"/>
-
-  <xs:element name="removeHeaders" type="tns:removeHeadersDefinition"/>
-
-  <xs:element name="removeProperty" type="tns:removePropertyDefinition"/>
-
-  <xs:element name="resequence" type="tns:resequenceDefinition"/>
-
-  <xs:element name="rest" type="tns:restDefinition"/>
-
-  <xs:element name="restBinding" type="tns:restBindingDefinition"/>
-
-  <xs:element name="restConfiguration" type="tns:restConfigurationDefinition"/>
+  <xs:element name="ref" type="tns:refExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">For using a custom expression</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="removeHeader" type="tns:removeHeaderDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">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">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">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">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">Resequences (re-order) messages based on an expression</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="rest" type="tns:restDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">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">To configure rest binding</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="restConfiguration" type="tns:restConfigurationDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">To configure rest</xs:documentation>
+    </xs:annotation>
+  </xs:element>
 
   <xs:element name="restContext" type="tns:camelRestContextFactoryBean"/>
 
-  <xs:element name="restContextRef" type="tns:restContextRefDefinition"/>
-
-  <xs:element name="restProperty" type="tns:restPropertyDefinition"/>
-
-  <xs:element name="rests" type="tns:restsDefinition"/>
-
-  <xs:element name="rollback" type="tns:rollbackDefinition"/>
-
-  <xs:element name="roundRobin" type="tns:roundRobinLoadBalancerDefinition"/>
-
-  <xs:element name="route" type="tns:routeDefinition"/>
-
-  <xs:element name="routeBuilder" type="tns:routeBuilderDefinition"/>
+  <xs:element name="restContextRef" type="tns:restContextRefDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">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">A key value pair</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="rests" type="tns:restsDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">A series of rest services defined using the rest-dsl</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="rollback" type="tns:rollbackDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">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">Round robin load balancer</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="route" type="tns:routeDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">A Camel route</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="routeBuilder" type="tns:routeBuilderDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">To refer to a Java org.apache.camel.builder.RouteBuilder instance to use.</xs:documentation>
+    </xs:annotation>
+  </xs:element>
 
   <xs:element name="routeContext" type="tns:camelRouteContextFactoryBean"/>
 
-  <xs:element name="routeContextRef" type="tns:routeContextRefDefinition"/>
-
-  <xs:element name="routes" type="tns:routesDefinition"/>
-
-  <xs:element name="routingSlip" type="tns:routingSlipDefinition"/>
-
-  <xs:element name="rss" type="tns:rssDataFormat"/>
-
-  <xs:element name="ruby" type="tns:rubyExpression"/>
-
-  <xs:element name="sample" type="tns:samplingDefinition"/>
+  <xs:element name="routeContextRef" type="tns:routeContextRefDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">To refer to an XML file with routes defined using the xml-dsl</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="routes" type="tns:routesDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">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">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">RSS data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="ruby" type="tns:rubyExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">For Ruby expressions and predicates</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="sample" type="tns:samplingDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Extract a sample of the messages passing through a route</xs:documentation>
+    </xs:annotation>
+  </xs:element>
 
   <xs:element name="secureRandomParameters" type="tns:secureRandomParametersFactoryBean"/>
 
-  <xs:element name="secureXML" type="tns:xmlSecurityDataFormat"/>
-
-  <xs:element name="serialization" type="tns:serializationDataFormat"/>
-
-  <xs:element name="setBody" type="tns:setBodyDefinition"/>
-
-  <xs:element name="setExchangePattern" type="tns:setExchangePatternDefinition"/>
-
-  <xs:element name="setFaultBody" type="tns:setFaultBodyDefinition"/>
-
-  <xs:element name="setHeader" type="tns:setHeaderDefinition"/>
-
-  <xs:element name="setOutHeader" type="tns:setOutHeaderDefinition"/>
-
-  <xs:element name="setProperty" type="tns:setPropertyDefinition"/>
-
-  <xs:element name="simple" type="tns:simpleExpression"/>
-
-  <xs:element name="soapjaxb" type="tns:soapJaxbDataFormat"/>
-
-  <xs:element name="sort" type="tns:sortDefinition"/>
-
-  <xs:element name="spel" type="tns:spELExpression"/>
-
-  <xs:element name="split" type="tns:splitDefinition"/>
-
-  <xs:element name="sql" type="tns:sqlExpression"/>
+  <xs:element name="secureXML" type="tns:xmlSecurityDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">xml-security data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="serialization" type="tns:serializationDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Java Object Serialization data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="setBody" type="tns:setBodyDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">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">Sets the exchange pattern on the message exchange</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="setFaultBody" type="tns:setFaultBodyDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Sets the contents of a fault message's body</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="setHeader" type="tns:setHeaderDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Sets the value of a message header</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="setOutHeader" type="tns:setOutHeaderDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Sets the value of a header on the outbound message</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="setProperty" type="tns:setPropertyDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">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">For expressions and predicates using the simple language</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="soapjaxb" type="tns:soapJaxbDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">SOAP data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="sort" type="tns:sortDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">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">For Spring Expression Language (SpEL) expressions and predicates</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="split" type="tns:splitDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Splits a single message into many sub-messages.</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="sql" type="tns:sqlExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">For SQL expressions and predicates</xs:documentation>
+    </xs:annotation>
+  </xs:element>
 
   <xs:element name="sslContextParameters" type="tns:sslContextParametersFactoryBean"/>
 
-  <xs:element name="sticky" type="tns:stickyLoadBalancerDefinition"/>
-
-  <xs:element name="stop" type="tns:stopDefinition"/>
+  <xs:element name="sticky" type="tns:stickyLoadBalancerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Sticky load balancer</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="stop" type="tns:stopDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">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">Configures stream-processing resequence eip.</xs:documentation>
+    </xs:annotation>
+  </xs:element>
 
   <xs:element name="streamCaching" type="tns:camelStreamCachingStrategyDefinition"/>
 
-  <xs:element name="streamResequencerConfig" type="tns:streamResequencerConfig"/>
-
-  <xs:element name="string" type="tns:stringDataFormat"/>
-
-  <xs:element name="syslog" type="tns:syslogDataFormat"/>
+  <xs:element name="string" type="tns:stringDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Represents the String (text based) DataFormat</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="syslog" type="tns:syslogDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Syslog data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
 
   <xs:element name="template" type="tns:camelProducerTemplateFactoryBean"/>
 
-  <xs:element name="threadPool" type="tns:camelThreadPoolFactoryBean"/>
-
-  <xs:element name="threadPoolProfile" type="tns:threadPoolProfileDefinition"/>
-
-  <xs:element name="threads" type="tns:threadsDefinition"/>
-
-  <xs:element name="throttle" type="tns:throttleDefinition"/>
-
-  <xs:element name="throwException" type="tns:throwExceptionDefinition"/>
-
-  <xs:element name="tidyMarkup" type="tns:tidyMarkupDataFormat"/>
-
-  <xs:element name="to" type="tns:toDefinition"/>
-
-  <xs:element name="tokenize" type="tns:tokenizerExpression"/>
-
-  <xs:element name="topic" type="tns:topicLoadBalancerDefinition"/>
+  <xs:element name="terser" type="tns:terserExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">For HL7 terser expressions and predicates</xs:documentation>
+    </xs:annotation>
+  </xs:element>
 
-  <xs:element name="transacted" type="tns:transactedDefinition"/>
-
-  <xs:element name="transform" type="tns:transformDefinition"/>
-
-  <xs:element name="unmarshal" type="tns:unmarshalDefinition"/>
-
-  <xs:element name="validate" type="tns:validateDefinition"/>
-
-  <xs:element name="verb" type="tns:verbDefinition"/>
-
-  <xs:element name="vtdxml" type="tns:vtdXmlExpression"/>
-
-  <xs:element name="weighted" type="tns:weightedLoadBalancerDefinition"/>
-
-  <xs:element name="when" type="tns:whenDefinition"/>
-
-  <xs:element name="wireTap" type="tns:wireTapDefinition"/>
-
-  <xs:element name="xmlBeans" type="tns:xmlBeansDataFormat"/>
-
-  <xs:element name="xmljson" type="tns:xmlJsonDataFormat"/>
-
-  <xs:element name="xmlrpc" type="tns:xmlRpcDataFormat"/>
-
-  <xs:element name="xpath" type="tns:xPathExpression"/>
-
-  <xs:element name="xquery" type="tns:xQueryExpression"/>
-
-  <xs:element name="xstream" type="tns:xStreamDataFormat"/>
-
-  <xs:element name="xtokenize" type="tns:xmlTokenizerExpression"/>
-
-  <xs:element name="zip" type="tns:zipDataFormat"/>
+  <xs:element name="threadPool" type="tns:camelThreadPoolFactoryBean"/>
 
-  <xs:element name="zipFile" type="tns:zipFileDataFormat"/>
+  <xs:element name="threadPoolProfile" type="tns:threadPoolProfileDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">To configure thread pools</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="threads" type="tns:threadsDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Specifies that all steps after this node are processed asynchronously</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="throttle" type="tns:throttleDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">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">Throws an exception</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="tidyMarkup" type="tns:tidyMarkupDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Tidymark (wellformed HTML) data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="to" type="tns:toDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Sends the message to an endpoint</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="tokenize" type="tns:tokenizerExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">For expressions and predicates using a body or header tokenizer.</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="topic" type="tns:topicLoadBalancerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Topic load balancer</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="transacted" type="tns:transactedDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">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">Transforms the message body based on an expression</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="univocity-csv" type="tns:uniVocityCsvDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">UniVocity CSV data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="univocity-fixed" type="tns:uniVocityFixedWidthDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">UniVocity fixed-width data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="univocity-header" type="tns:uniVocityHeader">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">To configure headers for UniVocity data formats.</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="univocity-tsv" type="tns:uniVocityTsvDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">UniVocity TSV data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="unmarshal" type="tns:unmarshalDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">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">Validates a message based on an expression</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="verb" type="tns:verbDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Rest command</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="vtdxml" type="tns:vtdXmlExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">For VTD-XML (fast and efficient XPath) expressions and predicates</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="weighted" type="tns:weightedLoadBalancerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Weighted load balancer</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="when" type="tns:whenDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Triggers a route when an expression evaluates to true</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="whenSkipSendToEndpoint" type="tns:whenSkipSendToEndpointDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">Predicate to determine if the message should be sent or not to the endpoint when using interceptSentToEndpoint.</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="wireTap" type="tns:wireTapDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">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="xmlBeans" type="tns:xmlBeansDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">XMLBeans data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="xmljson" type="tns:xmlJsonDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">xml-json data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="xmlrpc" type="tns:xmlRpcDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">xml-rpc data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="xpath" type="tns:xPathExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">For XPath expressions and predicates</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="xquery" type="tns:xQueryExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">For XQuery expressions and predicates</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="xstream" type="tns:xStreamDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">xstream data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="xtokenize" type="tns:xmlTokenizerExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">For expressions and predicates using a body or header tokenizer.</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="zip" type="tns:zipDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">zip data format (not for zip files)</xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:element name="zipFile" type="tns:zipFileDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">zip-file data format</xs:documentation>
+    </xs:annotation>
+  </xs:element>
 
   <xs:complexType name="camelConsumerTemplateFactoryBean">
     <xs:complexContent>
@@ -341,7 +982,7 @@
     </xs:complexContent>
   </xs:complexType>
 
-  <xs:complexType name="abstractCamelConsumerTemplateFactoryBean" abstract="true">
+  <xs:complexType abstract="true" name="abstractCamelConsumerTemplateFactoryBean">
     <xs:complexContent>
       <xs:extension base="tns:abstractCamelFactoryBean">
         <xs:sequence/>
@@ -350,7 +991,7 @@
     </xs:complexContent>
   </xs:complexType>
 
-  <xs:complexType name="abstractCamelFactoryBean" abstract="true">
+  <xs:complexType abstract="true" name="abstractCamelFactoryBean">
     <xs:complexContent>
       <xs:extension base="tns:identifiedType">
         <xs:sequence/>
@@ -359,45 +1000,49 @@
     </xs:complexContent>
   </xs:complexType>
 
-  <xs:complexType name="identifiedType" abstract="true">
+  <xs:complexType abstract="true" name="identifiedType">
     <xs:sequence/>
-    <xs:attribute name="id" type="xs:ID"/>
+    <xs:attribute name="id" type="xs:ID">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">Sets the value of the id property.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
   </xs:complexType>
 
   <xs:complexType name="camelContextFactoryBean">
     <xs:complexContent>
       <xs:extension base="tns:abstractCamelContextFactoryBean">
         <xs:sequence>
-          <xs:element ref="tns:properties" minOccurs="0"/>
-          <xs:element ref="tns:propertyPlaceholder" minOccurs="0"/>
-          <xs:element name="package" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
-          <xs:element ref="tns:packageScan" minOccurs="0"/>
-          <xs:element ref="tns:contextScan" minOccurs="0"/>
-          <xs:element ref="tns:jmxAgent" minOccurs="0"/>
-          <xs:element ref="tns:streamCaching" minOccurs="0"/>
-          <xs:choice minOccurs="0" maxOccurs="unbounded">
+          <xs:element minOccurs="0" ref="tns:properties"/>
+          <xs:element minOccurs="0" ref="tns:propertyPlaceholder"/>
+          <xs:element maxOccurs="unbounded" minOccurs="0" name="package" type="xs:string"/>
+          <xs:element minOccurs="0" ref="tns:packageScan"/>
+          <xs:element minOccurs="0" ref="tns:contextScan"/>
+          <xs:element minOccurs="0" ref="tns:jmxAgent"/>
+          <xs:element minOccurs="0" ref="tns:streamCaching"/>
+          <xs:choice maxOccurs="unbounded" minOccurs="0">
             <xs:element ref="tns:template"/>
             <xs:element ref="tns:consumerTemplate"/>
             <xs:element ref="tns:proxy"/>
             <xs:element ref="tns:export"/>
             <xs:element ref="tns:errorHandler"/>
           </xs:choice>
-          <xs:element ref="tns:routeBuilder" minOccurs="0" maxOccurs="unbounded"/>
-          <xs:element ref="tns:routeContextRef" minOccurs="0" maxOccurs="unbounded"/>
-          <xs:element ref="tns:restContextRef" minOccurs="0" maxOccurs="unbounded"/>
-          <xs:element ref="tns:threadPoolProfile" minOccurs="0" maxOccurs="unbounded"/>
-          <xs:element ref="tns:threadPool" minOccurs="0" maxOccurs="unbounded"/>
-          <xs:element ref="tns:endpoint" minOccurs="0" maxOccurs="unbounded"/>
-          <xs:element ref="tns:dataFormats" minOccurs="0"/>
-          <xs:element ref="tns:redeliveryPolicyProfile" minOccurs="0" maxOccurs="unbounded"/>
-          <xs:element ref="tns:onException" minOccurs="0" maxOccurs="unbounded"/>
-          <xs:element ref="tns:onCompletion" minOccurs="0" maxOccurs="unbounded"/>
-          <xs:element ref="tns:intercept" minOccurs="0" maxOccurs="unbounded"/>
-          <xs:element ref="tns:interceptFrom" minOccurs="0" maxOccurs="unbounded"/>
-          <xs:element name="interceptSendToEndpoint" type="tns:interceptSendToEndpointDefinition" minOccurs="0" maxOccurs="unbounded"/>
-          <xs:element ref="tns:restConfiguration" minOccurs="0"/>
-          <xs:element ref="tns:rest" minOccurs="0" maxOccurs="unbounded"/>
-          <xs:element ref="tns:route" minOccurs="0" maxOccurs="unbounded"/>
+          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:routeBuilder"/>
+          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:routeContextRef"/>
+          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:restContextRef"/>
+          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:threadPoolProfile"/>
+          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:threadPool"/>
+          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:endpoint"/>
+          <xs:element minOccurs="0" ref="tns:dataFormats"/>
+          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:redeliveryPolicyProfile"/>
+          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:onException"/>
+          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:onCompletion"/>
+          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:intercept"/>
+          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:interceptFrom"/>
+          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:interceptSendToEndpoint"/>
+          <xs:element minOccurs="0" ref="tns:restConfiguration"/>
+          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:rest"/>
+          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:route"/>
         </xs:sequence>
         <xs:attribute name="depends-on" type="xs:string"/>
         <xs:attribute name="trace" type="xs:string"/>
@@ -422,7 +1067,7 @@
     </xs:complexContent>
   </xs:complexType>
 
-  <xs:complexType name="abstractCamelContextFactoryBean" abstract="true">
+  <xs:complexType abstract="true" name="abstractCamelContextFactoryBean">
     <xs:complexContent>
       <xs:extension base="tns:identifiedType">
         <xs:sequence/>
@@ -432,21 +1077,29 @@
 
   <xs:complexType name="propertiesDefinition">
     <xs:sequence>
-      <xs:element ref="tns:property" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:property"/>
     </xs:sequence>
   </xs:complexType>
 
   <xs:complexType name="propertyDefinition">
     <xs:sequence/>
-    <xs:attribute name="key" type="xs:string" use="required"/>
-    <xs:attribute name="value" type="xs:string" use="required"/>
+    <xs:attribute name="key" type="xs:string" use="required">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">Property key</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="value" type="xs:string" use="required">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">Property value</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
   </xs:complexType>
 
   <xs:complexType name="camelPropertyPlaceholderDefinition">
     <xs:complexContent>
       <xs:extension base="tns:identifiedType">
         <xs:sequence>
-          <xs:element ref="tns:propertiesFunction" minOccurs="0" maxOccurs="unbounded"/>
+          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:propertiesFunction"/>
         </xs:sequence>
         <xs:attribute name="location" type="xs:string" use="required"/>
         <xs:attribute name="cache" type="xs:boolean"/>
@@ -473,16 +1126,16 @@
 
   <xs:complexType name="packageScanDefinition">
     <xs:sequence>
-      <xs:element name="package" type="xs:string" maxOccurs="unbounded"/>
-      <xs:element name="excludes" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="includes" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element maxOccurs="unbounded" name="package" type="xs:string"/>
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="excludes" type="xs:string"/>
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="includes" type="xs:string"/>
     </xs:sequence>
   </xs:complexType>
 
   <xs:complexType name="contextScanDefinition">
     <xs:sequence>
-      <xs:element name="excludes" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="includes" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="excludes" type="xs:string"/>
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="includes" type="xs:string"/>
     </xs:sequence>
   </xs:complexType>
 
@@ -536,7 +1189,7 @@
     </xs:complexContent>
   </xs:complexType>
 
-  <xs:complexType name="abstractCamelProducerTemplateFactoryBean" abstract="true">
+  <xs:complexType abstract="true" name="abstractCamelProducerTemplateFactoryBean">
     <xs:complexContent>
       <xs:extension base="tns:abstractCamelFactoryBean">
         <xs:sequence/>
@@ -573,10 +1226,11 @@
     <xs:complexContent>
       <xs:extension base="tns:abstractCamelFactoryBean">
         <xs:sequence>
-          <xs:element ref="tns:redeliveryPolicy" minOccurs="0"/>
+          <xs:element minOccurs="0" ref="tns:redeliveryPolicy"/>
         </xs:sequence>
         <xs:attribute name="type" type="tns:errorHandlerType"/>
         <xs:attribute name="deadLetterUri" type="xs:string"/>
+        <xs:attribute name="deadLetterHandleNewException" type="xs:boolean"/>
         <xs:attribute name="level" type="tns:loggingLevel"/>
         <xs:attribute name="logName" type="xs:string"/>
         <xs:attribute name="useOriginalMessage" type="xs:boolean"/>
@@ -590,79 +1244,234 @@
 
   <xs:complexType name="redeliveryPolicyDefinition">
     <xs:sequence/>
-    <xs:attribute name="maximumRedeliveries" type="xs:string"/>
-    <xs:attribute name="redeliveryDelay" type="xs:string"/>
-    <xs:attribute name="asyncDelayedRedelivery" type="xs:string"/>
-    <xs:attribute name="backOffMultiplier" type="xs:string"/>
-    <xs:attribute name="useExponentialBackOff" type="xs:string"/>
-    <xs:attribute name="collisionAvoidanceFactor" type="xs:string"/>
-    <xs:attribute name="useCollisionAvoidance" type="xs:string"/>
-    <xs:attribute name="maximumRedeliveryDelay" type="xs:string"/>
-    <xs:attribute name="retriesExhaustedLogLevel" type="tns:loggingLevel"/>
-    <xs:attribute name="retryAttemptedLogLevel" type="tns:loggingLevel"/>
-    <xs:attribute name="logRetryAttempted" type="xs:string"/>
-    <xs:attribute name="logStackTrace" type="xs:string"/>
-    <xs:attribute name="logRetryStackTrace" type="xs:string"/>
-    <xs:attribute name="logHandled" type="xs:string"/>
-    <xs:attribute name="logContinued" type="xs:string"/>
-    <xs:attribute name="logExhausted" type="xs:string"/>
-    <xs:attribute name="logExhaustedMessageHistory" type="xs:string"/>
-    <xs:attribute name="disableRedelivery" type="xs:string"/>
-    <xs:attribute name="delayPattern" type="xs:string"/>
-    <xs:attribute name="allowRedeliveryWhileStopping" type="xs:string"/>
+    <xs:attribute name="maximumRedeliveries" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">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">Sets the initial redelivery delay</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="asyncDelayedRedelivery" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">Allow synchronous delayed redelivery.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="backOffMultiplier" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">Sets the back off multiplier</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="useExponentialBackOff" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">Turn on exponential backk off</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="collisionAvoidanceFactor" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">Sets the collision avoidance factor</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="useCollisionAvoidance" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">Turn on collision avoidance.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="maximumRedeliveryDelay" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">Sets the maximum delay between redelivery</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="retriesExhaustedLogLevel" type="tns:loggingLevel">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">Sets the logging level to use when retries has exhausted</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="retryAttemptedLogLevel" type="tns:loggingLevel">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">Sets the logging level to use for logging retry attempts</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="logRetryAttempted" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">Sets whether retry attempts should be logged or not. Can be used to include or reduce verbose.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="logStackTrace" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">Sets whether stack traces should be logged. Can be used to include or reduce verbose.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="logRetryStackTrace" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">Sets whether stack traces should be logged when an retry attempt failed. Can be used to include or reduce verbose.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="logHandled" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">Sets whether handled exceptions should be logged or not. Can be used to include or reduce verbose.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="logNewException" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">Sets whether new exceptions should be logged or not. Can be used to include or reduce verbose. A new exception is an exception that was thrown while handling a previous exception.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="logContinued" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">Sets whether continued exceptions should be logged or not. Can be used to include or reduce verbose.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="logExhausted" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">Sets whether exhausted exceptions should be logged or not. Can be used to include or reduce verbose.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="logExhaustedMessageHistory" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">Sets whether exhausted exceptions should be logged including message history or not (supports property placeholders). Can be used to include or reduce verbose.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="disableRedelivery" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">Disables redelivery (same as setting maximum redeliveries to 0)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="delayPattern" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">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">Controls whether to allow redelivery while stopping/shutting down a route that uses error handling.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="exchangeFormatterRef" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">Sets the reference of the instance of org.apache.camel.spi.ExchangeFormatter to generate the log message from exchange.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
   </xs:complexType>
 
   <xs:complexType name="routeBuilderDefinition">
     <xs:complexContent>
       <xs:extension base="tns:identifiedType">
         <xs:sequence/>
-        <xs:attribute name="ref" type="xs:string" use="required"/>
+        <xs:attribute name="ref" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Reference to the route builder instance</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
 
   <xs:complexType name="routeContextRefDefinition">
     <xs:sequence/>
-    <xs:attribute name="ref" type="xs:string" use="required"/>
+    <xs:attribute name="ref" type="xs:string" use="required">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">Reference to the routes in the xml dsl</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
   </xs:complexType>
 
   <xs:complexType name="restContextRefDefinition">
     <xs:sequence/>
-    <xs:attribute name="ref" type="xs:string" use="required"/>
+    <xs:attribute name="ref" type="xs:string" use="required">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">Reference to the rest-dsl</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
   </xs:complexType>
 
   <xs:complexType name="threadPoolProfileDefinition">
     <xs:complexContent>
       <xs:extension base="tns:optionalIdentifiedDefinition">
         <xs:sequence>
-          <xs:element name="timeUnit" type="xs:string" minOccurs="0"/>
+          <xs:element minOccurs="0" name="timeUnit" type="xs:string"/>
         </xs:sequence>
-        <xs:attribute name="defaultProfile" type="xs:boolean"/>
-        <xs:attribute name="poolSize" type="xs:string"/>
-        <xs:attribute name="maxPoolSize" type="xs:string"/>
-        <xs:attribute name="keepAliveTime" type="xs:string"/>
-        <xs:attribute name="maxQueueSize" type="xs:string"/>
-        <xs:attribute name="rejectedPolicy" type="tns:threadPoolRejectedPolicy"/>
+        <xs:attribute name="defaultProfile" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Whether this profile is the default thread pool profile</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="poolSize" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Sets the core pool size</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="maxPoolSize" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">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">Sets the keep alive time for idle threads in the pool</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="maxQueueSize" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Sets the maximum number of tasks in the work queue. Use -1 or Integer.MAX_VALUE for an unbounded queue</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="allowCoreThreadTimeOut" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Whether idle core threads is allowed to timeout and therefore can shrink the pool size below the core pool size Is by default false</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="rejectedPolicy" type="tns:threadPoolRejectedPolicy">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Sets the handler for tasks which cannot be executed by the thread pool.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
 
-  <xs:complexType name="optionalIdentifiedDefinition" abstract="true">
+  <xs:complexType abstract="true" name="optionalIdentifiedDefinition">
     <xs:sequence>
-      <xs:element ref="tns:description" minOccurs="0"/>
+      <xs:element minOccurs="0" ref="tns:description"/>
     </xs:sequence>
     <xs:attribute name="customId" type="xs:boolean"/>
-    <xs:attribute name="id" type="xs:string"/>
+    <xs:attribute name="id" type="xs:string">
+      <xs:annotation>
+        <xs:documentation xml:lang="en">Sets the id of this node</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
   </xs:complexType>
 
   <xs:complexType name="descriptionDefinition">
     <xs:simpleContent>
       <xs:extension base="xs:string">
-        <xs:attribute name="lang" type="xs:string"/>
-        <xs:attribute name="layoutX" type="xs:double"/>
-        <xs:attribute name="layoutY" type="xs:double"/>
-        <xs:attribute name="layoutWidth" type="xs:double"/>
-        <xs:attribute name="layoutHeight" type="xs:double"/>
+        <xs:attribute name="lang" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Language such as en for english.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="layoutX" type="xs:double">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Layout position X</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="layoutY" type="xs:double">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Layout position Y</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="layoutWidth" type="xs:double">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Layout width</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="layoutHeight" type="xs:double">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Layout height</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
       </xs:extension>
     </xs:simpleContent>
   </xs:complexType>
@@ -675,7 +1484,7 @@
     </xs:complexContent>
   </xs:complexType>
 
-  <xs:complexType name="abstractCamelThreadPoolFactoryBean" abstract="true">
+  <xs:complexType abstract="true" name="abstractCamelThreadPoolFactoryBean">
     <xs:complexContent>
       <xs:extension base="tns:abstractCamelFactoryBean">
         <xs:sequence/>
@@ -684,6 +1493,7 @@
         <xs:attribute name="keepAliveTime" type="xs:string"/>
         <xs:attribute name="timeUnit" type="xs:string"/>
         <xs:attribute name="maxQueueSize" type="xs:string"/>
+        <xs:attribute name="allowCoreThreadTimeOut" type="xs:string"/>
         <xs:attribute name="rejectedPolicy" type="tns:threadPoolRejectedPolicy"/>
         <xs:attribute name="threadName" type="xs:string" use="required"/>
         <xs:attribute name="scheduled" type="xs:boolean"/>
@@ -699,12 +1509,14 @@
     </xs:complexContent>
   </xs:complexType>
 
-  <xs:complexType name="abstractCamelEndpointFactoryBean" abstract="true">
+  <xs:complexType abstract="true" name="abstractCamelEndpointFactoryBean">
     <xs:complexContent>
       <xs:extension base="tns:abstractCamelFactoryBean">
-        <xs:sequence/>
+        <xs:sequence>
+          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:property"/>
+        </xs:sequence>
         <xs:attribute name="singleton" type="xs:boolean"/>
-        <xs:attribute name="uri" type="xs:string"/>
+        <xs:attribute name="uri" type="xs:string" use="required"/>
         <xs:attribute name="pattern" type="tns:exchangePattern"/>
       </xs:extension>
     </xs:complexContent>
@@ -712,7 +1524,7 @@
 
   <xs:complexType name="dataFormatsDefinition">
     <xs:sequence>
-      <xs:choice minOccurs="0" maxOccurs="unbounded">
+      <xs:choice maxOccurs="unbounded" minOccurs="0">
         <xs:element ref="tns:avro"/>
         <xs:element ref="tns:barcode"/>
         <xs:element ref="tns:base64"/>
@@ -725,6 +1537,7 @@
         <xs:element ref="tns:flatpack"/>
         <xs:element ref="tns:gzip"/>
         <xs:element ref="tns:hl7"/>
+        <xs:element ref="tns:ical"/>
         <xs:element ref="tns:jaxb"/>
         <xs:element ref="tns:jibx"/>
         <xs:element ref="tns:json"/>
@@ -736,6 +1549,9 @@
         <xs:element ref="tns:string"/>
         <xs:element ref="tns:syslog"/>
         <xs:element ref="tns:tidyMarkup"/>
+        <xs:element ref="tns:univocity-csv"/>
+        <xs:element ref="tns:univocity-fixed"/>
+        <xs:element ref="tns:univocity-tsv"/>
         <xs:element ref="tns:xmlBeans"/>
         <xs:element ref="tns:xmljson"/>
         <xs:element ref="tns:xmlrpc"/>
@@ -751,7 +1567,11 @@
     <xs:complexContent>
       <xs:extension base="tns:dataFormat">
         <xs:sequence/>
-        <xs:attribute name="instanceClassName" type="xs:string"/>
+        <xs:attribute name="instanceClassName" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Class name to use for marshal and unmarshalling</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -768,10 +1588,26 @@
     <xs:complexContent>
       <xs:extension base="tns:dataFormat">
         <xs:sequence/>
-        <xs:attribute name="width" type="xs:int"/>
-        <xs:attribute name="height" type="xs:int"/>
-        <xs:attribute name="imageType" type="xs:string"/>
-        <xs:attribute name="barcodeFormat" type="xs:string"/>
+        <xs:attribute name="width" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Width of the barcode</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="height" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Height of the barcode</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="imageType" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Image type of the barcode such as png</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="barcodeFormat" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Barcode format such as QR-Code</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -780,9 +1616,21 @@
     <xs:complexContent>
       <xs:extension base="tns:dataFormat">
         <xs:sequence/>
-        <xs:attribute name="lineLength" type="xs:int"/>
-        <xs:attribute name="lineSeparator" type="xs:string"/>
-        <xs:attribute name="urlSafe" type="xs:boolean"/>
+        <xs:attribute name="lineLength" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">To specific a maximum line length for the encoded data. By default 76 is used.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="lineSeparator" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">The line separators to use. By default \r\n is used.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="urlSafe" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Instead of emitting '' and '/' we emit '-' and '_' respectively. urlSafe is only applied to encode operations. Decoding seamlessly handles both modes. Is by default false.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -791,12 +1639,36 @@
     <xs:complexContent>
       <xs:extension base="tns:dataFormat">
         <xs:sequence/>
-        <xs:attribute name="mapping" type="xs:string" use="required"/>
-        <xs:attribute name="streamName" type="xs:string" use="required"/>
-        <xs:attribute name="ignoreUnidentifiedRecords" type="xs:boolean"/>
-        <xs:attribute name="ignoreUnexpectedRecords" type="xs:boolean"/>
-        <xs:attribute name="ignoreInvalidRecords" type="xs:boolean"/>
-        <xs:attribute name="encoding" type="xs:string"/>
+        <xs:attribute name="mapping" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">The BeanIO mapping file. Is by default loaded from the classpath. You can prefix with file: http: or classpath: to denote from where to load the mapping file.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="streamName" type="xs:string" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">The name of the stream to use.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="ignoreUnidentifiedRecords" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Whether to ignore unidentified records.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="ignoreUnexpectedRecords" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Whether to ignore unexpected records.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="ignoreInvalidRecords" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Whether to ignore invalid records.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="encoding" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">The charset to use. Is by default the JVM platform default charset.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -805,14 +1677,29 @@
     <xs:complexContent>
       <xs:extension base="tns:dataFormat">
         <xs:sequence/>
-        <xs:attribute name="type" type="tns:bindyType" use="required"/>
+        <xs:attribute name="type" type="tns:bindyType" use="required">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Whether to use csv fixed or key value pairs mode.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
         <xs:attribute name="packages">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">The java package names to scan for model classes.</xs:documentation>
+          </xs:annotation>
           <xs:simpleType>
             <xs:list itemType="xs:string"/>
           </xs:simpleType>
         </xs:attribute>
-        <xs:attribute name="classType" type="xs:string"/>
-        <xs:attribute name="locale" type="xs:string"/>
+        <xs:attribute name="classType" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Name of model class to use.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="locale" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">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>
@@ -821,15 +1708,33 @@
     <xs:complexContent>
       <xs:extension base="tns:dataFormat">
         <xs:sequence/>
-        <xs:attribute name="mappingFile" type="xs:string"/>
-        <xs:attribute name="validation" type="xs:boolean"/>
-        <xs:attribute name="encoding" type="xs:string"/>
+        <xs:attribute name="mappingFile" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Path to a Castor mapping file to load from the classpath.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="validation" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Whether validation is turned on or off. Is by default true.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="encoding" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Encoding to use when marshalling an Object to XML. Is by default UTF-8</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
         <xs:attribute name="packages">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Add additional packages to Castor XmlContext</xs:documentation>
+          </xs:annotation>
           <xs:simpleType>
             <xs:list itemType="xs:string"/>
           </xs:simpleType>
         </xs:attribute>
         <xs:attribute name="classes">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Add additional class names to Castor XmlContext</xs:documentation>
+          </xs:annotation>
           <xs:simpleType>
             <xs:list itemType="xs:string"/>
           </xs:simpleType>
@@ -842,15 +1747,51 @@
     <xs:complexContent>
       <xs:extension base="tns:dataFormat">
         <xs:sequence/>
-        <xs:attribute name="algorithm" type="xs:string"/>
-        <xs:attribute name="cryptoProvider" type="xs:string"/>
-        <xs:attribute name="keyRef" type="xs:string"/>
-        <xs:attribute name="initVectorRef" type="xs:string"/>
-        <xs:attribute name="algorithmParameterRef" type="xs:string"/>
-        <xs:attribute name="buffersize" type="xs:int"/>
-        <xs:attribute name="macAlgorithm" type="xs:string"/>
-        <xs:attribute name="shouldAppendHMAC" type="xs:boolean"/>
-        <xs:attribute name="inline" type="xs:boolean"/>
+        <xs:attribute name="algorithm" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">The JCE algorithm name indicating the cryptographic algorithm that will be used. Is by default DES/CBC/PKCS5Padding.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="cryptoProvider" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">The name of the JCE Security Provider that should be used.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="keyRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Refers to the secret key to lookup from the register to use.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="initVectorRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">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">A JCE AlgorithmParameterSpec used to initialize the Cipher. Will lookup the type using the given name as a java.security.spec.AlgorithmParameterSpec type.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="buffersize" type="xs:int">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">The size of the buffer used in the signature process.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="macAlgorithm" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">The JCE algorithm name indicating the Message Authentication algorithm.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="shouldAppendHMAC" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Flag indicating that a Message Authentication Code should be calculated and appended to the encrypted data.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="inline" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Flag indicating that the configured IV should be inlined into the encrypted data stream. Is by default false.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -858,14 +1799,114 @@
   <xs:complexType name="csvDataFormat">
     <xs:complexContent>
       <xs:extension base="tns:dataFormat">
-        <xs:sequence/>
-        <xs:attribute name="autogenColumns" type="xs:boolean"/>
-        <xs:attribute name="delimiter" type="xs:string"/>
-        <xs:attribute name="configRef" type="xs:string"/>
-        <xs:attribute name="strategyRef" type="xs:string"/>
-        <xs:attribute name="skipFirstLine" type="xs:boolean"/>
-        <xs:attribute name="lazyLoad" type="xs:boolean"/>
-        <xs:attribute name="useMaps" type="xs:boolean"/>
+        <xs:sequence>
+          <xs:element maxOccurs="unbounded" minOccurs="0" name="header" type="xs:string"/>
+        </xs:sequence>
+        <xs:attribute name="formatRef" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">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">The name of the format to use the default value is CSVFormat.DEFAULT</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="commentMarkerDisabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Disables the comment marker of the reference format.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="commentMarker" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">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">Sets the delimiter to use. The default value is (comma)</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="escapeDisabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Use for disabling using escape character</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="escape" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Sets the escape character to use</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="headerDisabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Use for disabling headers</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="allowMissingColumnNames" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Whether to allow missing column names.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="ignoreEmptyLines" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Whether to ignore empty lines.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="ignoreSurroundingSpaces" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Whether to ignore surrounding spaces</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="nullStringDisabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Used to disable null strings</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="nullString" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Sets the null string</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="quoteDisabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">Used to disable quotes</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="quote" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">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">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">Sets the record separator (aka new line) which by default is \r\n (CRLF)</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="skipHeaderRecord" type="xs:boolean">
+          <xs:annotation>

[... 3808 lines stripped ...]