You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2026/05/08 07:57:03 UTC

(camel) branch main updated: CAMEL-23352: Add syncOptimisticRetry option to Aggregate EIP (#22769)

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

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


The following commit(s) were added to refs/heads/main by this push:
     new b357f28d3d7b CAMEL-23352: Add syncOptimisticRetry option to Aggregate EIP (#22769)
b357f28d3d7b is described below

commit b357f28d3d7b0bcc27de29d00db5a95ad2edf370
Author: code-massel <ma...@gmail.com>
AuthorDate: Fri May 8 09:56:56 2026 +0200

    CAMEL-23352: Add syncOptimisticRetry option to Aggregate EIP (#22769)
    
    * CAMEL-23352: Add syncOptimisticRetry option to Aggregate EIP
    
    When optimisticLocking is enabled, retries are normally scheduled
    asynchronously on a background ScheduledExecutorService, which switches
    threads and breaks transactional use cases where the aggregation
    repository and inbound message store must commit/rollback within a single
    transaction boundary.
    
    The new syncOptimisticRetry flag (default false) causes the retry delay
    to execute via Thread.sleep on the calling thread instead, preserving
    the transaction context. This restores the Camel 2.x behavior for users
    who need it, without changing the default async behavior.
    
    * CAMEL-23352: Address review feedback for optimistic locking sync retry
    
    Rename syncOptimisticRetry → optimisticLockingSyncRetry for consistency
    with the existing optimisticLocking option naming. Update Javadoc to
    note the flag only takes effect when optimisticLocking() is enabled.
    Add tests for non-zero retry delay and thread interruption scenarios.
    Regenerate catalog metadata.
    
    * CAMEL-23352: Regenerate downstream artifacts (YAML DSL, XML IO, XSD schemas)
    
    * CAMEL-23352: Address second round of review feedback on test class
    
    - Remove public modifiers from class and all test methods (package-private convention)
    - Remove unused callerThread variable in testSyncRetryHappensInSameThread
    - Replace conditional if-assertions with assertNotNull + direct assertions
    - Replace Thread.sleep(100) with Awaitility.await() in testSyncRetryInterrupted
    
    * CAMEL-23352: Add camelYamlDsl-canonical.json with optimisticLockingSyncRetry
    
    File was added to main after branch was created. Regenerated after
    rebasing onto main; includes the new optimisticLockingSyncRetry option.
    
    * CAMEL-23352: Regenerate all artifacts after rebase onto main
    
    * CAMEL-23352: Fix encoding corruption in regenerated artifacts
    
    Restore 16 files where the build corrupted Unicode characters
    (en-dash, smart quotes, ❌, ✅) to replacement sequences due to
    missing UTF-8 encoding during generation.
    
    ---------
    
    Co-authored-by: i570822 <ma...@sap.com>
---
 .../org/apache/camel/catalog/models/aggregate.json |    43 +-
 .../apache/camel/catalog/schemas/camel-spring.xsd  | 36567 ++++++++++---------
 .../apache/camel/catalog/schemas/camel-xml-io.xsd  | 32083 ++++++++--------
 .../META-INF/org/apache/camel/model/aggregate.json |    43 +-
 .../apache/camel/model/AggregateDefinition.java    |    22 +
 .../processor/aggregate/AggregateProcessor.java    |    23 +
 .../org/apache/camel/reifier/AggregateReifier.java |     4 +
 .../AggregateOptimisticLockSyncRetryTest.java      |   210 +
 .../java/org/apache/camel/xml/in/ModelParser.java  |     1 +
 .../java/org/apache/camel/xml/out/ModelWriter.java |     1 +
 .../org/apache/camel/yaml/out/ModelWriter.java     |     1 +
 .../dsl/yaml/deserializers/ModelDeserializers.java |     6 +
 .../resources/schema/camelYamlDsl-canonical.json   |     6 +
 .../generated/resources/schema/camelYamlDsl.json   |     6 +
 14 files changed, 34660 insertions(+), 34356 deletions(-)

diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/aggregate.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/aggregate.json
index a1601644da14..fe6b67926985 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/aggregate.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/aggregate.json
@@ -23,27 +23,28 @@
     "optimisticLockRetryPolicy": { "index": 8, "kind": "element", "displayName": "Optimistic Lock Retry Policy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.model.OptimisticLockRetryPolicyDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "Allows to configure retry settings when using optimistic locking." },
     "parallelProcessing": { "index": 9, "kind": "attribute", "displayName": "Parallel Processing", "group": "common", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "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 h [...]
     "optimisticLocking": { "index": 10, "kind": "attribute", "displayName": "Optimistic Locking", "group": "common", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Turns on using optimistic locking, which requires the aggregationRepository being used, is supporting this by implementing org.apache.camel.spi.OptimisticLockingAggregationRepository ." },
-    "executorService": { "index": 11, "kind": "attribute", "displayName": "Executor Service", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.concurrent.ExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "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 exchange [...]
-    "timeoutCheckerExecutorService": { "index": 12, "kind": "attribute", "displayName": "Timeout Checker Executor Service", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "If using either of the completionTimeout, completionTimeoutExpression, or completionInterval options a background thread is created to check for the compl [...]
-    "aggregateController": { "index": 13, "kind": "attribute", "displayName": "Aggregate Controller", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.processor.aggregate.AggregateController", "deprecated": false, "autowired": false, "secret": false, "description": "To use a org.apache.camel.processor.aggregate.AggregateController to allow external sources to control this aggregator." },
-    "aggregationRepository": { "index": 14, "kind": "attribute", "displayName": "Aggregation Repository", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.spi.AggregationRepository", "deprecated": false, "autowired": false, "secret": false, "description": "The AggregationRepository to use. Sets the custom aggregate repository to use. Will by default use org.apache.camel.processor.aggregate.MemoryAggregationRepository" },
-    "aggregationStrategy": { "index": 15, "kind": "attribute", "displayName": "Aggregation Strategy", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.AggregationStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "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 w [...]
-    "aggregationStrategyMethodName": { "index": 16, "kind": "attribute", "displayName": "Aggregation Strategy Method Name", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "This option can be used to explicit declare the method name to use, when using beans as the AggregationStrategy." },
-    "aggregationStrategyMethodAllowNull": { "index": 17, "kind": "attribute", "displayName": "Aggregation Strategy Method Allow Null", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "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 th [...]
-    "completionSize": { "index": 18, "kind": "attribute", "displayName": "Completion Size", "group": "common", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "description": "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  [...]
-    "completionInterval": { "index": 19, "kind": "attribute", "displayName": "Completion Interval", "group": "common", "required": false, "type": "duration", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "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 o [...]
-    "completionTimeout": { "index": 20, "kind": "attribute", "displayName": "Completion Timeout", "group": "common", "required": false, "type": "duration", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "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  [...]
-    "completionTimeoutCheckerInterval": { "index": 21, "kind": "attribute", "displayName": "Completion Timeout Checker Interval", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1000", "description": "Interval in millis that is used by the background task that checks for timeouts ( org.apache.camel.TimeoutMap ). By default the timeout checker runs ev [...]
-    "completionFromBatchConsumer": { "index": 22, "kind": "attribute", "displayName": "Completion From Batch Consumer", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "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.BatchC [...]
-    "completionOnNewCorrelationGroup": { "index": 23, "kind": "attribute", "displayName": "Completion On New Correlation Group", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enables completion on all previous groups when a new incoming correlation group. This can for example be used to complete groups with same correlation ke [...]
-    "eagerCheckCompletion": { "index": 24, "kind": "attribute", "displayName": "Eager Check Completion", "group": "common", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "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 E [...]
-    "ignoreInvalidCorrelationKeys": { "index": 25, "kind": "attribute", "displayName": "Ignore Invalid Correlation Keys", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If a correlation key cannot be successfully evaluated it will be ignored by logging a DEBUG and then just ignore the incoming Exchange." },
-    "closeCorrelationKeyOnCompletion": { "index": 26, "kind": "attribute", "displayName": "Close Correlation Key On Completion", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "description": "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 [...]
-    "discardOnCompletionTimeout": { "index": 27, "kind": "attribute", "displayName": "Discard On Completion Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Discards the aggregated message on completion timeout. This means on timeout the aggregated message is dropped and not sent out of the aggregator." },
-    "discardOnAggregationFailure": { "index": 28, "kind": "attribute", "displayName": "Discard On Aggregation Failure", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Discards the aggregated message when aggregation failed (an exception was thrown from AggregationStrategy . This means the partly aggregated message is dropped an [...]
-    "forceCompletionOnStop": { "index": 29, "kind": "attribute", "displayName": "Force Completion On Stop", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Indicates to complete all current aggregated exchanges when the context is stopped" },
-    "completeAllOnStop": { "index": 30, "kind": "attribute", "displayName": "Complete All On Stop", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "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 ar [...]
-    "outputs": { "index": 31, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "ma [...]
+    "optimisticLockingSyncRetry": { "index": 11, "kind": "attribute", "displayName": "Optimistic Locking Sync Retry", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "When optimistic locking is enabled, retries happen synchronously in the same thread instead of being scheduled on a background thread. This preserves transaction co [...]
+    "executorService": { "index": 12, "kind": "attribute", "displayName": "Executor Service", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.concurrent.ExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "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 exchange [...]
+    "timeoutCheckerExecutorService": { "index": 13, "kind": "attribute", "displayName": "Timeout Checker Executor Service", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "If using either of the completionTimeout, completionTimeoutExpression, or completionInterval options a background thread is created to check for the compl [...]
+    "aggregateController": { "index": 14, "kind": "attribute", "displayName": "Aggregate Controller", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.processor.aggregate.AggregateController", "deprecated": false, "autowired": false, "secret": false, "description": "To use a org.apache.camel.processor.aggregate.AggregateController to allow external sources to control this aggregator." },
+    "aggregationRepository": { "index": 15, "kind": "attribute", "displayName": "Aggregation Repository", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.spi.AggregationRepository", "deprecated": false, "autowired": false, "secret": false, "description": "The AggregationRepository to use. Sets the custom aggregate repository to use. Will by default use org.apache.camel.processor.aggregate.MemoryAggregationRepository" },
+    "aggregationStrategy": { "index": 16, "kind": "attribute", "displayName": "Aggregation Strategy", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.AggregationStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "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 w [...]
+    "aggregationStrategyMethodName": { "index": 17, "kind": "attribute", "displayName": "Aggregation Strategy Method Name", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "This option can be used to explicit declare the method name to use, when using beans as the AggregationStrategy." },
+    "aggregationStrategyMethodAllowNull": { "index": 18, "kind": "attribute", "displayName": "Aggregation Strategy Method Allow Null", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "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 th [...]
+    "completionSize": { "index": 19, "kind": "attribute", "displayName": "Completion Size", "group": "common", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "description": "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  [...]
+    "completionInterval": { "index": 20, "kind": "attribute", "displayName": "Completion Interval", "group": "common", "required": false, "type": "duration", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "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 o [...]
+    "completionTimeout": { "index": 21, "kind": "attribute", "displayName": "Completion Timeout", "group": "common", "required": false, "type": "duration", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "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  [...]
+    "completionTimeoutCheckerInterval": { "index": 22, "kind": "attribute", "displayName": "Completion Timeout Checker Interval", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1000", "description": "Interval in millis that is used by the background task that checks for timeouts ( org.apache.camel.TimeoutMap ). By default the timeout checker runs ev [...]
+    "completionFromBatchConsumer": { "index": 23, "kind": "attribute", "displayName": "Completion From Batch Consumer", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "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.BatchC [...]
+    "completionOnNewCorrelationGroup": { "index": 24, "kind": "attribute", "displayName": "Completion On New Correlation Group", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enables completion on all previous groups when a new incoming correlation group. This can for example be used to complete groups with same correlation ke [...]
+    "eagerCheckCompletion": { "index": 25, "kind": "attribute", "displayName": "Eager Check Completion", "group": "common", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "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 E [...]
+    "ignoreInvalidCorrelationKeys": { "index": 26, "kind": "attribute", "displayName": "Ignore Invalid Correlation Keys", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If a correlation key cannot be successfully evaluated it will be ignored by logging a DEBUG and then just ignore the incoming Exchange." },
+    "closeCorrelationKeyOnCompletion": { "index": 27, "kind": "attribute", "displayName": "Close Correlation Key On Completion", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "description": "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 [...]
+    "discardOnCompletionTimeout": { "index": 28, "kind": "attribute", "displayName": "Discard On Completion Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Discards the aggregated message on completion timeout. This means on timeout the aggregated message is dropped and not sent out of the aggregator." },
+    "discardOnAggregationFailure": { "index": 29, "kind": "attribute", "displayName": "Discard On Aggregation Failure", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Discards the aggregated message when aggregation failed (an exception was thrown from AggregationStrategy . This means the partly aggregated message is dropped an [...]
+    "forceCompletionOnStop": { "index": 30, "kind": "attribute", "displayName": "Force Completion On Stop", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Indicates to complete all current aggregated exchanges when the context is stopped" },
+    "completeAllOnStop": { "index": 31, "kind": "attribute", "displayName": "Complete All On Stop", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "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 ar [...]
+    "outputs": { "index": 32, "kind": "element", "displayName": "Outputs", "group": "common", "required": true, "type": "array", "javaType": "java.util.List", "oneOf": [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "ma [...]
   },
   "exchangeProperties": {
     "CamelAggregatedSize": { "index": 0, "kind": "exchangeProperty", "displayName": "Aggregated Size", "label": "producer", "required": false, "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "important": true, "description": "Number of exchanges that was grouped together." },
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
index 63be8066db8d..09605321373c 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
@@ -1,18421 +1,18432 @@
-<?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="batchConfig" 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="beanFactory" type="tns:beanFactoryDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Define custom beans that can be used in your Camel routes and in general.
-]]>
-      </xs:documentation>
-    </xs:annotation>
-  </xs:element>
-  <xs:element name="beanPostProcessor" type="tns:camelBeanPostProcessor">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Spring specific DefaultCamelBeanPostProcessor which uses Spring BeanPostProcessor to post process beans.
-]]>
-      </xs:documentation>
-    </xs:annotation>
-  </xs:element>
-  <xs:element name="beanio" type="tns:beanioDataFormat">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Marshal and unmarshal Java beans to and from flat files (such as CSV, delimited, or fixed length formats).
-]]>
-      </xs:documentation>
-    </xs:annotation>
-  </xs:element>
-  <xs:element name="beans" type="tns:beansDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Container for beans, routes, and more. Important this is only supported when using XML DSL with camel-xml-io-dsl. This
-is NOT for the classic old Spring XML DSL used by Camel 1.x/2.x.
-]]>
-      </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="camel" type="tns:applicationDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Root tag for Camel application, that can contain beans, routes, and more. Important this is only supported when using
-XML DSL with camel-xml-io-dsl. This is NOT for the classic old Spring XML DSL used by Camel 1.x/2.x.
-]]>
-      </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="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="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="convertHeaderTo" type="tns:convertHeaderDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Converts the message header to another type
-]]>
-      </xs:documentation>
-    </xs:annotation>
-  </xs:element>
-  <xs:element name="convertVariableTo" type="tns:convertVariableDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Converts the variable 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[
-Deprecated: 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="customTransformer" type="tns:customTransformerDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-To use a custom transformer on a route level.
-]]>
-      </xs:documentation>
-    </xs:annotation>
-  </xs:element>
-  <xs:element name="customValidator" type="tns:customValidatorDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-To use a custom validator on the route level.
-]]>
-      </xs:documentation>
-    </xs:annotation>
-  </xs:element>
-  <xs:element name="dataFormatTransformer" type="tns:dataFormatTransformerDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Represents a org.apache.camel.processor.transformer.DataFormatTransformer which leverages
-org.apache.camel.spi.DataFormat to perform transformation. One of the DataFormat 'ref' or DataFormat 'type' needs to be
-specified.
-]]>
-      </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="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="dfdl" type="tns:dfdlDataFormat">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Transforms fixed format data such as EDI message from/to XML using a Data Format Description Language (DFDL).
-]]>
-      </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="endpointTransformer" type="tns:endpointTransformerDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-To use a Camel endpoint to perform transformation on the route level.
-]]>
-      </xs:documentation>
-    </xs:annotation>
-  </xs:element>
-  <xs:element name="endpointValidator" type="tns:endpointValidatorDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-To use a Camel endpoint to perform validation on the route level.
-]]>
-      </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[
-Camel error handling.
-]]>
-      </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="failoverLoadBalancer" 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="fory" type="tns:foryDataFormat">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Serialize and deserialize messages using Apache Fory
-]]>
-      </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="groovyJson" type="tns:groovyJSonDataFormat">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Transform between JSon and java.util.Map or java.util.List objects.
-]]>
-      </xs:documentation>
-    </xs:annotation>
-  </xs:element>
-  <xs:element name="groovyXml" type="tns:groovyXmlDataFormat">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Transform between XML and Groovy Node (Map structure) objects.
-]]>
-      </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="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="iso8583" type="tns:iso8583DataFormat">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Create, edit and read ISO-8583 messages.
-]]>
-      </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="java" type="tns:javaExpression">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Evaluates a Java (Java compiled once at runtime) expression.
-]]>
-      </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[
-Deprecated: 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. By default, calling kamelets should be done as endpoints with the kamelet
-component, such as to(kamelet:mykamelet). When a Kamelet is designed for a special use-case such as aggregating
-messages, and returning a response message only when a group of aggregated messages is completed. In other words,
-kamelet does not return a response message for every incoming message. In special situations like these, then you must
-use this Kamelet EIP instead of using the kamelet component.
-]]>
-      </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="langChain4jCharacterTokenizer" type="tns:langChain4JCharacterTokenizerDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Camel AI: Tokenizer for splitting by character.
-]]>
-      </xs:documentation>
-    </xs:annotation>
-  </xs:element>
-  <xs:element name="langChain4jLineTokenizer" type="tns:langChain4JLineTokenizerDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Camel AI: Tokenizer for splitting line by line.
-]]>
-      </xs:documentation>
-    </xs:annotation>
-  </xs:element>
-  <xs:element name="langChain4jParagraphTokenizer" type="tns:langChain4JParagraphTokenizerDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Camel AI: Tokenizer for splitting by paragraphs.
-]]>
-      </xs:documentation>
-    </xs:annotation>
-  </xs:element>
-  <xs:element name="langChain4jSentenceTokenizer" type="tns:langChain4JSentenceTokenizerDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Camel AI: Tokenizer for splitting by sentences.
-]]>
-      </xs:documentation>
-    </xs:annotation>
-  </xs:element>
-  <xs:element name="langChain4jWordTokenizer" type="tns:langChain4JWordTokenizerDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Camel AI: Tokenizer for splitting by word.
-]]>
-      </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="loadTransformer" type="tns:loadTransformerDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-To load custom transformers from classpath scanning to be used for route level transformations.
-]]>
-      </xs:documentation>
-    </xs:annotation>
-  </xs:element>
-  <xs:element name="log" type="tns:logDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Used for printing custom messages 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="ocsf" type="tns:ocsfDataFormat">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Marshal and unmarshal OCSF (Open Cybersecurity Schema Framework) security events to/from JSON.
-]]>
-      </xs:documentation>
-    </xs:annotation>
-  </xs:element>
-  <xs:element name="ognl" type="tns:ognlExpression">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Deprecated: 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="onWhen" type="tns:onWhenDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-To use a predicate to determine when to trigger this.
-]]>
-      </xs:documentation>
-    </xs:annotation>
-  </xs:element>
-  <xs:element name="openApi" type="tns:openApiDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-To use OpenApi as contract-first with Camel Rest DSL.
-]]>
-      </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="parquetAvro" type="tns:parquetAvroDataFormat">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Parquet Avro serialization and de-serialization.
-]]>
-      </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="poll" type="tns:pollDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Polls a message from a static endpoint
-]]>
-      </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="pqc" type="tns:pqcDataFormat">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Encrypt and decrypt messages using Post-Quantum Cryptography Key Encapsulation Mechanisms (KEM).
-]]>
-      </xs:documentation>
-    </xs:annotation>
-  </xs:element>
-  <xs:element name="predicateValidator" type="tns:predicateValidatorDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-To use a predicate to perform validation on the route level.
-]]>
-      </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="randomLoadBalancer" type="tns:randomLoadBalancerDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-The destination endpoints are selected randomly.
-]]>
-      </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="removeVariable" type="tns:removeVariableDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Removes a named variable
-]]>
-      </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="roundRobinLoadBalancer" 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="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="setHeaders" type="tns:setHeadersDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Allows setting multiple headers on the message at the same time.
-]]>
-      </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="setVariable" type="tns:setVariableDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Sets the value of a variable
-]]>
-      </xs:documentation>
-    </xs:annotation>
-  </xs:element>
-  <xs:element name="setVariables" type="tns:setVariablesDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Allows setting multiple variables at the same time.
-]]>
-      </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="smooks" type="tns:smooksDataFormat">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Transform and bind XML as well as non-XML data, including EDI, CSV, JSON, and YAML using Smooks.
-]]>
-      </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="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="stickyLoadBalancer" 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="streamCaching" type="tns:camelStreamCachingStrategyDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Stream caching configuration.
-]]>
-      </xs:documentation>
-    </xs:annotation>
-  </xs:element>
-  <xs:element name="streamConfig" 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="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="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="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="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="tokenizer" type="tns:tokenizerDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Represents a Camel tokenizer for AI.
-]]>
-      </xs:documentation>
-    </xs:annotation>
-  </xs:element>
-  <xs:element name="topicLoadBalancer" 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="transformDataType" type="tns:transformDataTypeDefinition">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Transforms the message body based on known data type transformers.
-]]>
-      </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="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="variable" type="tns:variableExpression">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Gets a variable
-]]>
-      </xs:documentation>
-    </xs:annotation>
-  </xs:element>
-  <xs:element name="wasm" type="tns:wasmExpression">
-    <xs:annotation>
-      <xs:documentation xml:lang="en">
-<![CDATA[
-Call a wasm (web assembly) function.
-]]>
-      </xs:documentation>
-    </xs:annotation>
-  </xs:element>
-  <xs:element name="weightedLoadBalancer" 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: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>
+<?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="batchConfig" 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="beanFactory" type="tns:beanFactoryDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Define custom beans that can be used in your Camel routes and in general.
+]]>
+      </xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:element name="beanPostProcessor" type="tns:camelBeanPostProcessor">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Spring specific DefaultCamelBeanPostProcessor which uses Spring BeanPostProcessor to post process beans.
+]]>
+      </xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:element name="beanio" type="tns:beanioDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Marshal and unmarshal Java beans to and from flat files (such as CSV, delimited, or fixed length formats).
+]]>
+      </xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:element name="beans" type="tns:beansDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Container for beans, routes, and more. Important this is only supported when using XML DSL with camel-xml-io-dsl. This
+is NOT for the classic old Spring XML DSL used by Camel 1.x/2.x.
+]]>
+      </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="camel" type="tns:applicationDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Root tag for Camel application, that can contain beans, routes, and more. Important this is only supported when using
+XML DSL with camel-xml-io-dsl. This is NOT for the classic old Spring XML DSL used by Camel 1.x/2.x.
+]]>
+      </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="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="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="convertHeaderTo" type="tns:convertHeaderDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Converts the message header to another type
+]]>
+      </xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:element name="convertVariableTo" type="tns:convertVariableDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Converts the variable 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[
+Deprecated: 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="customTransformer" type="tns:customTransformerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+To use a custom transformer on a route level.
+]]>
+      </xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:element name="customValidator" type="tns:customValidatorDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+To use a custom validator on the route level.
+]]>
+      </xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:element name="dataFormatTransformer" type="tns:dataFormatTransformerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Represents a org.apache.camel.processor.transformer.DataFormatTransformer which leverages
+org.apache.camel.spi.DataFormat to perform transformation. One of the DataFormat 'ref' or DataFormat 'type' needs to be
+specified.
+]]>
+      </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="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="dfdl" type="tns:dfdlDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Transforms fixed format data such as EDI message from/to XML using a Data Format Description Language (DFDL).
+]]>
+      </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="endpointTransformer" type="tns:endpointTransformerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+To use a Camel endpoint to perform transformation on the route level.
+]]>
+      </xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:element name="endpointValidator" type="tns:endpointValidatorDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+To use a Camel endpoint to perform validation on the route level.
+]]>
+      </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[
+Camel error handling.
+]]>
+      </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="failoverLoadBalancer" 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="fory" type="tns:foryDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Serialize and deserialize messages using Apache Fory
+]]>
+      </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="groovyJson" type="tns:groovyJSonDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Transform between JSon and java.util.Map or java.util.List objects.
+]]>
+      </xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:element name="groovyXml" type="tns:groovyXmlDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Transform between XML and Groovy Node (Map structure) objects.
+]]>
+      </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="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="iso8583" type="tns:iso8583DataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Create, edit and read ISO-8583 messages.
+]]>
+      </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="java" type="tns:javaExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Evaluates a Java (Java compiled once at runtime) expression.
+]]>
+      </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[
+Deprecated: 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. By default, calling kamelets should be done as endpoints with the kamelet
+component, such as to(kamelet:mykamelet). When a Kamelet is designed for a special use-case such as aggregating
+messages, and returning a response message only when a group of aggregated messages is completed. In other words,
+kamelet does not return a response message for every incoming message. In special situations like these, then you must
+use this Kamelet EIP instead of using the kamelet component.
+]]>
+      </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="langChain4jCharacterTokenizer" type="tns:langChain4JCharacterTokenizerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Camel AI: Tokenizer for splitting by character.
+]]>
+      </xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:element name="langChain4jLineTokenizer" type="tns:langChain4JLineTokenizerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Camel AI: Tokenizer for splitting line by line.
+]]>
+      </xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:element name="langChain4jParagraphTokenizer" type="tns:langChain4JParagraphTokenizerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Camel AI: Tokenizer for splitting by paragraphs.
+]]>
+      </xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:element name="langChain4jSentenceTokenizer" type="tns:langChain4JSentenceTokenizerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Camel AI: Tokenizer for splitting by sentences.
+]]>
+      </xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:element name="langChain4jWordTokenizer" type="tns:langChain4JWordTokenizerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Camel AI: Tokenizer for splitting by word.
+]]>
+      </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="loadTransformer" type="tns:loadTransformerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+To load custom transformers from classpath scanning to be used for route level transformations.
+]]>
+      </xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:element name="log" type="tns:logDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Used for printing custom messages 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="ocsf" type="tns:ocsfDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Marshal and unmarshal OCSF (Open Cybersecurity Schema Framework) security events to/from JSON.
+]]>
+      </xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:element name="ognl" type="tns:ognlExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Deprecated: 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="onWhen" type="tns:onWhenDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+To use a predicate to determine when to trigger this.
+]]>
+      </xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:element name="openApi" type="tns:openApiDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+To use OpenApi as contract-first with Camel Rest DSL.
+]]>
+      </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="parquetAvro" type="tns:parquetAvroDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Parquet Avro serialization and de-serialization.
+]]>
+      </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="poll" type="tns:pollDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Polls a message from a static endpoint
+]]>
+      </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="pqc" type="tns:pqcDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Encrypt and decrypt messages using Post-Quantum Cryptography Key Encapsulation Mechanisms (KEM).
+]]>
+      </xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:element name="predicateValidator" type="tns:predicateValidatorDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+To use a predicate to perform validation on the route level.
+]]>
+      </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="randomLoadBalancer" type="tns:randomLoadBalancerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+The destination endpoints are selected randomly.
+]]>
+      </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="removeVariable" type="tns:removeVariableDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Removes a named variable
+]]>
+      </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="roundRobinLoadBalancer" 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="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="setHeaders" type="tns:setHeadersDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Allows setting multiple headers on the message at the same time.
+]]>
+      </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="setVariable" type="tns:setVariableDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Sets the value of a variable
+]]>
+      </xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:element name="setVariables" type="tns:setVariablesDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Allows setting multiple variables at the same time.
+]]>
+      </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="smooks" type="tns:smooksDataFormat">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Transform and bind XML as well as non-XML data, including EDI, CSV, JSON, and YAML using Smooks.
+]]>
+      </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="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="stickyLoadBalancer" 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="streamCaching" type="tns:camelStreamCachingStrategyDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Stream caching configuration.
+]]>
+      </xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:element name="streamConfig" 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="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="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="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="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="tokenizer" type="tns:tokenizerDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Represents a Camel tokenizer for AI.
+]]>
+      </xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:element name="topicLoadBalancer" 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="transformDataType" type="tns:transformDataTypeDefinition">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Transforms the message body based on known data type transformers.
+]]>
+      </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="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="variable" type="tns:variableExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Gets a variable
+]]>
+      </xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:element name="wasm" type="tns:wasmExpression">
+    <xs:annotation>
+      <xs:documentation xml:lang="en">
+<![CDATA[
+Call a wasm (web assembly) function.
+]]>
+      </xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:element name="weightedLoadBalancer" 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: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>
+<![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[
-The name of the property.
-]]>
-        </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="value" type="xs:string" use="required">
-      <xs:annotation>
+<![CDATA[
+The name of the property.
+]]>
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="value" type="xs:string" use="required">
+      <xs:annotation>
         <xs:documentation xml:lang="en">
-<![CDATA[
-The 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:attribute name="updateRouteEnabled" type="xs:string">
-          <xs:annotation>
-            <xs:documentation xml:lang="en">
-<![CDATA[
-Sets whether updating routes via JMX is allowed (is default disabled). Default value: false
-]]>
-            </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 start up and then, the controller takes care of
-starting the routes in a safe manner. This can be used when you want to start up Camel despite a route may otherwise
-fail fast during startup and cause Camel to fail to start up 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="unhealthyOnRestarting" type="xs:string">
-          <xs:annotation>
-            <xs:documentation xml:lang="en">
-<![CDATA[
-Whether to mark the route as unhealthy (down) when the route failed to initially start, and is being controlled for
-restarting (backoff). 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="allowClasses" type="xs:string">
-          <xs:annotation>
-            <xs:documentation xml:lang="en">
-<![CDATA[
-To filter stream caching of a given set of allowed/denied classes. By default, all classes that are java.io.InputStream
-is allowed. Multiple class names can be separated by comma.
-]]>
-            </xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="denyClasses" type="xs:string">
-          <xs:annotation>
-            <xs:documentation xml:lang="en">
-<![CDATA[
-To filter stream caching of a given set of allowed/denied classes. By default, all classes that are java.io.InputStream
-is allowed. Multiple class names can be separated by comma.
-]]>
-            </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: 16384
-]]>
-            </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="resource" type="xs:string">
-          <xs:annotation>
-            <xs:documentation xml:lang="en">
-<![CDATA[
-The keystore to load. The keystore is by default loaded from classpath. If you must load from file system, then use
-file: as prefix. file:nameOfFile (to refer to the file system) classpath:nameOfFile (to refer to the classpath; default)
-http:uri (to load the resource using HTTP) ref:nameOfBean (to lookup an existing KeyStore instance from the registry,
-for example for testing and development).
-]]>
-            </xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="password" type="xs:string">
-          <xs:annotation>
-            <xs:documentation xml:lang="en">
-<![CDATA[
-The password for reading/opening/verifying the key store.
-]]>
-            </xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="type" type="xs:string">
-          <xs:annotation>
-            <xs:documentation xml:lang="en">
-<![CDATA[
-The type of the key store to create and load. See
-https://docs.oracle.com/en/java/javase/17/docs/specs/security/standard-names.html.
-]]>
-            </xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="provider" type="xs:string">
-          <xs:annotation>
-            <xs:documentation xml:lang="en">
-<![CDATA[
-The provider identifier for instantiating the key store.
-]]>
-            </xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="keyStore" type="xs:string">
-          <xs:annotation>
-            <xs:documentation xml:lang="en">
-<![CDATA[
-To lookup an existing KeyStore instance from the registry, for example for testing and development.
-]]>
-            </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
-https://docs.oracle.com/en/java/javase/17/docs/specs/security/standard-names.html.
-]]>
-            </xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="provider" type="xs:string">
-          <xs:annotation>
-            <xs:documentation xml:lang="en">
-<![CDATA[
-The 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="namedGroupsParameters">
-    <xs:sequence>
-      <xs:element maxOccurs="unbounded" minOccurs="0" name="namedGroup" 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="signatureSchemesParameters">
-    <xs:sequence>
-      <xs:element maxOccurs="unbounded" minOccurs="0" name="signatureScheme" 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[
-Disables this EIP from the route. Default value: false
-]]>
-            </xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType abstract="true" name="optionalIdentifiedDefinition">
-    <xs:sequence/>
-    <xs:attribute name="customId" type="xs:boolean"/>
-    <xs:attribute name="description" type="xs:string">
-      <xs:annotation>
+<![CDATA[
+The 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:attribute name="updateRouteEnabled" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">
+<![CDATA[
+Sets whether updating routes via JMX is allowed (is default disabled). Default value: false
+]]>
+            </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 start up and then, the controller takes care of
+starting the routes in a safe manner. This can be used when you want to start up Camel despite a route may otherwise
+fail fast during startup and cause Camel to fail to start up 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="unhealthyOnRestarting" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">
+<![CDATA[
+Whether to mark the route as unhealthy (down) when the route failed to initially start, and is being controlled for
+restarting (backoff). 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="allowClasses" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">
+<![CDATA[
+To filter stream caching of a given set of allowed/denied classes. By default, all classes that are java.io.InputStream
+is allowed. Multiple class names can be separated by comma.
+]]>
+            </xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="denyClasses" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">
+<![CDATA[
+To filter stream caching of a given set of allowed/denied classes. By default, all classes that are java.io.InputStream
+is allowed. Multiple class names can be separated by comma.
+]]>
+            </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: 16384
+]]>
+            </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="resource" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">
+<![CDATA[
+The keystore to load. The keystore is by default loaded from classpath. If you must load from file system, then use
+file: as prefix. file:nameOfFile (to refer to the file system) classpath:nameOfFile (to refer to the classpath; default)
+http:uri (to load the resource using HTTP) ref:nameOfBean (to lookup an existing KeyStore instance from the registry,
+for example for testing and development).
+]]>
+            </xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="password" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">
+<![CDATA[
+The password for reading/opening/verifying the key store.
+]]>
+            </xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="type" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">
+<![CDATA[
+The type of the key store to create and load. See
+https://docs.oracle.com/en/java/javase/17/docs/specs/security/standard-names.html.
+]]>
+            </xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="provider" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">
+<![CDATA[
+The provider identifier for instantiating the key store.
+]]>
+            </xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="keyStore" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">
+<![CDATA[
+To lookup an existing KeyStore instance from the registry, for example for testing and development.
+]]>
+            </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
+https://docs.oracle.com/en/java/javase/17/docs/specs/security/standard-names.html.
+]]>
+            </xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="provider" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">
+<![CDATA[
+The 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="namedGroupsParameters">
+    <xs:sequence>
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="namedGroup" 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="signatureSchemesParameters">
+    <xs:sequence>
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="signatureScheme" 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[
+Disables this EIP from the route. Default value: false
+]]>
+            </xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:complexType abstract="true" name="optionalIdentifiedDefinition">
+    <xs:sequence/>
+    <xs:attribute name="customId" type="xs:boolean"/>
+    <xs:attribute name="description" type="xs:string">
+      <xs:annotation>
         <xs:documentation xml:lang="en">
-<![CDATA[
-Sets the description of this node.
-]]>
-        </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="id" type="xs:string">
-      <xs:annotation>
+<![CDATA[
+Sets the description of this node.
+]]>
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <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:attribute name="note" type="xs:string">
-      <xs:annotation>
+<![CDATA[
+Sets the id of this node.
+]]>
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="note" type="xs:string">
+      <xs:annotation>
         <xs:documentation xml:lang="en">
-<![CDATA[
-Sets the note of this node.
-]]>
-        </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-  </xs:complexType>
-  <xs:complexType name="aggregateDefinition">
-    <xs:complexContent>
-      <xs:extension base="tns:output">
-        <xs:sequence>
-          <xs:element name="correlationExpression" type="tns:expressionSubElementDefinition">
-            <xs:annotation>
+<![CDATA[
+Sets the note of this node.
+]]>
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+  <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>
+<![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>
+<![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>
+<![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:choice"/>
-            <xs:element ref="tns:circuitBreaker"/>
-            <xs:element ref="tns:claimCheck"/>
-            <xs:element ref="tns:convertBodyTo"/>
-            <xs:element ref="tns:convertHeaderTo"/>
-            <xs:element ref="tns:convertVariableTo"/>
-            <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:pausable"/>
-            <xs:element ref="tns:pipeline"/>
-            <xs:element ref="tns:policy"/>
-            <xs:element ref="tns:poll"/>
-            <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:removeVariable"/>
-            <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:setHeaders"/>
-            <xs:element ref="tns:setProperty"/>
-            <xs:element ref="tns:setVariable"/>
-            <xs:element ref="tns:setVariables"/>
-            <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:tokenizer"/>
-            <xs:element ref="tns:transacted"/>
-            <xs:element ref="tns:transformDataType"/>
-            <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: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. Important: When using this option, you should also enable eagerCheckCompletion() to ensure
-the aggregator checks for batch completion on each incoming exchange. Without eager checking, the batch completion
-signal may not be properly detected. 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:java"/>
-      <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:variable"/>
-      <xs:element ref="tns:wasm"/>
-      <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 source code to remove leading and trailing whitespaces and line breaks. For example when using DSLs
-where the source will span across multiple lines and there may be additional line breaks at both the beginning and end.
-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>
+<![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:choice"/>
+            <xs:element ref="tns:circuitBreaker"/>
+            <xs:element ref="tns:claimCheck"/>
+            <xs:element ref="tns:convertBodyTo"/>
+            <xs:element ref="tns:convertHeaderTo"/>
+            <xs:element ref="tns:convertVariableTo"/>
+            <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:pausable"/>
+            <xs:element ref="tns:pipeline"/>
+            <xs:element ref="tns:policy"/>
+            <xs:element ref="tns:poll"/>
+            <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:removeVariable"/>
+            <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:setHeaders"/>
+            <xs:element ref="tns:setProperty"/>
+            <xs:element ref="tns:setVariable"/>
+            <xs:element ref="tns:setVariables"/>
+            <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:tokenizer"/>
+            <xs:element ref="tns:transacted"/>
+            <xs:element ref="tns:transformDataType"/>
+            <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: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="optimisticLockingSyncRetry" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">
+<![CDATA[
+When optimistic locking is enabled, retries happen synchronously in the same thread instead of being scheduled on a
+background thread. This preserves transaction context for repositories that require single-thread transactional
+guarantees. Only takes effect when optimisticLocking() is also enabled. 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. Important: When using this option, you should also enable eagerCheckCompletion() to ensure
+the aggregator checks for batch completion on each incoming exchange. Without eager checking, the batch completion
+signal may not be properly detected. 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:java"/>
+      <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:variable"/>
+      <xs:element ref="tns:wasm"/>
+      <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 source code to remove leading and trailing whitespaces and line breaks. For example when using DSLs
+where the source will span across multiple lines and there may be additional line breaks at both the beginning and end.
+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>
+<![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>
+<![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>
+<![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>
+<![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 existing 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 name="beanFactoryDefinition">
-    <xs:sequence>
-      <xs:element minOccurs="0" name="constructors" type="tns:beanConstructorsDefinition">
-        <xs:annotation>
+<![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 existing 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 name="beanFactoryDefinition">
+    <xs:sequence>
+      <xs:element minOccurs="0" name="constructors" type="tns:beanConstructorsDefinition">
+        <xs:annotation>
           <xs:documentation xml:lang="en">
-<![CDATA[
-Optional constructor arguments for creating the bean. Arguments correspond to specific index of the constructor argument
-list, starting from zero.
-]]>
-          </xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:element minOccurs="0" name="properties" type="tns:beanPropertiesDefinition">
-        <xs:annotation>
+<![CDATA[
+Optional constructor arguments for creating the bean. Arguments correspond to specific index of the constructor argument
+list, starting from zero.
+]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="properties" type="tns:beanPropertiesDefinition">
+        <xs:annotation>
           <xs:documentation xml:lang="en">
-<![CDATA[
-Optional properties to set on the created bean.
-]]>
-          </xs:documentation>
-        </xs:annotation>
-      </xs:element>
-      <xs:element minOccurs="0" name="script" type="xs:string">
-        <xs:annotation>
+<![CDATA[
+Optional properties to set on the created bean.
+]]>
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <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>
+<![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[
-The name of the bean (bean id).
-]]>
-        </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="type" type="xs:string" use="required">
-      <xs:annotation>
+<![CDATA[
+The name of the bean (bean id).
+]]>
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="type" type="xs:string" use="required">
+      <xs:annotation>
         <xs:documentation xml:lang="en">
-<![CDATA[
-The class name (fully qualified) of the bean.
-]]>
-        </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="initMethod" type="xs:string">
-      <xs:annotation>
+<![CDATA[
+The class name (fully qualified) of the bean.
+]]>
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="initMethod" type="xs:string">
+      <xs:annotation>
         <xs:documentation xml:lang="en">
-<![CDATA[
-The name of the custom initialization method to invoke after setting bean properties. The method must have no arguments,
-but may throw any exception.
-]]>
-        </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="destroyMethod" type="xs:string">
-      <xs:annotation>
+<![CDATA[
+The name of the custom initialization method to invoke after setting bean properties. The method must have no arguments,
+but may throw any exception.
+]]>
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="destroyMethod" type="xs:string">
+      <xs:annotation>
         <xs:documentation xml:lang="en">
-<![CDATA[
-The name of the custom destroy method to invoke on bean shutdown, such as when Camel is shutting down. The method must
-have no arguments, but may throw any exception.
-]]>
-        </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="factoryMethod" type="xs:string">
-      <xs:annotation>
+<![CDATA[
+The name of the custom destroy method to invoke on bean shutdown, such as when Camel is shutting down. The method must
+have no arguments, but may throw any exception.
+]]>
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="factoryMethod" type="xs:string">
+      <xs:annotation>
         <xs:documentation xml:lang="en">
-<![CDATA[
-Name of method to invoke when creating the bean via a factory bean.
-]]>
-        </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="factoryBean" type="xs:string">
-      <xs:annotation>
+<![CDATA[
+Name of method to invoke when creating the bean via a factory bean.
+]]>
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="factoryBean" type="xs:string">
+      <xs:annotation>
         <xs:documentation xml:lang="en">
-<![CDATA[
-Name of factory bean (bean id) to use for creating the bean.
-]]>
-        </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="builderClass" type="xs:string">
-      <xs:annotation>
+<![CDATA[
+Name of factory bean (bean id) to use for creating the bean.
+]]>
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="builderClass" type="xs:string">
+      <xs:annotation>
         <xs:documentation xml:lang="en">
-<![CDATA[
-Fully qualified class name of builder class to use for creating and configuring the bean. The builder will use the
-properties values to configure the bean.
-]]>
-        </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="builderMethod" type="xs:string">
-      <xs:annotation>
+<![CDATA[
+Fully qualified class name of builder class to use for creating and configuring the bean. The builder will use the
+properties values to configure the bean.
+]]>
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="builderMethod" type="xs:string">
+      <xs:annotation>
         <xs:documentation xml:lang="en">
-<![CDATA[
-Name of method when using builder class. This method is invoked after configuring to create the actual bean. This method
-is often named build (used by default). Default value: build
-]]>
-        </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="scriptLanguage" type="xs:string">
-      <xs:annotation>
+<![CDATA[
+Name of method when using builder class. This method is invoked after configuring to create the actual bean. This method
+is often named build (used by default). Default value: build
+]]>
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="scriptLanguage" type="xs:string">
+      <xs:annotation>
         <xs:documentation xml:lang="en">
-<![CDATA[
-The script language to use when using inlined script for creating the bean, such as groovy, java, javascript etc.
-]]>
-        </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="scriptPropertyPlaceholders" type="xs:string">
-      <xs:annotation>
+<![CDATA[
+The script language to use when using inlined script for creating the bean, such as groovy, java, javascript etc.
+]]>
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="scriptPropertyPlaceholders" type="xs:string">
+      <xs:annotation>
         <xs:documentation xml:lang="en">
-<![CDATA[
-Whether the script should support using Camel property placeholder syntax {{ }}. Default value: true
-]]>
-        </xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-  </xs:complexType>
-  <xs:complexType name="beanConstructorsDefinition">
-    <xs:sequence>
-      <xs:element maxOccurs="unbounded" minOccurs="0" name="constructor" type="tns:beanConstructorDefinition"/>
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="beanConstructorDefinition">
-    <xs:sequence/>
-    <xs:attribute name="index" type="xs:int"/>
-    <xs:attribute name="value" type="xs:string" use="required"/>
-  </xs:complexType>
-  <xs:complexType name="beanPropertiesDefinition">
-    <xs:sequence>
-      <xs:element maxOccurs="unbounded" minOccurs="0" name="property" type="tns:beanPropertyDefinition"/>
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="beanPropertyDefinition">
-    <xs:sequence>
-      <xs:element minOccurs="0" name="properties" type="tns:beanPropertiesDefinition"/>
-    </xs:sequence>
-    <xs:attribute name="key" type="xs:string"/>
-    <xs:attribute name="value" type="xs:string"/>
-  </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>
+<![CDATA[
+Whether the script should support using Camel property placeholder syntax {{ }}. Default value: true
+]]>
+        </xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+  <xs:complexType name="beanConstructorsDefinition">
+    <xs:sequence>
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="constructor" type="tns:beanConstructorDefinition"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="beanConstructorDefinition">
+    <xs:sequence/>
+    <xs:attribute name="index" type="xs:int"/>
+    <xs:attribute name="value" type="xs:string" use="required"/>
+  </xs:complexType>
+  <xs:complexType name="beanPropertiesDefinition">
+    <xs:sequence>
+      <xs:element maxOccurs="unbounded" minOccurs="0" name="property" type="tns:beanPropertyDefinition"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="beanPropertyDefinition">
+    <xs:sequence>
+      <xs:element minOccurs="0" name="properties" type="tns:beanPropertiesDefinition"/>
+    </xs:sequence>
+    <xs:attribute name="key" type="xs:string"/>
+    <xs:attribute name="value" type="xs:string"/>
+  </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" ref="tns:onWhen"/>
-          <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:choice"/>
-            <xs:element ref="tns:circuitBreaker"/>
-            <xs:element ref="tns:claimCheck"/>
-            <xs:element ref="tns:convertBodyTo"/>
-            <xs:element ref="tns:convertHeaderTo"/>
-            <xs:element ref="tns:convertVariableTo"/>
-            <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:pausable"/>
-            <xs:element ref="tns:pipeline"/>
-            <xs:element ref="tns:policy"/>
-            <xs:element ref="tns:poll"/>
-            <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:removeVariable"/>
-            <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:setHeaders"/>
-            <xs:element ref="tns:setProperty"/>
-            <xs:element ref="tns:setVariable"/>
-            <xs:element ref="tns:setVariables"/>
-            <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:tokenizer"/>
-            <xs:element ref="tns:transacted"/>
-            <xs:element ref="tns:transformDataType"/>
-            <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:choice>
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="onWhenDefinition">
-    <xs:complexContent>
-      <xs:extension base="tns:optionalIdentifiedDefinition">
-        <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:java"/>
-          <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:variable"/>
-          <xs:element ref="tns:wasm"/>
-          <xs:element ref="tns:xtokenize"/>
-          <xs:element ref="tns:xpath"/>
-          <xs:element ref="tns:xquery"/>
-        </xs:choice>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="choiceDefinition">
-    <xs:complexContent>
-      <xs:extension base="tns:noOutputDefinition">
-        <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="whenDefinition">
-    <xs:complexContent>
-      <xs:extension base="tns:optionalIdentifiedDefinition">
-        <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:java"/>
-            <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:variable"/>
-            <xs:element ref="tns:wasm"/>
-            <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:choice"/>
-            <xs:element ref="tns:circuitBreaker"/>
-            <xs:element ref="tns:claimCheck"/>
-            <xs:element ref="tns:convertBodyTo"/>
-            <xs:element ref="tns:convertHeaderTo"/>
-            <xs:element ref="tns:convertVariableTo"/>
-            <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:pausable"/>
-            <xs:element ref="tns:pipeline"/>
-            <xs:element ref="tns:policy"/>
-            <xs:element ref="tns:poll"/>
-            <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:removeVariable"/>
-            <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:setHeaders"/>
-            <xs:element ref="tns:setProperty"/>
-            <xs:element ref="tns:setVariable"/>
-            <xs:element ref="tns:setVariables"/>
-            <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:tokenizer"/>
-            <xs:element ref="tns:transacted"/>
-            <xs:element ref="tns:transformDataType"/>
-            <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:choice>
-        </xs:sequence>
-        <xs:attribute name="disabled" type="xs:string">
-          <xs:annotation>
-            <xs:documentation xml:lang="en">
-<![CDATA[
-Disables this EIP from the route. 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:optionalIdentifiedDefinition">
-        <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:choice"/>
-            <xs:element ref="tns:circuitBreaker"/>
-            <xs:element ref="tns:claimCheck"/>
-            <xs:element ref="tns:convertBodyTo"/>
-            <xs:element ref="tns:convertHeaderTo"/>
-            <xs:element ref="tns:convertVariableTo"/>
-            <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:pausable"/>
-            <xs:element ref="tns:pipeline"/>
-            <xs:element ref="tns:policy"/>
-            <xs:element ref="tns:poll"/>
-            <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:removeVariable"/>
-            <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:setHeaders"/>
-            <xs:element ref="tns:setProperty"/>
-            <xs:element ref="tns:setVariable"/>
-            <xs:element ref="tns:setVariables"/>
-            <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:tokenizer"/>
-            <xs:element ref="tns:transacted"/>
-            <xs:element ref="tns:transformDataType"/>
-            <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:choice>
-        </xs:sequence>
-        <xs:attribute name="disabled" type="xs:string">
-          <xs:annotation>
-            <xs:documentation xml:lang="en">
-<![CDATA[
-Disables this EIP from the route. Default value: false
-]]>
-            </xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-      </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:choice"/>
-            <xs:element ref="tns:circuitBreaker"/>
-            <xs:element ref="tns:claimCheck"/>
-            <xs:element ref="tns:convertBodyTo"/>
-            <xs:element ref="tns:convertHeaderTo"/>
-            <xs:element ref="tns:convertVariableTo"/>
-            <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:pausable"/>
-            <xs:element ref="tns:pipeline"/>
-            <xs:element ref="tns:policy"/>
-            <xs:element ref="tns:poll"/>
-            <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:removeVariable"/>
-            <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:setHeaders"/>
-            <xs:element ref="tns:setProperty"/>
-            <xs:element ref="tns:setVariable"/>
-            <xs:element ref="tns:setVariables"/>
-            <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:tokenizer"/>
-            <xs:element ref="tns:transacted"/>
-            <xs:element ref="tns:transformDataType"/>
-            <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:choice>
-          <xs:element minOccurs="0" ref="tns:onFallback"/>
-        </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:attribute name="inheritErrorHandler" type="xs:boolean">
-          <xs:annotation>
-            <xs:documentation xml:lang="en">
-<![CDATA[
-To turn on or off Camel error handling during circuit breaker. If this is enabled then Camel error handler will first
-trigger if there is an error in the circuit breaker, which allows to let Camel handle redeliveries. If all attempts is
-failed, then after the circuit breaker is finished, then Camel error handler can handle the error as well such as the
-dead letter channel. By default, Camel error handler is turned off. Default value: false
-]]>
-            </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 maxOccurs="unbounded" minOccurs="0" name="recordException" type="xs:string">
-            <xs:annotation>
+<![CDATA[
+The exception(s) to catch.
+]]>
+              </xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element minOccurs="0" ref="tns:onWhen"/>
+          <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:choice"/>
+            <xs:element ref="tns:circuitBreaker"/>
+            <xs:element ref="tns:claimCheck"/>
+            <xs:element ref="tns:convertBodyTo"/>
+            <xs:element ref="tns:convertHeaderTo"/>
+            <xs:element ref="tns:convertVariableTo"/>
+            <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:pausable"/>
+            <xs:element ref="tns:pipeline"/>
+            <xs:element ref="tns:policy"/>
+            <xs:element ref="tns:poll"/>
+            <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:removeVariable"/>
+            <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:setHeaders"/>
+            <xs:element ref="tns:setProperty"/>
+            <xs:element ref="tns:setVariable"/>
+            <xs:element ref="tns:setVariables"/>
+            <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:tokenizer"/>
+            <xs:element ref="tns:transacted"/>
+            <xs:element ref="tns:transformDataType"/>
+            <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:choice>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:complexType name="onWhenDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:optionalIdentifiedDefinition">
+        <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:java"/>
+          <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:variable"/>
+          <xs:element ref="tns:wasm"/>
+          <xs:element ref="tns:xtokenize"/>
+          <xs:element ref="tns:xpath"/>
+          <xs:element ref="tns:xquery"/>
+        </xs:choice>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:complexType name="choiceDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:noOutputDefinition">
+        <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="whenDefinition">
+    <xs:complexContent>
+      <xs:extension base="tns:optionalIdentifiedDefinition">
+        <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:java"/>
+            <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:variable"/>
+            <xs:element ref="tns:wasm"/>
+            <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:choice"/>
+            <xs:element ref="tns:circuitBreaker"/>
+            <xs:element ref="tns:claimCheck"/>
+            <xs:element ref="tns:convertBodyTo"/>
+            <xs:element ref="tns:convertHeaderTo"/>
+            <xs:element ref="tns:convertVariableTo"/>
+            <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:pausable"/>
+            <xs:element ref="tns:pipeline"/>
+            <xs:element ref="tns:policy"/>
+            <xs:element ref="tns:poll"/>
+            <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:removeVariable"/>
+            <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:setHeaders"/>
+            <xs:element ref="tns:setProperty"/>
+            <xs:element ref="tns:setVariable"/>
+            <xs:element ref="tns:setVariables"/>
+            <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:tokenizer"/>
+            <xs:element ref="tns:transacted"/>
+            <xs:element ref="tns:transformDataType"/>
+            <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:choice>
+        </xs:sequence>
+        <xs:attribute name="disabled" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">
+<![CDATA[
+Disables this EIP from the route. 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:optionalIdentifiedDefinition">
+        <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:choice"/>
+            <xs:element ref="tns:circuitBreaker"/>
+            <xs:element ref="tns:claimCheck"/>
+            <xs:element ref="tns:convertBodyTo"/>
+            <xs:element ref="tns:convertHeaderTo"/>
+            <xs:element ref="tns:convertVariableTo"/>
+            <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:pausable"/>
+            <xs:element ref="tns:pipeline"/>
+            <xs:element ref="tns:policy"/>
+            <xs:element ref="tns:poll"/>
+            <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:removeVariable"/>
+            <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:setHeaders"/>
+            <xs:element ref="tns:setProperty"/>
+            <xs:element ref="tns:setVariable"/>
+            <xs:element ref="tns:setVariables"/>
+            <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:tokenizer"/>
+            <xs:element ref="tns:transacted"/>
+            <xs:element ref="tns:transformDataType"/>
+            <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:choice>
+        </xs:sequence>
+        <xs:attribute name="disabled" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">
+<![CDATA[
+Disables this EIP from the route. Default value: false
+]]>
+            </xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </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:choice"/>
+            <xs:element ref="tns:circuitBreaker"/>
+            <xs:element ref="tns:claimCheck"/>
+            <xs:element ref="tns:convertBodyTo"/>
+            <xs:element ref="tns:convertHeaderTo"/>
+            <xs:element ref="tns:convertVariableTo"/>
+            <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:pausable"/>
+            <xs:element ref="tns:pipeline"/>
+            <xs:element ref="tns:policy"/>
+            <xs:element ref="tns:poll"/>
+            <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:removeVariable"/>
+            <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:setHeaders"/>
+            <xs:element ref="tns:setProperty"/>
+            <xs:element ref="tns:setVariable"/>
+            <xs:element ref="tns:setVariables"/>
+            <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:tokenizer"/>
+            <xs:element ref="tns:transacted"/>
+            <xs:element ref="tns:transformDataType"/>
+            <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:choice>
+          <xs:element minOccurs="0" ref="tns:onFallback"/>
+        </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:attribute name="inheritErrorHandler" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation xml:lang="en">
+<![CDATA[
+To turn on or off Camel error handling during circuit breaker. If this is enabled then Camel error handler will first
+trigger if there is an error in the circuit breaker, which allows to let Camel handle redeliveries. If all attempts is
+failed, then after the circuit breaker is finished, then Camel error handler can handle the error as well such as the
+dead letter channel. By default, Camel error handler is turned off. Default value: false
+]]>
+            </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 maxOccurs="unbounded" minOccurs="0" name="recordException" type="xs:string">
+            <xs:annotation>
               <xs:documentation xml:lang="en">
-<![CDATA[
-Configure a list of exceptions that are recorded as a failure and thus increase the failure rate. Any exception matching
-or inheriting from one of the list counts as a failure, unless explicitly ignored via ignoreExceptions.
-]]>
-              </xs:documentation>
-            </xs:annotation>
-          </xs:element>
-          <xs:element maxOccurs="unbounded" minOccurs="0" name="ignoreException" type="xs:string">
-            <xs:annotation>
+<![CDATA[
+Configure a list of exceptions that are recorded as a failure and thus increase the failure rate. Any exception matching
+or inheriting from one of the list counts as a failure, unless explicitly ignored via ignoreExceptions.
+]]>
+              </xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element maxOccurs="unbounded" minOccurs="0" name="ignoreException" type="xs:string">
+            <xs:annotation>
               <xs:documentation xml:lang="en">
-<![CDATA[
-Configure a list of exceptions that are ignored and neither count as a failure nor success. Any exception matching or
-inheriting from one of the list will not count as a failure nor success, even if the exceptions is part of
-recordExceptions.
-]]>
-              </xs:documentation>
-            </xs:annotation>
-          </xs:element>
-        </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 (and was not attempted but rejected immediately) or open (always rejected). This option is only in
-use when there is NOT a fallback configured on the circuit breaker. When there is a fallback then the fallback is always
-executed and CallNotPermittedException is not thrown. 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: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: 25
-]]>
-            </xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="bulkheadMaxWaitDuration" type="xs:string">
-          <xs:annotation>
-            <xs:documentation xml:lang="en">
-<![CDATA[
-Configures a maximum amount of time which the calling thread will wait to enter the bulkhead. If bulkhead has space
-available, entry is guaranteed and immediate. If bulkhead is full, calling threads will contest for space, if it becomes
-available. maxWaitDuration can be set to 0. Note: for threads running on an event-loop or equivalent (rx computation
-pool, etc), setting maxWaitDuration to 0 is highly recommended. Blocking an event-loop thread will most likely have a
-negative effect on application throughput. Default value: 0
-]]>
-            </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="timeoutExecutorService" type="xs:string">
-          <xs:annotation>
-            <xs:documentation xml:lang="en">
-<![CDATA[
-References to a custom thread pool to use when timeout is enabled (uses ForkJoinPool#commonPool() by default).
-]]>
-            </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="timeoutCancelRunningFuture" type="xs:string">
-          <xs:annotation>
-            <xs:documentation xml:lang="en">
-<![CDATA[
-Configures whether cancel is called on the running future. Defaults to true. Default value: true
-]]>
-            </xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="micrometerEnabled" type="xs:string">
-          <xs:annotation>
-            <xs:documentation xml:lang="en">
-<![CDATA[
-Whether to enable collecting statistics using Micrometer. This requires adding camel-resilience4j-micrometer JAR to the
-classpath. Default value: false
-]]>
-            </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="typedGuard" type="xs:string">
-          <xs:annotation>
-            <xs:documentation xml:lang="en">
-<![CDATA[
-Refers to an existing io.smallrye.faulttolerance.api.TypedGuard instance to lookup and use from the registry. When using
-this, then any other TypedGuard 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>
... 61814 lines suppressed ...