<?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="a2aSubTask" type="tns:a2ASubTaskDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Groups route steps and emits A2A (Agent-to-Agent) protocol progress events before, after, or when the grouped work fails
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="aggregate" type="tns:aggregateDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Collects and combines related messages into a single message using a correlation expression and an aggregation strategy.
Messages are grouped into buckets by correlation key and released when a completion condition is met.
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="apiKey" type="tns:apiKeyDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Configures API key authentication for a REST service
]]>
      </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[
Configures HTTP Basic authentication for a REST service
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="batchConfig" type="tns:batchResequencerConfig">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Configures the batch-processing mode of the Resequence EIP, which collects messages into a batch and sorts them before
releasing
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="bean" type="tns:beanDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Invokes a method on a Java bean, with automatic parameter binding from the message body, headers, and exchange
properties
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="beanFactory" type="tns:beanFactoryDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Defines a custom bean that can be used in Camel routes and other beans. The bean is created by a factory class or
method.
]]>
      </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 element for defining beans, routes, and other elements using XML DSL with camel-xml-io-dsl
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="bearerToken" type="tns:bearerTokenDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Configures Bearer token authentication for a REST service
]]>
      </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 element for a Camel application defined using XML DSL with camel-xml-io-dsl, containing beans, routes, and
configuration
]]>
      </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[
Routes messages to different steps based on a series of conditions (predicates), similar to if-elseif-else in Java. Each
condition is evaluated in order until one matches.
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="circuitBreaker" type="tns:circuitBreakerDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Wraps message processing with a circuit breaker for fault tolerance. Prevents cascading failures by short-circuiting
calls to an unhealthy service and routing to a fallback
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="claimCheck" type="tns:claimCheckDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Temporarily stores the message content and replaces it with a claim check key, allowing the content to be retrieved
later in the route. Useful for reducing memory when large payloads pass through processing steps that don't need them.
]]>
      </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 RouteBuilder instances in the Camel registry to auto-discover and register routes
]]>
      </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 a specified Java type using Camel's built-in type converters
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="convertHeaderTo" type="tns:convertHeaderDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Converts a message header value to a specified Java type using Camel's built-in type converters
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="convertVariableTo" type="tns:convertVariableDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Converts a variable value to a specified Java type using Camel's built-in type converters
]]>
      </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[
Delegates to a custom DataFormat implementation looked up from the Camel registry by name
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="customLoadBalancer" type="tns:customLoadBalancerDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
References a custom load balancer implementation from the registry
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="customTransformer" type="tns:customTransformerDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
References a custom data type transformer implementation from the registry for route-level transformations
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="customValidator" type="tns:customValidatorDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
References a custom data type validator implementation from the registry for route-level validation
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="dataFormatTransformer" type="tns:dataFormatTransformerDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Uses a Camel data format to perform data type transformation between input and output types
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="dataFormats" type="tns:dataFormatsDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Container for defining data format configurations
]]>
      </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 that moves failed messages to a dead letter endpoint after exhausting redelivery attempts
]]>
      </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 that supports redelivery with configurable retry policies and delay patterns
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="delay" type="tns:delayDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Delays message processing for a specified duration, which can be a fixed value or computed dynamically per message
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="delete" type="tns:deleteDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Defines an HTTP DELETE operation in the REST DSL
]]>
      </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 specific exceptions within a doTry block, allowing fine-grained exception handling within the route
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="doFinally" type="tns:finallyDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Defines steps to always execute after a doTry block completes, regardless of whether an exception was thrown or caught
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="doTry" type="tns:tryDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Wraps route steps in a try-catch-finally block for fine-grained exception handling within the route
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="dynamicRouter" type="tns:dynamicRouterDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Routes a message step-by-step through a series of endpoints, determined dynamically by calling an expression repeatedly.
The expression is called after each hop and returns the next endpoint, or null to stop.
]]>
      </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[
Uses a Camel endpoint to perform data type transformation by sending the message through the endpoint
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="endpointValidator" type="tns:endpointValidatorDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Uses a Camel endpoint to perform data type validation by sending the message through the endpoint
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="enrich" type="tns:enrichDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Enriches the message with additional data obtained by sending to another endpoint using request-reply. The reply is
merged into the original message using an aggregation strategy.
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="errorHandler" nillable="true" type="xs:anyType">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Configures error handling strategy for routes, controlling how failed exchanges are handled and redelivered
]]>
      </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[
Load balancer that tries the next endpoint in case of failure, cycling through available endpoints until one succeeds
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="faultToleranceConfiguration" type="tns:faultToleranceConfigurationDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Configures MicroProfile Fault Tolerance settings for the Circuit Breaker EIP, such as timeout, bulkhead, and retry
parameters
]]>
      </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[
Filters messages using a predicate expression. Messages matching the predicate continue processing; non-matching
messages are skipped.
]]>
      </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[
Defines the consumer endpoint that acts as the input source for a route
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="get" type="tns:getDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Defines an HTTP GET operation in the REST DSL
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="globalOption" type="tns:globalOptionDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Defines a single global configuration option as a key/value pair for the CamelContext
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="globalOptions" type="tns:globalOptionsDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Defines a collection of global configuration options for the CamelContext
]]>
      </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.GZIP*Stream
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="head" type="tns:headDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Defines an HTTP HEAD operation in the REST DSL
]]>
      </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 based on a unique message identifier and an idempotent repository that tracks previously
seen IDs
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="inputType" type="tns:inputTypeDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Declares the expected input data type for a route. Camel will apply a data type transformer if the actual message type
differs at runtime.
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="intercept" type="tns:interceptDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Intercepts each message at every processing step in the route, allowing cross-cutting logic such as logging or auditing
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="interceptFrom" type="tns:interceptFromDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Intercepts incoming messages arriving from consumer endpoints, optionally filtering by endpoint URI pattern
]]>
      </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 a specific endpoint, allowing the message to be modified or the send to be skipped
]]>
      </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[
Transactional error handler using JTA (Java Transaction API) that marks the transaction for rollback on failure
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="kamelet" type="tns:kameletDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Calls a Kamelet (reusable route template) as a step in the route. Normally Kamelets are invoked via kamelet: endpoint
URIs; this EIP is for special cases where direct invocation is needed.
]]>
      </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[
Splits text into chunks by character count, using LangChain4j's character tokenizer for AI text processing
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="langChain4jLineTokenizer" type="tns:langChain4JLineTokenizerDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Splits text into chunks line by line, using LangChain4j's line tokenizer for AI text processing
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="langChain4jParagraphTokenizer" type="tns:langChain4JParagraphTokenizerDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Splits text into chunks by paragraph boundaries, using LangChain4j's paragraph tokenizer for AI text processing
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="langChain4jSentenceTokenizer" type="tns:langChain4JSentenceTokenizerDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Splits text into chunks by sentence boundaries, using LangChain4j's sentence tokenizer for AI text processing
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="langChain4jWordTokenizer" type="tns:langChain4JWordTokenizerDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Splits text into chunks by word boundaries, using LangChain4j's word tokenizer for AI text processing
]]>
      </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[
Distributes messages across multiple endpoints using a load balancing strategy such as round-robin, random, failover, or
weighted
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="loadTransformer" type="tns:loadTransformerDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Auto-discovers and loads data type transformers from the classpath via scanning
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="log" type="tns:logDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Logs a message using an expression that can include message body, headers, and other exchange data
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="loop" type="tns:loopDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Processes the message body repeatedly for a specified number of iterations, or until a condition is met
]]>
      </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[
Serializes the message body into a specific data format such as JSON, XML, CSV, or Protobuf for transmission or storage
]]>
      </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[
Sends a copy of the message to multiple fixed endpoints, processing them sequentially or in parallel, and optionally
aggregating their replies
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="mutualTLS" type="tns:mutualTLSDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Configures mutual TLS (mTLS) client certificate authentication for a REST service
]]>
      </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[
Disables error handling for a route, causing exceptions to propagate immediately to the caller
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="oauth2" type="tns:oAuth2Definition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Configures OAuth2 authentication for a REST service
]]>
      </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[
Defines steps to execute when route processing completes, either on success, failure, or both
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="onException" type="tns:onExceptionDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Defines exception handling for specific exception types, with options for redelivery, logging, and routing to error
endpoints
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="onFallback" type="tns:onFallbackDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Defines the fallback route that executes when the Circuit Breaker trips or the primary route fails
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="onWhen" type="tns:onWhenDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Applies a predicate condition to filter when a parent definition (such as onException or onCompletion) should be
triggered
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="openApi" type="tns:openApiDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Configures a contract-first REST service using an OpenAPI specification, where Camel auto-generates routes for each
operation
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="openIdConnect" type="tns:openIdConnectDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Configures OpenID Connect authentication for a REST service
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="optimisticLockRetryPolicy" type="tns:optimisticLockRetryPolicyDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Configures the retry policy for optimistic locking in the Aggregate EIP, controlling retry attempts and delays on
version conflicts
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="otherwise" type="tns:otherwiseDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Defines the default branch within a Choice EIP that executes when no When condition matches
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="outputType" type="tns:outputTypeDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Declares the expected output data type for a route. Camel will apply a data type transformer if the actual message type
differs at runtime.
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="packageScan" type="tns:packageScanDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Scans Java packages on the classpath for RouteBuilder classes to auto-discover and register routes
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="param" type="tns:paramDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Defines a parameter for a REST operation, specifying its type, name, data type, and whether it is required
]]>
      </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[
Defines an HTTP PATCH operation in the REST DSL
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="pausable" type="tns:pausableDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Pauses a consumer based on a condition, allowing it to be resumed later from the last known offset. Useful for
controlling ingestion rate on polling consumers.
]]>
      </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[
Processes the message through a sequence of steps where the output of each step becomes the input of the next
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="policy" type="tns:policyDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Applies a policy to the route, such as a transactional policy or a custom policy for cross-cutting concerns
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="poll" type="tns:pollDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Polls a single message from a consumer endpoint and sets it as the message body. Useful for fetching data on-demand from
file, database, or messaging endpoints.
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="pollEnrich" type="tns:pollEnrichDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Enriches the message with additional data obtained by polling a consumer endpoint (such as a file or message queue). The
polled data is merged using an aggregation strategy.
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="post" type="tns:postDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Defines an HTTP POST operation in the REST DSL
]]>
      </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[
Uses a predicate expression to validate message data types at the route level
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="process" type="tns:processDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Invokes a custom Camel Processor for programmatic message processing in Java
]]>
      </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[
Defines a key/value pair with a literal value, used for passing parameters in route templates and other configurations
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="propertyExpression" type="tns:propertyExpressionDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Defines a key/value pair where the value is computed by an expression, used for passing dynamic parameters
]]>
      </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[
Defines an HTTP PUT operation in the REST DSL
]]>
      </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[
Load balancer that randomly selects a destination endpoint for each message
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="recipientList" type="tns:recipientListDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Routes a message to a list of dynamically calculated endpoints, determined at runtime from an expression. Each recipient
receives a copy of the message.
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="redeliveryPolicy" type="tns:redeliveryPolicyDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Configures message redelivery for error handling, including maximum retries, delay patterns, and backoff settings
]]>
      </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 a custom error handler bean from the registry by its name
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="removeHeader" type="tns:removeHeaderDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Removes a specific header from the message by name
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="removeHeaders" type="tns:removeHeadersDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Removes all message headers whose names match a given pattern. Useful for stripping internal Camel headers before
sending to external systems.
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="removeProperties" type="tns:removePropertiesDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Removes all exchange properties whose names match a given pattern
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="removeProperty" type="tns:removePropertyDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Removes a specific exchange property by name
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="removeVariable" type="tns:removeVariableDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Removes a specific variable by name
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="resequence" type="tns:resequenceDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Reorders messages based on a sequence expression, either in batch mode (collect and sort) or stream mode (continuous
reordering with a timeout)
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="resilience4jConfiguration" type="tns:resilience4JConfigurationDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Configures Resilience4j settings for the Circuit Breaker EIP, such as failure rate threshold, wait duration, and sliding
window parameters
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="responseHeader" type="tns:responseHeaderDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Defines a response header for a REST operation, used for API documentation and OpenAPI spec generation
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="responseMessage" type="tns:responseMessageDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Defines a response message for a REST operation, including HTTP status code and description for API documentation
]]>
      </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 with HTTP operations (GET, POST, PUT, DELETE, etc.) using the Camel REST DSL
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="restBinding" type="tns:restBindingDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Configures data binding for a REST service, controlling how request and response bodies are marshalled and unmarshalled
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="restConfiguration" type="tns:restConfigurationDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Configures global settings for the REST DSL, such as host, port, context path, binding mode, and the underlying HTTP
component to use
]]>
      </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[
References an external XML file containing REST service definitions for inclusion in the current context
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="restProperty" type="tns:restPropertyDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Defines a key/value property for REST configuration, used to pass component-specific settings
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="rests" type="tns:restsDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Container for a collection of REST service definitions
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="resumable" type="tns:resumableDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Enables resuming processing from the last known offset after a restart, using a resume strategy to track and restore
position
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="rollback" type="tns:rollbackDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Forces a rollback of the current transaction and stops routing the message. Can set a custom message on the exception.
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="roundRobinLoadBalancer" type="tns:roundRobinLoadBalancerDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Load balancer that cycles through destination endpoints in sequential order, distributing the load evenly
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="route" type="tns:routeDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Defines a Camel route that specifies the processing steps a message goes through from a consumer endpoint to one or more
producer endpoints
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="routeBuilder" type="tns:routeBuilderDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
References a Java RouteBuilder class to include its routes in the current CamelContext
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="routeConfiguration" type="tns:routeConfigurationDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Defines reusable configuration that is automatically applied to matching routes, such as shared error handling or
interceptors
]]>
      </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[
References an external XML file containing route configuration definitions for inclusion in the current context
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="routeConfigurations" type="tns:routeConfigurationsDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Container for a collection of route configuration definitions
]]>
      </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[
References an external XML file containing route definitions for inclusion in the current context
]]>
      </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 parameterized route template that can be instantiated multiple times with different parameter values
]]>
      </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[
References an external XML file containing route template definitions for inclusion in the current context
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="routeTemplates" type="tns:routeTemplatesDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Container for a collection of route template definitions
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="routes" type="tns:routesDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Container for a collection of route definitions
]]>
      </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 pre-determined sequence of endpoints defined in a header or expression (the routing slip).
The list of endpoints is evaluated once upfront.
]]>
      </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[
Defines a Saga (long-running action) that coordinates distributed services toward a consistent outcome. Unlike XA
transactions, Sagas use compensating actions for rollback and work across heterogeneous services.
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="sample" type="tns:samplingDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Samples a subset of messages passing through the route, either by frequency count or time interval, and discards the
rest
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="script" type="tns:scriptDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Executes an expression or script in a chosen language for side effects without modifying 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[
Applies a security requirement to a REST operation, referencing a security scheme defined at the service level
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="securityDefinitions" type="tns:restSecuritiesDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Container for security scheme definitions used by REST services
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="setBody" type="tns:setBodyDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Sets the message body to a value computed by an expression
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="setExchangePattern" type="tns:setExchangePatternDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Sets the message exchange pattern (MEP) on the exchange, such as InOnly for one-way or InOut for request-reply
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="setHeader" type="tns:setHeaderDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Sets a message header to a value computed by an expression
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="setHeaders" type="tns:setHeadersDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Sets multiple message headers at once, each computed by its own expression
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="setProperty" type="tns:setPropertyDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Sets an exchange property to a value computed by an expression
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="setVariable" type="tns:setVariableDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Sets a variable to a value computed by an expression
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="setVariables" type="tns:setVariablesDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Sets multiple variables at once, each computed by its own expression
]]>
      </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 items in a message body that is a List, using a specified comparator or the default ordering
]]>
      </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 message into multiple sub-messages using an expression, and processes each one individually. Supports parallel
processing and result aggregation.
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="springTransactionErrorHandler" type="tns:springTransactionErrorHandlerDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Transactional error handler using Spring Transaction Manager that marks the transaction for rollback on failure
]]>
      </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[
Groups a sequence of processing steps under a single logical name for improved monitoring, management, and tracing
visibility
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="stickyLoadBalancer" type="tns:stickyLoadBalancerDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Load balancer that routes messages to the same endpoint based on a correlation expression, ensuring session affinity
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="stop" type="tns:stopDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Stops processing of the current message and marks the exchange as completed without sending it to any further steps
]]>
      </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 the stream-processing mode of the Resequence EIP, which continuously reorders messages as they arrive using a
timeout
]]>
      </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[
Defines a parameter for a route template, with an optional default value and description
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="templatedRoute" type="tns:templatedRouteDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Creates a route instance from a route template, binding specific parameter values to the template's parameters
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="templatedRouteParameter" type="tns:templatedRouteParameterDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Provides a parameter value for a templated route, binding a value to a route template parameter
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="templatedRoutes" type="tns:templatedRoutesDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Container for a collection of templated route definitions
]]>
      </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[
Defines a named thread pool profile with pool size, queue size, and thread keep-alive settings for use by EIPs and
components
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="threads" type="tns:threadsDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Offloads processing of subsequent steps in the route to a thread pool, enabling asynchronous and concurrent message
handling
]]>
      </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[
Limits the message throughput to a maximum number of messages per time period to avoid overloading downstream systems
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="throwException" type="tns:throwExceptionDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Throws an exception during route processing, either creating a new exception instance or re-throwing an existing one
]]>
      </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 fixed endpoint URI
]]>
      </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 an endpoint URI computed dynamically from an expression, allowing the destination to vary per
message
]]>
      </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[
Tokenizes the message body for AI processing, splitting text into chunks suitable for embedding or LLM input
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="topicLoadBalancer" type="tns:topicLoadBalancerDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Load balancer that sends every message to all destination endpoints, similar to a publish-subscribe pattern
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="transacted" type="tns:transactedDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Wraps the route in a transaction, ensuring that all steps within the transacted block either complete together or roll
back on failure
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="transform" type="tns:transformDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Sets the message body using an expression. Unlike setBody, transform also sets the OUT message body in InOut exchanges
]]>
      </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 between known data types (such as XML, JSON, Java objects) using registered data type
transformers
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="transformers" type="tns:transformersDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Container for defining data type transformer definitions
]]>
      </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[
Defines a column header for UniVocity data format configuration
]]>
      </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[
Deserializes the message body from a specific data format such as JSON, XML, CSV, or Protobuf into a Java object
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="validate" type="tns:validateDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Validates the message against a predicate expression and throws a PredicateValidationException if the validation fails
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="validators" type="tns:validatorsDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Container for defining data type validator definitions
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="value" type="tns:valueDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Holds a single value, typically used as a child element in collection-based configurations
]]>
      </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[
Load balancer that distributes messages across endpoints according to configured weight ratios
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="when" type="tns:whenDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Defines a conditional branch within a Choice EIP that executes when its predicate evaluates to true
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="wireTap" type="tns:wireTapDefinition">
    <xs:annotation>
      <xs:documentation xml:lang="en">
<![CDATA[
Sends a copy of the message to a secondary endpoint without affecting the original route flow. The tapped message is
sent asynchronously in a separate thread
]]>
      </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.Zip*Stream
]]>
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType abstract="true" name="abstractCamelConsumerTemplateFactoryBean">
    <xs:complexContent>
      <xs:extension base="tns:abstractCamelFactoryBean">
        <xs:sequence/>
        <xs:attribute name="maximumCacheSize" type="xs:int">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets a custom maximum cache size to use in the backing cache pools.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="abstractCamelFactoryBean">
    <xs:complexContent>
      <xs:extension base="tns:identifiedType">
        <xs:sequence/>
        <xs:attribute name="camelContextId" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Id of CamelContext to use if there are multiple CamelContexts in the same JVM.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="identifiedType">
    <xs:sequence/>
    <xs:attribute name="id" type="xs:ID">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
The id of this node.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType abstract="true" name="abstractCamelContextFactoryBean">
    <xs:complexContent>
      <xs:extension base="tns:identifiedType">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="abstractCamelEndpointFactoryBean">
    <xs:complexContent>
      <xs:extension base="tns:abstractCamelFactoryBean">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:property"/>
        </xs:sequence>
        <xs:attribute name="uri" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the URI to use to resolve the endpoint. Notice that additional options can be configured using a series of
property.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="propertyDefinition">
    <xs:sequence/>
    <xs:attribute name="key" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
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:attribute name="onlyRegisterProcessorWithCustomId" type="xs:string"/>
        <xs:attribute name="mbeanServerDefaultDomain" type="xs:string"/>
        <xs:attribute name="mbeanObjectDomainName" type="xs:string"/>
        <xs:attribute name="usePlatformMBeanServer" type="xs:string"/>
        <xs:attribute name="registerAlways" type="xs:string"/>
        <xs:attribute name="registerNewRoutes" type="xs:string"/>
        <xs:attribute name="statisticsLevel" type="xs:string"/>
        <xs:attribute name="mbeansLevel" type="xs:string"/>
        <xs:attribute name="loadStatisticsEnabled" type="xs:string"/>
        <xs:attribute name="endpointRuntimeStatisticsEnabled" type="xs:string"/>
        <xs:attribute name="includeHostName" type="xs:string"/>
        <xs:attribute name="useHostIPAddress" type="xs:string"/>
        <xs:attribute name="mask" type="xs:string"/>
        <xs:attribute name="updateRouteEnabled" type="xs:string"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="camelPropertyPlaceholderDefinition">
    <xs:complexContent>
      <xs:extension base="tns:identifiedType">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:propertiesFunction"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:propertiesLocation"/>
        </xs:sequence>
        <xs:attribute name="location" type="xs:string"/>
        <xs:attribute name="encoding" type="xs:string"/>
        <xs:attribute name="ignoreMissingLocation" type="xs:boolean"/>
        <xs:attribute name="nestedPlaceholder" type="xs:boolean"/>
        <xs:attribute name="propertiesParserRef" type="xs:string"/>
        <xs:attribute name="defaultFallbackEnabled" type="xs:boolean"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="camelPropertyPlaceholderFunctionDefinition">
    <xs:complexContent>
      <xs:extension base="tns:identifiedType">
        <xs:sequence/>
        <xs:attribute name="ref" type="xs:string" use="required"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="camelPropertyPlaceholderLocationDefinition">
    <xs:complexContent>
      <xs:extension base="tns:identifiedType">
        <xs:sequence/>
        <xs:attribute name="resolver" type="xs:string"/>
        <xs:attribute name="path" type="xs:string" use="required"/>
        <xs:attribute name="optional" type="xs:boolean"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="camelRouteControllerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:identifiedType">
        <xs:sequence/>
        <xs:attribute name="supervising" type="xs:string"/>
        <xs:attribute name="includeRoutes" type="xs:string"/>
        <xs:attribute name="excludeRoutes" type="xs:string"/>
        <xs:attribute name="threadPoolSize" type="xs:string"/>
        <xs:attribute name="initialDelay" type="xs:string"/>
        <xs:attribute name="backOffDelay" type="xs:string"/>
        <xs:attribute name="backOffMaxDelay" type="xs:string"/>
        <xs:attribute name="backOffMaxElapsedTime" type="xs:string"/>
        <xs:attribute name="backOffMaxAttempts" type="xs:string"/>
        <xs:attribute name="backOffMultiplier" type="xs:string"/>
        <xs:attribute name="unhealthyOnExhausted" type="xs:string"/>
        <xs:attribute name="unhealthyOnRestarting" type="xs:string"/>
        <xs:attribute name="loggingLevel" type="xs:string"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="camelStreamCachingStrategyDefinition">
    <xs:complexContent>
      <xs:extension base="tns:identifiedType">
        <xs:sequence/>
        <xs:attribute name="enabled" type="xs:string"/>
        <xs:attribute name="spoolEnabled" type="xs:string"/>
        <xs:attribute name="allowClasses" type="xs:string"/>
        <xs:attribute name="denyClasses" type="xs:string"/>
        <xs:attribute name="spoolDirectory" type="xs:string"/>
        <xs:attribute name="spoolCipher" type="xs:string"/>
        <xs:attribute name="spoolThreshold" type="xs:string"/>
        <xs:attribute name="spoolUsedHeapMemoryThreshold" type="xs:string"/>
        <xs:attribute name="spoolUsedHeapMemoryLimit" type="xs:string"/>
        <xs:attribute name="spoolRules" type="xs:string"/>
        <xs:attribute name="bufferSize" type="xs:string"/>
        <xs:attribute name="removeSpoolDirectoryWhenStopping" type="xs:string"/>
        <xs:attribute name="statisticsEnabled" type="xs:string"/>
        <xs:attribute name="anySpoolRules" type="xs:string"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="patternBasedPackageScanFilter">
    <xs:sequence/>
  </xs:complexType>
  <xs:complexType abstract="true" name="abstractJsseUtilFactoryBean">
    <xs:complexContent>
      <xs:extension base="tns:abstractCamelFactoryBean">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="abstractKeyManagersParametersFactoryBean">
    <xs:complexContent>
      <xs:extension base="tns:abstractJsseUtilFactoryBean">
        <xs:sequence/>
        <xs:attribute name="keyPassword" type="xs:string"/>
        <xs:attribute name="provider" type="xs:string"/>
        <xs:attribute name="algorithm" type="xs:string"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="abstractKeyStoreParametersFactoryBean">
    <xs:complexContent>
      <xs:extension base="tns:abstractJsseUtilFactoryBean">
        <xs:sequence/>
        <xs:attribute name="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="a2ASubTaskDefinition">
    <xs:complexContent>
      <xs:extension base="tns:output">
        <xs:sequence>
          <xs:choice maxOccurs="unbounded" minOccurs="0">
            <xs:element ref="tns:a2aSubTask"/>
            <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="emitBefore" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Simple expression template to emit before the nested steps run.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="emitAfter" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Simple expression template to emit after the nested steps complete successfully.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="emitOnError" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Simple expression template to emit when the nested steps fail.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="failIfNoTaskContext" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to fail if the current Exchange does not have an active A2A task context. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="output">
    <xs:complexContent>
      <xs:extension base="tns:processorDefinition">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="processorDefinition">
    <xs:complexContent>
      <xs:extension base="tns:optionalIdentifiedDefinition">
        <xs:sequence/>
        <xs:attribute name="disabled" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled
later at runtime. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs: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[
The description for this node.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="id" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
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[
The note for 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. Exchanges with the same correlation key are
aggregated together. If the correlation key cannot be evaluated an Exception is thrown.
]]>
              </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 not specified and the AggregationStrategy implements
Predicate, it 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), evaluated as an expression
allowing dynamic timeout values.
]]>
              </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, evaluated as an expression allowing dynamic size
values.
]]>
              </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" ref="tns:optimisticLockRetryPolicy"/>
          <xs:choice maxOccurs="unbounded" minOccurs="0">
            <xs:element ref="tns:a2aSubTask"/>
            <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 completed exchanges are sent out of the aggregator, this option indicates whether Camel should use a thread pool
with multiple threads for concurrency. 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 optimistic locking, which requires the aggregation repository to implement
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. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="executorService" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Reference to a custom thread pool to use for parallel processing and sending out aggregated exchanges.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="timeoutCheckerExecutorService" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Reference to a custom thread pool for the background completion timeout checker.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="aggregateController" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Reference to an 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[
Reference to the AggregationRepository to use. By default uses 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. Required. Merges each incoming exchange with the existing already merged exchanges. At
first call the oldExchange parameter is null.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="aggregationStrategyMethodName" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The method name to use when using a POJO 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 true then null is used as the oldExchange at the very first aggregation, when using POJOs as the AggregationStrategy.
Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="completionSize" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Number of messages aggregated before the aggregation is complete. Can also be set as an expression via
completionSizeExpression.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="completionInterval" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
A repeating period by which the aggregator will complete all current aggregated exchanges. Cannot be used together with
completionTimeout.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="completionTimeout" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Time that an aggregated exchange should be inactive before its complete (timeout). Cannot be used together with
completionInterval.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="completionTimeoutCheckerInterval" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Interval in millis for the background task that checks for completion timeouts. Default is 1000 (1 second). 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 batch completion mode where aggregation completes based on the total number of exchanges reported by a batch
consumer. Cannot be used together with discardOnAggregationFailure. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="completionOnNewCorrelationGroup" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Enables completion on all previous groups when a new incoming correlation group starts. Only one correlation group can
be in progress at a time. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="eagerCheckCompletion" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If enabled then the completion predicate evaluates against the incoming exchange. Otherwise it evaluates against 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 enabled then a correlation key that cannot be evaluated is logged and ignored, instead of throwing an exception.
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. Late arriving exchanges with a closed correlation key will throw a
ClosedCorrelationKeyException. The value is the maximum cache size of closed keys. Use 0 for unbounded.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="discardOnCompletionTimeout" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If enabled then the aggregated message is discarded (dropped) on completion timeout instead of being 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[
If enabled then the partly aggregated message is discarded when aggregation failed (an exception was thrown from
AggregationStrategy). 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[
If enabled then all current aggregated exchanges are completed 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[
If enabled then waits to complete all current and partial (pending) aggregated exchanges when the context is stopped,
ensuring the aggregation repository is empty before shutdown. 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[
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. 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 before giving up on acquiring the optimistic lock.
]]>
        </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 milliseconds between retry attempts when the optimistic lock fails. 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 bound on retry delay in milliseconds to prevent delays from growing unbounded 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[
Whether to enable exponential backoff, so each subsequent retry delay is doubled until the maximum retry delay is
reached. Default value: true
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="randomBackOff" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Whether to enable random backoff, which uses a random delay between 0 and the computed retry delay to avoid thundering
herd problems. 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[
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[
The method name on the bean to invoke.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="beanType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
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. 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>
          <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>
          <xs:documentation xml:lang="en">
<![CDATA[
The script to execute that creates the bean when using scripting languages.
]]>
          </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>
        <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>
        <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>
        <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>
        <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>
        <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>
        <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>
        <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>
        <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>
        <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>
              <xs:documentation xml:lang="en">
<![CDATA[
The exception class names (fully qualified) 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:a2aSubTask"/>
            <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[
If enabled then the choice is evaluated at route initialization time (precondition). Only when predicates with property
placeholders or simple expressions using only property placeholders are supported. 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:a2aSubTask"/>
            <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:a2aSubTask"/>
            <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:a2aSubTask"/>
            <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 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[
Whether to inherit Camel error handling during circuit breaker. 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>
              <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 exception 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. 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. 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 because the
circuit breaker is half open or open. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="slidingWindowSize" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Configures the size of the sliding window which is used to record the outcome of calls when the CircuitBreaker is
closed. Sliding window can either be count-based or time-based. 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. 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. 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. 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: 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. When the percentage of slow calls is equal or greater the threshold, the CircuitBreaker
transitions to open and starts short-circuiting calls. 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: 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 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. 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 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. Default value: 50
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="timeoutEnabled" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether timeout is enabled or not on the circuit breaker. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="timeoutDuration" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Configures the thread execution timeout. Default value is 1 second. Default value: 1000
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="timeoutPoolSize" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Configures the pool size of the thread pool when timeout is enabled. Default value: 10
]]>
            </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 value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="bulkheadMaxConcurrentCalls" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Configures the max amount of concurrent calls the bulkhead will support. Default value: 10
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="bulkheadWaitingTaskQueue" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Configures the task queue size for holding waiting tasks to be processed by the bulkhead. Default value: 10
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="threadOffloadExecutorService" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
References a custom thread pool to use when offloading a guarded action to another thread.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="onFallbackDefinition">
    <xs:complexContent>
      <xs:extension base="tns:optionalIdentifiedDefinition">
        <xs:sequence>
          <xs:choice maxOccurs="unbounded" minOccurs="0">
            <xs:element ref="tns:a2aSubTask"/>
            <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="fallbackViaNetwork" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the fallback goes over the network. If so, the fallback is executed on a separate thread-pool to avoid
exhausting the main thread-pool. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="claimCheckDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence/>
        <xs:attribute name="operation" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The claim check operation to use. Get=retrieve, GetAndRemove=retrieve and remove, Set=store with key, Push=store on
stack, Pop=retrieve from stack.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="key" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The unique claim check key to use for Get, GetAndRemove, and Set operations.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="filter" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Specifies a filter to control what data gets merged back when using Get or Pop operations. Use body, headers,
header:pattern to include only matching data.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="aggregationStrategy" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Reference to a custom AggregationStrategy to use for merging data back from the claim check repository.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="aggregationStrategyMethodName" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The method name to use when using a POJO as the AggregationStrategy.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType final="extension restriction" name="constants">
    <xs:sequence/>
  </xs:complexType>
  <xs:complexType name="contextScanDefinition">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="excludes" type="xs:string">
        <xs:annotation>
          <xs:documentation xml:lang="en">
<![CDATA[
Exclude finding route builder from these java package names.
]]>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="includes" type="xs:string">
        <xs:annotation>
          <xs:documentation xml:lang="en">
<![CDATA[
Include finding route builder from these java package names.
]]>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="includeNonSingletons" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Whether to include non-singleton beans (prototypes). By default only singleton beans are included in the context scan.
Default value: false
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="convertBodyDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence/>
        <xs:attribute name="type" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The java type to convert to.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="mandatory" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the conversion is mandatory. If mandatory and conversion is not possible, a NoTypeConversionAvailableException
is thrown. Setting this to false means null may be returned if conversion is not possible. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="charset" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use a specific charset when converting.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="convertHeaderDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence/>
        <xs:attribute name="name" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Name of message header to convert its value. The simple language can be used to define a dynamic evaluated header name.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="type" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The java type to convert to.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="toName" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use another header to store the result. By default, the result is stored in the same header.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="mandatory" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the conversion is mandatory. If mandatory and conversion is not possible, a NoTypeConversionAvailableException
is thrown. Setting this to false means null may be returned if conversion is not possible. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="charset" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use a specific charset when converting.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="convertVariableDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence/>
        <xs:attribute name="name" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Name of variable to convert its value. The simple language can be used to define a dynamic evaluated variable name.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="type" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The java type to convert to.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="toName" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use another variable to store the result. By default, the result is stored in the same variable.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="mandatory" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the conversion is mandatory. If mandatory and conversion is not possible, a NoTypeConversionAvailableException
is thrown. Setting this to false means null may be returned if conversion is not possible. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="charset" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use a specific charset when converting.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="dataFormat">
    <xs:complexContent>
      <xs:extension base="tns:identifiedType">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="delayDefinition">
    <xs:complexContent>
      <xs:extension base="tns:processorDefinition">
        <xs:choice>
          <xs:element ref="tns:expressionDefinition"/>
          <xs:element ref="tns:csimple"/>
          <xs:element ref="tns:constant"/>
          <xs:element ref="tns:datasonnet"/>
          <xs:element ref="tns:exchangeProperty"/>
          <xs:element ref="tns:groovy"/>
          <xs:element ref="tns:header"/>
          <xs:element ref="tns:hl7terser"/>
          <xs:element ref="tns: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:attribute name="asyncDelayed" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Enables asynchronous delay which means the thread will not block while delaying. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="callerRunsWhenRejected" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether or not the caller should run the task when it was rejected by the thread pool. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="executorService" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use a custom thread pool if asyncDelay has been enabled.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="dynamicRouterDefinition">
    <xs:complexContent>
      <xs:extension base="tns:processorDefinition">
        <xs:choice>
          <xs:element ref="tns:expressionDefinition"/>
          <xs:element ref="tns:csimple"/>
          <xs:element ref="tns:constant"/>
          <xs:element ref="tns:datasonnet"/>
          <xs:element ref="tns:exchangeProperty"/>
          <xs:element ref="tns:groovy"/>
          <xs:element ref="tns:header"/>
          <xs:element ref="tns:hl7terser"/>
          <xs:element ref="tns: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:attribute name="uriDelimiter" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The delimiter used to separate endpoint URIs when the expression returns multiple endpoints. Default is comma. Default
value: ,
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ignoreInvalidEndpoints" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If enabled then invalid endpoint URIs are ignored and logged instead of throwing an exception. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="cacheSize" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Configures the cache size for ProducerCache which caches producers for reuse. The default cache size is 1000. Set to -1
to turn off caching.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="enrichDefinition">
    <xs:complexContent>
      <xs:extension base="tns:processorDefinition">
        <xs:choice>
          <xs:element ref="tns:expressionDefinition"/>
          <xs:element ref="tns:csimple"/>
          <xs:element ref="tns:constant"/>
          <xs:element ref="tns:datasonnet"/>
          <xs:element ref="tns:exchangeProperty"/>
          <xs:element ref="tns:groovy"/>
          <xs:element ref="tns:header"/>
          <xs:element ref="tns:hl7terser"/>
          <xs:element ref="tns: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:attribute name="variableSend" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use a variable as the source for the message body to send. When using send variable then the message body is taken
from this variable instead of the current message, however the headers from the message will still be used as well.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="variableReceive" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use a variable to store the received message body (only body, not headers). This makes it handy to use variables for
user data and to easily control what data to use for sending and receiving.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="aggregationStrategy" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the AggregationStrategy to be used to merge the reply from the external service, into a single outgoing message. By
default Camel will use the reply from the external service as outgoing message.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="aggregationStrategyMethodName" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
This option can be used to explicitly declare the method name to use, when using POJOs as the AggregationStrategy.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="aggregationStrategyMethodAllowNull" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If this option is false then the aggregate method is not used if there was no data to enrich. If this option is true
then null values is used as the oldExchange (when no data to enrich), when using POJOs as the AggregationStrategy.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="aggregateOnException" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If this option is false then the aggregate method is not used if there was an exception thrown while trying to retrieve
the data to enrich from the resource. Setting this option to true allows end users to control what to do if there was an
exception in the aggregate method. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="shareUnitOfWork" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Shares the UnitOfWork with the parent and the resource exchange. Enrich will by default not share unit of work between
the parent exchange and the resource exchange. This means the resource exchange has its own individual unit of work.
Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="cacheSize" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the maximum size used by the ProducerCache which is used to cache and reuse producers when uris are reused. Use 0
for default cache size, or -1 to turn cache off.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ignoreInvalidEndpoint" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to ignore an invalid endpoint URI when trying to create a producer with that endpoint. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowOptimisedComponents" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to allow components to optimise enricher if they are SendDynamicAware. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="autoStartComponents" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to auto startup components when enricher is starting up. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="errorHandlerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:identifiedType">
        <xs:sequence>
          <xs:choice minOccurs="0">
            <xs:element ref="tns:deadLetterChannel"/>
            <xs:element ref="tns:defaultErrorHandler"/>
            <xs:element ref="tns:noErrorHandler"/>
            <xs:element ref="tns:refErrorHandler"/>
            <xs:element ref="tns:jtaTransactionErrorHandler"/>
            <xs:element ref="tns:springTransactionErrorHandler"/>
          </xs:choice>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="deadLetterChannelDefinition">
    <xs:complexContent>
      <xs:extension base="tns:defaultErrorHandlerDefinition">
        <xs:sequence/>
        <xs:attribute name="deadLetterUri" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The endpoint URI where failed exchanges are sent after all redelivery attempts have been exhausted (the dead letter
queue).
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="deadLetterHandleNewException" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the dead letter channel should handle (and ignore) any new exception thrown while sending the exchange to the
dead letter endpoint. Set to false to propagate the new exception back, which is useful with transactions so the
transaction can detect the failure and rollback. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="defaultErrorHandlerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:baseErrorHandlerDefinition">
        <xs:sequence>
          <xs:element minOccurs="0" ref="tns:redeliveryPolicy"/>
        </xs:sequence>
        <xs:attribute name="useOriginalMessage" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If enabled, uses the original input message (body and headers) when the exchange is moved to the dead letter queue after
all redelivery attempts have been exhausted. Cannot be used together with useOriginalBody. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="useOriginalBody" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If enabled, uses the original input message body (but not headers) when the exchange is moved to the dead letter queue
after all redelivery attempts have been exhausted. This allows enriching the message with custom headers while keeping
the original body. Cannot be used together with useOriginalMessage. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="redeliveryPolicyRef" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets a reference to a redelivery policy to lookup in the registry to be used.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="loggerRef" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets a reference to a logger to use for logging error handler activity.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="level" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The logging level to use when logging caught exceptions. Default value: ERROR
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="logName" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Name of the logger to use by the error handler.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="onRedeliveryRef" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets a reference to a processor that is invoked before each redelivery attempt. Can be used to change the exchange
before it is redelivered.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="onExceptionOccurredRef" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets a reference to a processor that is invoked just after an exception occurred. Can be used to perform custom logging.
Any exception thrown from this processor is ignored.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="onPrepareFailureRef" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets a reference to a processor to prepare the exchange before handled by the failure processor or dead letter channel.
This allows for example to enrich the message before sending to a dead letter queue.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="retryWhileRef" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets a reference to a retry while predicate. Redelivery continues as long as the predicate evaluates to true.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="executorServiceRef" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets a reference to a thread pool to be used for asynchronous redelivery.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="baseErrorHandlerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:identifiedType">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="redeliveryPolicyDefinition">
    <xs:complexContent>
      <xs:extension base="tns:identifiedType">
        <xs:sequence/>
        <xs:attribute name="maximumRedeliveries" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the maximum number of redeliveries. Use 0 for no redeliveries, or -1 to redeliver forever.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="redeliveryDelay" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the initial delay in milliseconds before the first redelivery attempt. Default value: 1000
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="asyncDelayedRedelivery" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Allow asynchronous delayed redelivery. The route, in particular the consumer's component, must support the Asynchronous
Routing Engine (e.g. seda). Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="backOffMultiplier" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the multiplier applied to the previous redelivery delay to compute the next delay when using exponential backoff.
Default value: 2.0
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="useExponentialBackOff" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Enables exponential backoff, so each subsequent redelivery delay is multiplied by the backOffMultiplier. Default value:
false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="collisionAvoidanceFactor" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the collision avoidance factor, which adds a random percentage of the delay to avoid thundering herd problems when
multiple redeliveries happen simultaneously. 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 collision avoidance, which adds a random factor to redelivery delays to prevent multiple simultaneous
redeliveries from colliding. 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 upper bound on redelivery delay in milliseconds when using exponential backoff, to prevent delays from growing
unbounded. Default value: 60000
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="retriesExhaustedLogLevel" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the logging level to use when all retries have been exhausted and the message is moved to the dead letter channel
or failed. 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 when a redelivery attempt is made. 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 how often to log redelivery attempts. For example, a value of 3 logs every 3rd redelivery attempt. Default value: 1
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="logRetryAttempted" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether retry attempts should be logged or not. Can be used to include or reduce verbose logging. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="logStackTrace" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether stack traces should be logged. Can be used to include or reduce verbose logging. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="logRetryStackTrace" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether stack traces should be logged when a retry attempt failed. Can be used to include or reduce verbose logging.
Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="logHandled" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether handled exceptions should be logged or not. Can be used to include or reduce verbose logging. Default value:
false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="logNewException" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether new exceptions should be logged or not. A new exception is an exception that was thrown while handling a
previous exception. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="logContinued" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether continued exceptions should be logged or not. Can be used to include or reduce verbose logging. Default value:
false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="logExhausted" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether exhausted exceptions should be logged or not. Can be used to include or reduce verbose logging. Default value:
true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="logExhaustedMessageHistory" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether exhausted exceptions should be logged including message history. Can be used to include or reduce verbose
logging. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="logExhaustedMessageBody" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether exhausted message body should be logged including message history. Requires logExhaustedMessageHistory to be
enabled. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="disableRedelivery" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Disables redelivery (same as setting maximum redeliveries to 0). Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="delayPattern" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the delay pattern for redeliveries using a pattern such as '0:1000;5:5000;10:30000' where each entry maps a
redelivery count to a delay in milliseconds (e.g. redeliveries 0-4 use 1s delay, 5-9 use 5s, 10 use 30s).
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowRedeliveryWhileStopping" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Controls whether to allow redelivery while stopping/shutting down a route that uses error handling. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="exchangeFormatterRef" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the reference of the instance of org.apache.camel.spi.ExchangeFormatter to generate the log message from exchange.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="noErrorHandlerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:baseErrorHandlerDefinition">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="refErrorHandlerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:baseErrorHandlerDefinition">
        <xs:sequence/>
        <xs:attribute name="ref" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Reference to an existing or custom error handler to lookup from the registry.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="jtaTransactionErrorHandlerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:transactionErrorHandlerDefinition">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="transactionErrorHandlerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:defaultErrorHandlerDefinition">
        <xs:sequence/>
        <xs:attribute name="transactedPolicyRef" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The transacted policy to use that is configured for either Spring or JTA based transactions. If no policy has been
configured then Camel will attempt to auto-discover.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="rollbackLoggingLevel" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The logging level to use for logging transactional rollback. Default is WARN. Default value: WARN
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="springTransactionErrorHandlerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:transactionErrorHandlerDefinition">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="filterDefinition">
    <xs:complexContent>
      <xs:extension base="tns:processorDefinition">
        <xs:sequence>
          <xs:choice>
            <xs:element ref="tns:expressionDefinition"/>
            <xs:element ref="tns:csimple"/>
            <xs:element ref="tns:constant"/>
            <xs:element ref="tns:datasonnet"/>
            <xs:element ref="tns:exchangeProperty"/>
            <xs:element ref="tns:groovy"/>
            <xs:element ref="tns:header"/>
            <xs:element ref="tns:hl7terser"/>
            <xs:element ref="tns: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:a2aSubTask"/>
            <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="statusPropertyName" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Name of an exchange property to store whether the filter predicate matched or not. The value is stored as a boolean.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="finallyDefinition">
    <xs:complexContent>
      <xs:extension base="tns:output">
        <xs:sequence>
          <xs:choice maxOccurs="unbounded" minOccurs="0">
            <xs:element ref="tns:a2aSubTask"/>
            <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="fromDefinition">
    <xs:complexContent>
      <xs:extension base="tns:optionalIdentifiedDefinition">
        <xs:sequence/>
        <xs:attribute name="uri" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The endpoint URI to consume from.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="variableReceive" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use a variable to store the received message body (only body, not headers). This makes it handy to use variables for
user data and to easily control what data to use for sending and receiving.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="globalOptionDefinition">
    <xs:sequence/>
    <xs:attribute name="key" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Global option key.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="value" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Global option value.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="globalOptionsDefinition">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:globalOption"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="idempotentConsumerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:processorDefinition">
        <xs:sequence>
          <xs:choice>
            <xs:element ref="tns:expressionDefinition"/>
            <xs:element ref="tns:csimple"/>
            <xs:element ref="tns:constant"/>
            <xs:element ref="tns:datasonnet"/>
            <xs:element ref="tns:exchangeProperty"/>
            <xs:element ref="tns:groovy"/>
            <xs:element ref="tns:header"/>
            <xs:element ref="tns:hl7terser"/>
            <xs:element ref="tns: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:a2aSubTask"/>
            <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="idempotentRepository" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the reference name of the message id repository to use for storing processed message ids to detect duplicates.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="eager" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets whether to eagerly add the key to the idempotent repository or wait until the exchange is complete. Eager is
default enabled. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="completionEager" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets whether to complete the idempotent consumer eager or when the exchange is done. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="skipDuplicate" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets whether to skip duplicates or not. The default behavior is to skip duplicates. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="removeOnFailure" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets whether to remove or keep the key on failure. The default behavior is to remove the key on failure. Default value:
true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="inputTypeDefinition">
    <xs:complexContent>
      <xs:extension base="tns:optionalIdentifiedDefinition">
        <xs:sequence/>
        <xs:attribute name="urn" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The input type URN in the format 'scheme:name' (e.g. 'java:com.example.MyClass' or 'json:JsonOrder'). Declares the
expected data type for messages consumed by this route.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="validate" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether validation is required for this input type. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="interceptDefinition">
    <xs:complexContent>
      <xs:extension base="tns:output">
        <xs:sequence>
          <xs:element minOccurs="0" ref="tns:onWhen"/>
          <xs:choice maxOccurs="unbounded" minOccurs="0">
            <xs:element ref="tns:a2aSubTask"/>
            <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="interceptFromDefinition">
    <xs:complexContent>
      <xs:extension base="tns:interceptDefinition">
        <xs:sequence/>
        <xs:attribute name="uri" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Intercept incoming messages from the uri or uri pattern. If not configured, then all incoming messages are intercepted.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="interceptSendToEndpointDefinition">
    <xs:complexContent>
      <xs:extension base="tns:output">
        <xs:sequence>
          <xs:element minOccurs="0" ref="tns:onWhen"/>
          <xs:choice maxOccurs="unbounded" minOccurs="0">
            <xs:element ref="tns:a2aSubTask"/>
            <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="uri" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Intercept sending to the uri or uri pattern.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="skipSendToOriginalEndpoint" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to skip sending the message to the original endpoint. By default, the message is both intercepted and then sent
to the original endpoint. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="afterUri" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
After sending to the endpoint then send the message to this uri which allows to process its result.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="kameletDefinition">
    <xs:complexContent>
      <xs:extension base="tns:output">
        <xs:sequence>
          <xs:choice maxOccurs="unbounded" minOccurs="0">
            <xs:element ref="tns:a2aSubTask"/>
            <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="name" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Name of the Kamelet (templateId/routeId) to call. Options for the kamelet can be specified using uri syntax, eg
mynamecount=4&type=gold.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="loadBalanceDefinition">
    <xs:complexContent>
      <xs:extension base="tns:output">
        <xs:sequence>
          <xs:choice minOccurs="0">
            <xs:element ref="tns:customLoadBalancer"/>
            <xs:element ref="tns:failoverLoadBalancer"/>
            <xs:element ref="tns:randomLoadBalancer"/>
            <xs:element ref="tns:roundRobinLoadBalancer"/>
            <xs:element ref="tns:stickyLoadBalancer"/>
            <xs:element ref="tns:topicLoadBalancer"/>
            <xs:element ref="tns:weightedLoadBalancer"/>
          </xs:choice>
          <xs:choice maxOccurs="unbounded" minOccurs="0">
            <xs:element ref="tns:a2aSubTask"/>
            <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="customLoadBalancerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:loadBalancerDefinition">
        <xs:sequence/>
        <xs:attribute name="ref" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Refers to the custom load balancer to lookup from the registry.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="loadBalancerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:identifiedType">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="failoverLoadBalancerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:loadBalancerDefinition">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="exception" type="xs:string">
            <xs:annotation>
              <xs:documentation xml:lang="en">
<![CDATA[
A list of class names for specific exceptions to monitor. If no exceptions are configured then all exceptions are
monitored.
]]>
              </xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
        <xs:attribute name="roundRobin" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to use round robin mode. If enabled, the load balancer keeps state and continues with the next endpoint in a
round robin fashion. If not, it always starts from the first endpoint for every message. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="sticky" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to use sticky mode. If enabled, the load balancer keeps state and continues with the last known good endpoint.
Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="maximumFailoverAttempts" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
A value to indicate after X failover attempts we should exhaust (give up). Use -1 to indicate never give up and
continuously try to failover. Use 0 to never failover. Use e.g. 3 to failover at most 3 times before giving up. Default
value: -1
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="inheritErrorHandler" type="xs:boolean">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to inherit the error handler. If turned off, the load balancer will fail over immediately on an error instead of
waiting for Camel error handler to exhaust retries. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="randomLoadBalancerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:loadBalancerDefinition">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="roundRobinLoadBalancerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:loadBalancerDefinition">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="stickyLoadBalancerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:loadBalancerDefinition">
        <xs:sequence>
          <xs:element name="correlationExpression" type="tns:expressionSubElementDefinition">
            <xs:annotation>
              <xs:documentation xml:lang="en">
<![CDATA[
The correlation expression to use to calculate the correlation key.
]]>
              </xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="topicLoadBalancerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:loadBalancerDefinition">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="weightedLoadBalancerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:loadBalancerDefinition">
        <xs:sequence/>
        <xs:attribute name="distributionRatio" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The distribution ratio is a delimited String consisting of integer weights separated by delimiters for example 2,3,5.
The distributionRatio must match the number of endpoints and/or processors specified in the load balancer list.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="distributionRatioDelimiter" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Delimiter used to specify the distribution ratio. The default value is comma. Default value: ,
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="roundRobin" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to enable round robin mode. By default the weighted distribution mode is used. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="logDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence/>
        <xs:attribute name="message" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The log message to output. Supports simple language expressions.
]]>
            </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 to use for the log message. Available levels: TRACE, DEBUG, INFO, WARN, ERROR, OFF. Default
value: INFO
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="logName" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The logger name to use. By default the route id is used.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="marker" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
An optional SLF4J marker to use with the log statement.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="logger" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Reference to a custom SLF4J logger instance to use.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="logLanguage" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The language to use for evaluating the log message, such as simple, groovy, or ognl.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="loopDefinition">
    <xs:complexContent>
      <xs:extension base="tns:processorDefinition">
        <xs:sequence>
          <xs:choice>
            <xs:element ref="tns:expressionDefinition"/>
            <xs:element ref="tns:csimple"/>
            <xs:element ref="tns:constant"/>
            <xs:element ref="tns:datasonnet"/>
            <xs:element ref="tns:exchangeProperty"/>
            <xs:element ref="tns:groovy"/>
            <xs:element ref="tns:header"/>
            <xs:element ref="tns:hl7terser"/>
            <xs:element ref="tns: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:a2aSubTask"/>
            <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="copy" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If enabled, a copy of the input Exchange is used for each iteration. That means each iteration will start from a copy of
the same message. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="doWhile" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Enables the while loop that loops until the predicate evaluates to false or null. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="breakOnShutdown" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If enabled, the loop will not iterate until it reaches the end when Camel is shut down. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="onPrepare" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Uses a processor when preparing the exchange for each loop iteration. This can be used to deep-clone messages, or any
custom logic needed before the looping executes.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="marshalDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence>
          <xs:choice minOccurs="0">
            <xs:element ref="tns:asn1"/>
            <xs:element ref="tns:avro"/>
            <xs:element ref="tns:barcode"/>
            <xs:element ref="tns:base64"/>
            <xs:element ref="tns:beanio"/>
            <xs:element ref="tns:bindy"/>
            <xs:element ref="tns:cbor"/>
            <xs:element ref="tns:crypto"/>
            <xs:element ref="tns:csv"/>
            <xs:element ref="tns:custom"/>
            <xs:element ref="tns:dfdl"/>
            <xs:element ref="tns:fhirJson"/>
            <xs:element ref="tns:fhirXml"/>
            <xs:element ref="tns:flatpack"/>
            <xs:element ref="tns:fory"/>
            <xs:element ref="tns:grok"/>
            <xs:element ref="tns:groovyJson"/>
            <xs:element ref="tns:groovyXml"/>
            <xs:element ref="tns:gzipDeflater"/>
            <xs:element ref="tns:hl7"/>
            <xs:element ref="tns:ical"/>
            <xs:element ref="tns:iso8583"/>
            <xs:element ref="tns:jacksonXml"/>
            <xs:element ref="tns:jaxb"/>
            <xs:element ref="tns:json"/>
            <xs:element ref="tns:jsonApi"/>
            <xs:element ref="tns:lzf"/>
            <xs:element ref="tns:mimeMultipart"/>
            <xs:element ref="tns:ocsf"/>
            <xs:element ref="tns:parquetAvro"/>
            <xs:element ref="tns:pgp"/>
            <xs:element ref="tns:pqc"/>
            <xs:element ref="tns:protobuf"/>
            <xs:element ref="tns:rss"/>
            <xs:element ref="tns:smooks"/>
            <xs:element ref="tns:soap"/>
            <xs:element ref="tns:swiftMt"/>
            <xs:element ref="tns:swiftMx"/>
            <xs:element ref="tns:syslog"/>
            <xs:element ref="tns:tarFile"/>
            <xs:element ref="tns:thrift"/>
            <xs:element ref="tns:univocityCsv"/>
            <xs:element ref="tns:univocityFixed"/>
            <xs:element ref="tns:univocityTsv"/>
            <xs:element ref="tns:xmlSecurity"/>
            <xs:element ref="tns:yaml"/>
            <xs:element ref="tns:zipDeflater"/>
            <xs:element ref="tns:zipFile"/>
          </xs:choice>
        </xs:sequence>
        <xs:attribute name="variableSend" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use a variable as the source for the message body to send. This makes it handy to use variables for user data and to
easily control what data to use for sending and receiving.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="variableReceive" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use a variable to store the received message body (only body, not headers). This makes it handy to use variables for
user data and to easily control what data to use for sending and receiving.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="asn1DataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="unmarshalType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Class to use when unmarshalling.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="usingIterator" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If the asn1 file has more than one entry, the setting this option to true allows working with the splitter EIP to split
each entry individually. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="avroDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="instanceClassName" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Class name to use for marshal and unmarshalling.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="library" type="tns:avroLibrary">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Which Avro library to use. Default value: avroJackson
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="objectMapper" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Lookup and use the existing ObjectMapper with the given id when using Jackson.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="useDefaultObjectMapper" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to lookup and use default Jackson ObjectMapper from the registry. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="unmarshalType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Class name of the java type to use when unmarshalling.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="jsonView" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
When marshalling a POJO to JSON you might want to exclude certain fields from the JSON output. With Jackson you can use
JSON views to accomplish this. This option is to refer to the class which has JsonView annotations.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="include" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If you want to marshal a pojo to JSON, and the pojo has some fields with null values. And you want to skip these null
values, you can set this option to NON_NULL.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowJmsType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Used for JMS users to allow the JMSType header from the JMS spec to specify a FQN classname to use to unmarshal to.
Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="collectionType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Refers to a custom collection type to lookup in the registry to use.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="useList" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To unmarshal to a List of Map or a List of Pojo. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="moduleClassNames" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use custom Jackson modules com.fasterxml.jackson.databind.Module specified as a String with FQN class names. Multiple
classes can be separated by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="moduleRefs" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use custom Jackson modules referred from the Camel registry. Multiple modules can be separated by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="enableFeatures" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Set of features to enable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. Multiple features can be separated
by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="disableFeatures" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Set of features to disable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. Multiple features can be
separated by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowUnmarshallType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If enabled then Jackson is allowed to attempt to use the CamelJacksonUnmarshalType header during the unmarshalling.
Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="timezone" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If set then Jackson will use the Timezone when marshalling/unmarshalling.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="autoDiscoverObjectMapper" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If set to true then Jackson will lookup for an objectMapper into the registry. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="contentTypeHeader" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the data format should set the Content-Type header with the type from the data format. For example
application/xml for data formats marshalling to XML, or application/json for data formats marshalling to JSON. Default
value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="schemaResolver" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Optional schema resolver used to lookup schemas for the data in transit.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="autoDiscoverSchemaResolver" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
When not disabled, the SchemaResolver will be looked up into the registry. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="barcodeDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="barcodeFormat" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Barcode format such as QR-Code. Default value: QR_CODE
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="imageType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Image type of the barcode such as png. Default value: PNG
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="width" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Width of the barcode. Default value: 100
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="height" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Height of the barcode. Default value: 100
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="base64DataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="lineLength" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To specific a maximum line length for the encoded data. By default 76 is used. Default value: 76
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="lineSeparator" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The line separators to use. By default \r\n is used.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="urlSafe" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Instead of emitting and / we emit - and _ respectively. urlSafe is only applied to encode operations. Decoding
seamlessly handles both modes. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="beanioDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="mapping" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The BeanIO mapping file. Is by default loaded from the classpath. You can prefix with file:, http:, or classpath: to
denote from where to load the mapping file.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="streamName" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The name of the stream to use.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ignoreUnidentifiedRecords" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to ignore unidentified records. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ignoreUnexpectedRecords" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to ignore unexpected records. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ignoreInvalidRecords" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to ignore invalid records. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="encoding" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The charset to use. Is by default the JVM platform default charset.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="beanReaderErrorHandlerType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use a custom org.apache.camel.dataformat.beanio.BeanIOErrorHandler as error handler while parsing. Configure the
fully qualified class name of the error handler.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="unmarshalSingleObject" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
This option controls whether to unmarshal as a list of objects or as a single object only. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="bindyDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="type" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to use Csv, Fixed, or KeyValue.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="classType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Name of model class to use.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="defaultValueStringAsNull" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To change the default value for string types to be null instead of an empty string. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowEmptyStream" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to allow empty streams in the unmarshal process. If true, no exception will be thrown when a body without
records is provided. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="unwrapSingleInstance" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
When unmarshalling should a single instance be unwrapped and returned instead of wrapped in a java.util.List. Default
value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="locale" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To configure a default locale to use, such as us for united states. To use the JVM platform default locale then use the
name default.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="cborDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="objectMapper" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Lookup and use the existing CBOR ObjectMapper with the given id when using Jackson.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="useDefaultObjectMapper" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to lookup and use default Jackson CBOR ObjectMapper from the registry. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="unmarshalType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Class name of the java type to use when unmarshalling.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="collectionType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Refers to a custom collection type to lookup in the registry to use.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="useList" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To unmarshal to a List of Map or a List of Pojo. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowUnmarshallType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If enabled then Jackson CBOR is allowed to attempt to use the CamelCBORUnmarshalType header during the unmarshalling.
Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="prettyPrint" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To enable pretty printing output nicely formatted. Is by default false. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowJmsType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Used for JMS users to allow the JMSType header from the JMS spec to specify a FQN classname to use to unmarshal to.
Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="enableFeatures" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Set of features to enable on the Jackson ObjectMapper. Multiple features can be separated by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="disableFeatures" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Set of features to disable on the Jackson ObjectMapper. Multiple features can be separated by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="cryptoDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="algorithm" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The JCE algorithm name indicating the cryptographic algorithm that will be used.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="key" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Refers to the secret key to lookup from the register to use.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="cryptoProvider" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The name of the JCE Security Provider that should be used.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="initVector" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Refers to a byte array containing the Initialization Vector that will be used to initialize the Cipher.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="algorithmParameterSpec" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
A JCE AlgorithmParameterSpec used to initialize the Cipher.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="bufferSize" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The size of the buffer used in the signature process. Default value: 4096
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="macAlgorithm" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The JCE algorithm name indicating the Message Authentication algorithm. Default value: HmacSHA1
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="shouldAppendHMAC" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Flag indicating that a Message Authentication Code should be calculated and appended to the encrypted data. Default
value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="inline" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Flag indicating that the configured IV should be inlined into the encrypted data stream. Is by default false. Default
value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="csvDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="format" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The format to use. Default value: DEFAULT
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="commentMarkerDisabled" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Disables the comment marker of the reference format. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="commentMarker" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the comment marker of the reference format.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="delimiter" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The delimiter to use. The default value is , (comma).
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="escapeDisabled" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to disable the escape character. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="escape" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the escape character to use.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="headerDisabled" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to disable headers. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="header" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To configure the CSV headers. Multiple headers can be separated by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowMissingColumnNames" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to allow missing column names. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ignoreEmptyLines" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to ignore empty lines. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ignoreSurroundingSpaces" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to ignore surrounding spaces. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="nullStringDisabled" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to disable null string handling. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="nullString" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the null string.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="quoteDisabled" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to disable quoting. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="quote" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The quote character to use. The default is double-quote character.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="recordSeparatorDisabled" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to disable the record separator. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="recordSeparator" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The record separator (aka new line) which by default is new line characters (CRLF).
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="skipHeaderRecord" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to skip the header record in the output. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="quoteMode" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the quote mode.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ignoreHeaderCase" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to ignore case when accessing header names. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="trim" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to trim leading and trailing blanks. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="trailingDelimiter" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to add a trailing delimiter. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="marshallerFactoryRef" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the implementation of the CsvMarshallerFactory interface which is able to customize marshalling/unmarshalling
behavior.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="lazyLoad" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the unmarshalling should produce an iterator that reads the lines on the fly or if all the lines must be read at
one. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="useMaps" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the unmarshalling should produce maps (HashMap) for the lines values instead of lists. It requires to have
header (either defined or collected). Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="useOrderedMaps" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the unmarshalling should produce ordered maps (LinkedHashMap) for the lines values instead of lists. It requires
to have header (either defined or collected). Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="recordConverterRef" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Refers to a custom CsvRecordConverter to lookup from the registry to use.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="captureHeaderRecord" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the unmarshalling should capture the header record and store it in the message header. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="customDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="ref" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Reference to the custom DataFormat to lookup from the Camel registry.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="dfdlDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="schemaUri" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The path to the DFDL schema file.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="rootElement" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The root element name of the schema to use. If not specified, the first root element in the schema will be used.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="rootNamespace" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The root namespace of the schema to use.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="fhirJsonDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:fhirDataformat">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="fhirDataformat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="fhirVersion" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The version of FHIR to use. Possible values are: DSTU2, DSTU2_HL7ORG, DSTU2_1, DSTU3, R4, R5. Default value: R4
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="fhirContext" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use a custom fhir context. Reference to object of type ca.uhn.fhir.context.FhirContext.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="prettyPrint" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the pretty print flag, meaning that the parser will encode resources with human-readable spacing and newlines
between elements. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="parserErrorHandler" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Registers an error handler which will be invoked when any parse errors are found. Reference to object of type
ca.uhn.fhir.parser.IParserErrorHandler.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="parserOptions" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the parser options object which will be used to supply default options to newly created parsers. Reference to
object of type ca.uhn.fhir.context.ParserOptions.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="preferTypes" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If set (FQN class names), when parsing resources the parser will try to use the given types when possible. Multiple
class names can be separated by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="forceResourceId" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
When encoding, force this resource ID to be encoded as the resource ID. Reference to object of type
org.hl7.fhir.instance.model.api.IIdType.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="serverBaseUrl" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the server's base URL used by this parser. If a value is set, resource references will be turned into relative
references if they are provided as absolute URLs but have a base matching the given base.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="omitResourceId" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If set to true (default is false) the ID of any resources being encoded will not be included in the output. Default
value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="encodeElementsAppliesToChildResourcesOnly" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If set to true (default is false), the values supplied to setEncodeElements will not be applied to the root resource
(typically a Bundle), but will be applied to any sub-resources contained within it. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="encodeElements" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If provided, specifies the elements which should be encoded, to the exclusion of all others. Multiple elements can be
separated by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="dontEncodeElements" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If provided, specifies the elements which should NOT be encoded. Multiple elements can be separated by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="stripVersionsFromReferences" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If set to true (which is the default), resource references containing a version will have the version removed when the
resource is encoded. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="overrideResourceIdWithBundleEntryFullUrl" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If set to true (which is the default), the Bundle.entry.fullUrl will override the Bundle.entry.resource's resource id if
the fullUrl is defined. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="summaryMode" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If set to true (default is false) only elements marked by the FHIR specification as being summary elements will be
included. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="suppressNarratives" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If set to true (default is false), narratives will not be included in the encoded values. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="dontStripVersionsFromReferencesAtPaths" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If supplied value(s), any resource references at the specified paths will have their resource versions encoded instead
of being automatically stripped during the encoding process. Multiple elements can be separated by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="contentTypeHeader" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the data format should set the Content-Type header with the type from the data format. For example
application/xml for data formats marshalling to XML, or application/json for data formats marshalling to JSON. Default
value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="fhirXmlDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:fhirDataformat">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="flatpackDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="definition" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The flatpack pzmap configuration file. Can be omitted in simpler situations, but its preferred to use the pzmap.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="fixed" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Delimited or fixed. Is by default false = delimited. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="delimiter" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The delimiter char (could be ; , or similar). Default value: ,
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ignoreFirstRecord" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the first line is ignored for delimited files (for the column headers). Is by default true. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowShortLines" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Allows for lines to be shorter than expected and ignores the extra characters. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ignoreExtraColumns" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Allows for lines to be longer than expected and ignores the extra characters. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="textQualifier" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If the text is qualified with a character. Uses quote character by default.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="parserFactory" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
References to a custom parser factory to lookup in the registry.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="foryDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="unmarshalType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Class of the java type to use when unmarshalling.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="requireClassRegistration" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to require register classes. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="threadSafe" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to use the threadsafe Fory. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowAutoWiredFory" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to auto-discover Fory from the registry. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="grokDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="pattern" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The grok pattern to match lines of input.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="flattened" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to use flattened mode. In flattened mode an exception is thrown when there are multiple pattern matches with the
same key. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowMultipleMatchesPerLine" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to allow multiple matches per line. If false, every line of input is matched for the pattern only once.
Otherwise the line can be scanned multiple times when a non-terminal pattern is used. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="namedOnly" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to capture named expressions only or not (i.e. %{IP:ip} but not ${IP}). Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="groovyJSonDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="prettyPrint" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to pretty print output nicely formatted. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="groovyXmlDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="attributeMapping" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to enable attribute mapping. When enabled, keys that start with _ or character will be mapped to an XML
attribute, and vice versa. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="gzipDeflaterDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="hl7DataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="parser" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use a custom HL7 parser.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="validate" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to validate the HL7 message. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="targetFormat" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The target format for marshal output and unmarshal result type. By default, marshal encodes to HL7 ER7 and unmarshal
returns a HAPI Message object. If set to XML, marshal encodes to HL7 XML and unmarshal returns an XML DOM Document.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="icalDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="validating" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to validate the iCal document. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="iso8583DataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="configFile" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The j8583 configuration file to load from classpath. Default value: j8583-config.xml
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="isoType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The default ISO-Type to use.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowAutoWiredMessageFormat" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to auto-discover com.solab.iso8583.MessageFactory from the registry. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="jacksonXMLDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="xmlMapper" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Lookup and use the existing XmlMapper with the given id.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="prettyPrint" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to enable pretty printing output nicely formatted. Is by default false. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="unmarshalType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Class name of the java type to use when unmarshalling.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowUnmarshallType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to allow Jackson to use the CamelJacksonUnmarshalType header during unmarshalling. Should only be enabled when
desired. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="jsonView" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
When marshalling a POJO to JSON you might want to exclude certain fields from the JSON output. With Jackson you can use
JSON views to accomplish this. This option is to refer to the class which has JsonView annotations.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="include" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If you want to marshal a POJO to JSON, and the POJO has some fields with null values. And you want to skip these null
values, you can set this option to NON_NULL.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowJmsType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to allow the JMSType header from the JMS spec to specify a FQN classname to use to unmarshal to. Default value:
false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="collectionType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Refers to a custom collection type to lookup in the registry to use. This option should rarely be used, but allows using
different collection types than java.util.Collection based as default.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="useList" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to unmarshal to a List of Map or a List of Pojo. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="timezone" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If set then Jackson will use the Timezone when marshalling/unmarshalling.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="enableJaxbAnnotationModule" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to enable the JAXB annotations module when using Jackson. When enabled then JAXB annotations can be used by
Jackson. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="moduleClassNames" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use custom Jackson modules com.fasterxml.jackson.databind.Module specified as a String with FQN class names. Multiple
classes can be separated by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="moduleRefs" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use custom Jackson modules referred from the Camel registry. Multiple modules can be separated by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="enableFeatures" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Set of features to enable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that
matches a enum from SerializationFeature, DeserializationFeature, or MapperFeature. Multiple features can be separated
by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="disableFeatures" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Set of features to disable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. The features should be a name
that matches a enum from SerializationFeature, DeserializationFeature, or MapperFeature. Multiple features can be
separated by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="contentTypeHeader" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the data format should set the Content-Type header with the type from the data format. For example
application/xml for data formats marshalling to XML, or application/json for data formats marshalling to JSON. Default
value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="maxStringLength" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Maximum allowed string length when deserializing (in chars or bytes, depending on input context). The default is
20,000,000.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="jaxbDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="contextPath" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Package name where your JAXB classes are located.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="contextPathIsClassName" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
This can be set to true to mark that the contextPath is referring to a classname and not a package name. Default value:
false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="schema" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To validate against an existing schema. You can use the prefix classpath:, file: or http: to specify how the resource
should be resolved. You can separate multiple schema files by using the comma character.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="schemaSeverityLevel" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the schema severity level to use when validating against a schema. The default value of 0 (warning) means that any
error will trigger JAXB to stop. There are the following three levels: 0=warning, 1=error, 2=fatal error. Default value:
0
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="prettyPrint" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To enable pretty printing output nicely formatted. Is by default false. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="objectFactory" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to allow using ObjectFactory classes to create the POJO classes during marshalling. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ignoreJAXBElement" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to ignore JAXBElement elements - only needed to be set to false in very special use-cases. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="mustBeJAXBElement" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether marshalling must be java objects with JAXB annotations. And if not then it fails. This option can be set to
false to relax that, such as when the data is already in XML format. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="filterNonXmlChars" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To ignore non xml characters and replace them with an empty space. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="encoding" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To overrule and use a specific encoding.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="fragment" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To turn on marshalling XML fragment trees. This is useful when generated code does not have XmlRootElement annotation
and you need to unmarshall only part of the tree. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="partClass" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Name of class used for fragment parsing.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="partNamespace" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
XML namespace to use for fragment parsing.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="namespacePrefix" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
When marshalling using JAXB or SOAP then the JAXB implementation will automatically assign namespace prefixes, such as
ns2, ns3, ns4 etc. To control this mapping, Camel allows you to refer to a map which contains the desired mapping.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="xmlStreamWriterWrapper" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use a custom xml stream writer.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="schemaLocation" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To define the location of the schema.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="noNamespaceSchemaLocation" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To define the location of the namespaceless schema.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="jaxbProviderProperties" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Refers to a custom java.util.Map to lookup in the registry containing custom JAXB provider properties to be used with
the JAXB marshaller.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="contentTypeHeader" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the data format should set the Content-Type header with the type from the data format. For example
application/xml for data formats marshalling to XML, or application/json for data formats marshalling to JSON. Default
value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="accessExternalSchemaProtocols" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Only in use if schema validation has been enabled. Restrict access to the protocols specified for external reference set
by the schemaLocation attribute, Import and Include element.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="jsonDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="objectMapper" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Lookup and use the existing ObjectMapper with the given id when using Jackson.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="useDefaultObjectMapper" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to lookup and use default Jackson ObjectMapper from the registry. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="autoDiscoverObjectMapper" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If set to true then Jackson will look for an objectMapper to use from the registry. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="prettyPrint" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To enable pretty printing output nicely formatted. Is by default false. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="library" type="tns:jsonLibrary">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Which json library to use. Default value: Jackson
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="combineUnicodeSurrogates" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Force generator that outputs JSON content to combine surrogate pairs (if any) into 4-byte characters. This should be
preferred when using 4-byte characters such as Japanese. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="unmarshalType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Class name of the java type to use when unmarshalling.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="jsonView" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
When marshalling a POJO to JSON you might want to exclude certain fields from the JSON output. With Jackson you can use
JSON views to accomplish this. This option is to refer to the class which has JsonView annotations.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="include" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If you want to marshal a POJO to JSON, and the POJO has some fields with null values. And you want to skip these null
values, you can set this option to NON_NULL.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowJmsType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Used for JMS users to allow the JMSType header from the JMS spec to specify a FQN classname to use to unmarshal to.
Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="collectionType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Refers to a custom collection type to lookup in the registry to use. This option should rarely be used, but allows using
different collection types than java.util.Collection based as default.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="useList" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To unmarshal to a List of Map or a List of Pojo. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="moduleClassNames" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use custom Jackson modules com.fasterxml.jackson.databind.Module specified as a String with FQN class names. Multiple
classes can be separated by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="moduleRefs" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use custom Jackson modules referred from the Camel registry. Multiple modules can be separated by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="enableFeatures" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Set of features to enable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. Multiple features can be separated
by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="disableFeatures" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Set of features to disable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. Multiple features can be
separated by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowUnmarshallType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If enabled then Jackson is allowed to attempt to use the CamelJacksonUnmarshalType header during the unmarshalling. This
should only be enabled when desired to be used. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="timezone" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If set then Jackson will use the Timezone when marshalling/unmarshalling.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="schemaResolver" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Optional schema resolver used to lookup schemas for the data in transit.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="autoDiscoverSchemaResolver" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
When not disabled, the SchemaResolver will be looked up into the registry. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="namingStrategy" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If set then Jackson will use the the defined Property Naming Strategy.Possible values are: LOWER_CAMEL_CASE,
LOWER_DOT_CASE, LOWER_CASE, KEBAB_CASE, SNAKE_CASE and UPPER_CAMEL_CASE.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="contentTypeHeader" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the data format should set the Content-Type header with the type from the data format. For example
application/xml for data formats marshalling to XML, or application/json for data formats marshalling to JSON. Default
value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="dateFormatPattern" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To configure the date format while marshall or unmarshall Date fields in JSON using Gson.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="maxStringLength" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the maximum string length (in chars or bytes, depending on input context). The default is 20,000,000.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="jsonApiDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="dataFormatTypes" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The classes to take into account for the marshalling. Multiple classes can be separated by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="mainFormatType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The class to take into account while unmarshalling.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="lzfDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="usingParallelCompression" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to enable encoding (compress) using multiple processing cores. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="mimeMultipartDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="multipartSubType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Specify the subtype of the MIME Multipart. Default value: mixed
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="multipartWithoutAttachment" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether a message without attachment is also marshaled into a MIME Multipart (with only one body part). Default value:
false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="headersInline" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the MIME-Multipart headers are part of the message body (true) or are set as Camel headers (false). Default
value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="includeHeaders" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
A regex that defines which Camel headers are also included as MIME headers into the MIME multipart. This only works if
headersInline is set to true.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="binaryContent" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the content of binary parts in the MIME multipart is binary (true) or Base-64 encoded (false). Default value:
false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ocsfDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="objectMapper" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Lookup and use the existing ObjectMapper with the given id when using Jackson.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="useDefaultObjectMapper" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to lookup and use default Jackson ObjectMapper from the registry. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="unmarshalType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Class name of the OCSF event type to use when unmarshalling. Defaults to OcsfEvent.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="collectionType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Refers to a custom collection type to lookup in the registry to use. This option should rarely be used, but allows using
different collection types than java.util.Collection based as default.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="useList" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to unmarshal to a List of OCSF events. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowUnmarshallType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to allow the unmarshal type to be specified via the CamelOcsfUnmarshalType header. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="prettyPrint" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to enable pretty printing output nicely formatted. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="parquetAvroDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="compressionCodecName" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Compression codec to use when marshalling. Default value: GZIP
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="unmarshalType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Class to use when (un)marshalling. If omitted, parquet files are converted into Avro GenericRecords for unmarshalling
and input objects are assumed as GenericRecords for marshalling.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="lazyLoad" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the unmarshalling should produce an iterator of records or read all the records at once. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="pgpDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="keyUserid" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The user ID of the key in the PGP keyring used during encryption. Can also be only a part of a user ID.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="signatureKeyUserid" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
User ID of the key in the PGP keyring used for signing (during encryption) or signature verification (during
decryption).
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="password" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Password used when opening the private key (not used for encryption).
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="signaturePassword" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Password used when opening the private key used for signing (during encryption).
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="keyFileName" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Filename of the keyring; must be accessible as a classpath resource (but you can specify a location in the file system
by using the file: prefix).
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="signatureKeyFileName" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Filename of the keyring to use for signing (during encryption) or for signature verification (during decryption); must
be accessible as a classpath resource (but you can specify a location in the file system by using the file: prefix).
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="signatureKeyRing" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Keyring used for signing/verifying as byte array. You cannot set the signatureKeyFileName and signatureKeyRing at the
same time.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="armored" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
This option will cause PGP to base64 encode the encrypted text, making it available for copy/paste, etc. Default value:
false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="integrity" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Adds an integrity check/sign into the encryption file. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="provider" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Java Cryptography Extension (JCE) provider, default is Bouncy Castle (BC). Alternatively you can use, for example, the
IAIK JCE provider.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="algorithm" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Symmetric key encryption algorithm; possible values are defined in org.bouncycastle.bcpg.SymmetricKeyAlgorithmTags. Only
relevant for encrypting.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="compressionAlgorithm" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Compression algorithm; possible values are defined in org.bouncycastle.bcpg.CompressionAlgorithmTags. Only relevant for
encrypting.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="hashAlgorithm" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Signature hash algorithm; possible values are defined in org.bouncycastle.bcpg.HashAlgorithmTags. Only relevant for
signing.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="signatureVerificationOption" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Controls the behavior for verifying the signature during unmarshaling. Possible values: optional, required, ignore,
no_signature_allowed.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="pqcDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="keyEncapsulationAlgorithm" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The Post-Quantum KEM algorithm to use for key encapsulation. Default value: MLKEM
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="symmetricKeyAlgorithm" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The symmetric encryption algorithm to use with the shared secret. Default value: AES
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="symmetricKeyLength" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The length (in bits) of the symmetric key. Default value: 128
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="keyPair" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Refers to the KeyPair to lookup from the registry to use for KEM operations.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="bufferSize" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The size of the buffer used for streaming encryption/decryption. Default value: 4096
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="provider" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The JCE security provider to use.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="keyGenerator" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Refers to a custom KeyGenerator to lookup from the registry for KEM operations.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="protobufDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="instanceClass" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Name of class to use when unmarshalling.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="objectMapper" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Lookup and use the existing ObjectMapper with the given id when using Jackson.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="useDefaultObjectMapper" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to lookup and use default Jackson ObjectMapper from the registry. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="autoDiscoverObjectMapper" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If set to true then Jackson will lookup for an objectMapper into the registry. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="library" type="tns:protobufLibrary">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Which Protobuf library to use. Default value: GoogleProtobuf
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="unmarshalType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Class name of the java type to use when unmarshalling.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="jsonView" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
When marshalling a POJO to JSON you might want to exclude certain fields from the JSON output. With Jackson you can use
JSON views to accomplish this. This option is to refer to the class which has JsonView annotations.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="include" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If you want to marshal a pojo to JSON, and the pojo has some fields with null values. And you want to skip these null
values, you can set this option to NON_NULL.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowJmsType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Used for JMS users to allow the JMSType header from the JMS spec to specify a FQN classname to use to unmarshal to.
Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="collectionType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Refers to a custom collection type to lookup in the registry to use. This option should rarely be used, but allows using
different collection types than java.util.Collection based as default.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="useList" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To unmarshal to a List of Map or a List of Pojo. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="moduleClassNames" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use custom Jackson modules com.fasterxml.jackson.databind.Module specified as a String with FQN class names. Multiple
classes can be separated by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="moduleRefs" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use custom Jackson modules referred from the Camel registry. Multiple modules can be separated by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="enableFeatures" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Set of features to enable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. Multiple features can be separated
by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="disableFeatures" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Set of features to disable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. Multiple features can be
separated by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowUnmarshallType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If enabled then Jackson is allowed to attempt to use the CamelJacksonUnmarshalType header during the unmarshalling.
Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="timezone" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If set then Jackson will use the Timezone when marshalling/unmarshalling.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="schemaResolver" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Optional schema resolver used to lookup schemas for the data in transit.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="autoDiscoverSchemaResolver" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
When not disabled, the SchemaResolver will be looked up into the registry. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="contentTypeFormat" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Defines a content type format in which protobuf message will be serialized/deserialized from(to) the Java been. The
format can either be native or json for either native protobuf or json fields representation. Default value: native
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="contentTypeHeader" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the data format should set the Content-Type header with the type from the data format. For example
application/xml for data formats marshalling to XML, or application/json for data formats marshalling to JSON. Default
value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="rssDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="smooksDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="smooksConfig" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Path to the Smooks configuration file.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="soapDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="contextPath" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Package name where your JAXB classes are located.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="encoding" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To overrule and use a specific encoding.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="elementNameStrategy" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Refers to an element strategy to lookup from the registry.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="version" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
SOAP version should either be 1.1 or 1.2. Is by default 1.1. Default value: 1.1
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="namespacePrefix" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
When marshalling using JAXB or SOAP then the JAXB implementation will automatic assign namespace prefixes. To control
this mapping, Camel allows you to refer to a map which contains the desired mapping.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="schema" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To validate against an existing schema. You can use the prefix classpath:, file: or http: to specify how the resource
should be resolved. You can separate multiple schema files by using the ',' character.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ignoreUnmarshalledHeaders" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to ignore headers that were not unmarshalled. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="swiftMtDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="writeInJson" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to marshal messages in JSON format. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="swiftMxDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="writeInJson" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to marshal messages in JSON format. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="readMessageId" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The type of MX message to produce when unmarshalling an input stream. If not set, it will be automatically detected from
the namespace used.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="readConfig" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Refers to a specific configuration to use when unmarshalling an input stream to lookup from the registry.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="writeConfig" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Refers to a specific configuration to use when marshalling a message to lookup from the registry.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="syslogDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="tarFileDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="usingIterator" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to use an iterator to split tar entries when the tar file has more than one entry, for use with the splitter EIP
in streaming mode. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowEmptyDirectory" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to allow getting the iterator even if the directory is empty, when the tar file has more than one entry. Default
value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="preservePathElements" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to preserve path elements when the file name contains path elements in the tar file. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="maxDecompressedSize" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The maximum decompressed size of a tar file (in bytes). An IOException is thrown if the decompressed size exceeds this
amount. Set to -1 to disable. Default value: 1073741824
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="thriftDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="instanceClass" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Name of class to use when unmarshalling.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="contentTypeFormat" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The content type format in which thrift message will be serialized/deserialized. The format can be native binary, json,
or simple json. Default value: binary
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="contentTypeHeader" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the data format should set the Content-Type header with the type from the data format. For example
application/xml for data formats marshalling to XML, or application/json for data formats marshalling to JSON. Default
value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="uniVocityCsvDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:uniVocityAbstractDataFormat">
        <xs:sequence/>
        <xs:attribute name="delimiter" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The delimiter of values. Default value: ,
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="quoteAllFields" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether or not all values must be quoted when writing them. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="quote" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The quote symbol. Default value: "
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="quoteEscape" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The quote escape symbol. Default value: "
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="uniVocityAbstractDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:univocityHeader"/>
        </xs:sequence>
        <xs:attribute name="nullValue" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The string representation of a null value.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="skipEmptyLines" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether or not the empty lines must be ignored. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ignoreTrailingWhitespaces" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether or not the trailing white spaces must be ignored. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ignoreLeadingWhitespaces" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether or not the leading white spaces must be ignored. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="headersDisabled" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether or not the headers are disabled. When defined, this option explicitly sets the headers as null which indicates
that there is no header. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="headerExtractionEnabled" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether or not the header must be read in the first line of the test document. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="numberOfRecordsToRead" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The maximum number of record to read.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="emptyValue" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The String representation of an empty value.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="lineSeparator" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The line separator of the files. The default value is to use the JVM platform line separator.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="normalizedLineSeparator" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The normalized line separator of the files. The default value is a new line character.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="comment" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The comment symbol. Default value: #
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="lazyLoad" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the unmarshalling should produce an iterator that reads the lines on the fly or if all the lines must be read at
once. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="asMap" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the unmarshalling should produce maps for the lines values instead of lists. It requires to have header (either
defined or collected). Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="uniVocityHeader">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="length" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Header length.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="uniVocityFixedDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:uniVocityAbstractDataFormat">
        <xs:sequence/>
        <xs:attribute name="padding" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The padding character. The default value is a space.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="skipTrailingCharsUntilNewline" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to skip trailing characters until a new line is found. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="recordEndsOnNewline" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the record ends on a new line. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="uniVocityTsvDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:uniVocityAbstractDataFormat">
        <xs:sequence/>
        <xs:attribute name="escapeChar" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The escape character. Default value: \
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="xmlSecurityDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="xmlCipherAlgorithm" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The cipher algorithm to be used for encryption/decryption of the XML message content. Default value: AES-256-GCM
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="passPhrase" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
A String used as passPhrase to encrypt/decrypt content.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="passPhraseByte" type="xs:base64Binary">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
A byte used as passPhrase to encrypt/decrypt content.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="secureTag" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The XPath reference to the XML Element selected for encryption/decryption. If no tag is specified, the entire payload is
encrypted/decrypted.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="secureTagContents" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
A boolean value to specify whether the XML Element is to be encrypted or the contents of the XML Element. false =
Element Level, true = Element Content Level. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="keyCipherAlgorithm" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The cipher algorithm to be used for encryption/decryption of the asymmetric key. Default value: RSA_OAEP
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="recipientKeyAlias" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The key alias to be used when retrieving the recipient's public or private key from a KeyStore when performing
asymmetric key encryption or decryption.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="keyOrTrustStoreParameters" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Refers to a KeyStore instance to lookup in the registry, which is used for configuration options for creating and
loading a KeyStore instance that represents the sender's trustStore or recipient's keyStore.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="keyPassword" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The password to be used for retrieving the private key from the KeyStore. This key is used for asymmetric decryption.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="digestAlgorithm" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The digest algorithm to use with the RSA OAEP algorithm. Default value: SHA1
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="mgfAlgorithm" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The MGF Algorithm to use with the RSA OAEP algorithm. Default value: MGF1_SHA1
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="addKeyValueForEncryptedKey" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to add the public key used to encrypt the session key as a KeyValue in the EncryptedKey structure or not.
Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="namespace" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Refers to a Map of XML Namespaces of prefix to uri mappings.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="yamlDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="library" type="tns:yamlLibrary">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Which yaml library to use. By default it is SnakeYAML. Default value: SnakeYAML
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="unmarshalType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Class name of the java type to use when unmarshalling.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="constructor" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
BaseConstructor to construct incoming documents.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="representer" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Representer to emit outgoing objects.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="dumperOptions" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
DumperOptions to configure outgoing objects.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="resolver" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Resolver to detect implicit type.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="useApplicationContextClassLoader" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Use ApplicationContextClassLoader as custom ClassLoader. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="prettyFlow" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Force the emitter to produce a pretty YAML document when using the flow style. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowAnyType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Allow any class to be un-marshaled. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="typeFilter" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Set the types SnakeYAML is allowed to un-marshall. Multiple types can be separated by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="maxAliasesForCollections" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Set the maximum amount of aliases allowed for collections. Default value: 50
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowRecursiveKeys" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Set whether recursive keys are allowed. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="zipDeflaterDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="compressionLevel" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Compression level to use (0-9). -1 is default compression, 0 is no compression, and 9 is the best compression. Default
value: -1
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="zipFileDataFormat">
    <xs:complexContent>
      <xs:extension base="tns:dataFormat">
        <xs:sequence/>
        <xs:attribute name="usingIterator" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If the zip file has more than one entry, the setting this option to true, allows working with the splitter EIP, to split
the data using an iterator in a streaming mode. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowEmptyDirectory" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If the zip file has more than one entry, setting this option to true, allows to get the iterator even if the directory
is empty. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="preservePathElements" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If the file name contains path elements, setting this option to true, allows the path to be maintained in the zip file.
Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="maxDecompressedSize" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Set the maximum decompressed size of a zip file (in bytes). The default value if not specified corresponds to 1
gigabyte. Set to -1 to disable setting a maximum decompressed size. Default value: 1073741824
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="modelLifecycleStrategySupport">
    <xs:sequence/>
  </xs:complexType>
  <xs:complexType name="multicastDefinition">
    <xs:complexContent>
      <xs:extension base="tns:output">
        <xs:sequence>
          <xs:choice maxOccurs="unbounded" minOccurs="0">
            <xs:element ref="tns:a2aSubTask"/>
            <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="aggregationStrategy" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Reference to the AggregationStrategy to assemble the replies from the multicasts into a single outgoing message. By
default Camel uses the last reply as the outgoing message.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="aggregationStrategyMethodName" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The method name to use when using a POJO 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 true then null is used as the oldExchange when there is no data to aggregate, when using POJOs as the
AggregationStrategy. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="parallelAggregate" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Deprecated: If enabled then the aggregate method on AggregationStrategy can be called concurrently. Notice that this
would require the implementation of AggregationStrategy to be implemented as thread-safe. By default this is false
meaning that Camel synchronizes the call to the aggregate method. Though in some use-cases this can be used to archive
higher performance when the AggregationStrategy is implemented as thread-safe. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="parallelProcessing" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If enabled then sending messages to the multicasts occurs concurrently. The caller thread still waits until all messages
are fully processed before it continues. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="synchronous" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
When enabled then the same thread is used to continue routing after the multicast is complete, even if parallel
processing is enabled. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="streaming" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If enabled then Camel will process replies out-of-order, in the order they come back. If disabled, Camel will process
replies in the same order as defined by the multicast. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="stopOnException" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If enabled then stops further multicast processing if an exception or failure occurred during processing of an exchange,
and the caused exception will be thrown. The default behavior is to not stop but continue processing till the end.
Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="timeout" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Total timeout in millis when using parallel processing. If the multicast has not been able to process all replies within
the given timeframe, then the timeout triggers and the multicast breaks out and continues. Default value: 0
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="executorService" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Reference to a custom thread pool to use for parallel processing. Setting this option implies parallel processing.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="onPrepare" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Reference to a processor for preparing the exchange to be sent. Can be used to deep-clone messages that should be sent.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="shareUnitOfWork" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Shares the unit of work with the parent and each of the multicast exchanges. By default each multicast exchange has its
own individual unit of work. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="onCompletionDefinition">
    <xs:complexContent>
      <xs:extension base="tns:output">
        <xs:sequence>
          <xs:element minOccurs="0" ref="tns:onWhen"/>
          <xs:choice maxOccurs="unbounded" minOccurs="0">
            <xs:element ref="tns:a2aSubTask"/>
            <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="mode" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Controls when the on-completion callback runs. AfterConsumer (default) runs after the consumer has written the response
back to the caller. BeforeConsumer runs before the consumer writes the response, allowing the on-completion route to
modify the Exchange before it is returned to the caller (e.g. in InOut mode). Default value: AfterConsumer
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="onCompleteOnly" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Will only synchronize when the Exchange completed successfully (no errors). Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="onFailureOnly" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Will only synchronize when the Exchange ended with failure (exception or FAULT message). Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="parallelProcessing" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If enabled then the on completion process will run asynchronously by a separate thread from a thread pool. By default
this is false, meaning the on completion process will run synchronously using the same caller thread as from the route.
Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="executorService" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Refers to a custom Thread Pool to be used for parallel processing. Notice if you set this option, then parallel
processing is automatically implied, and you do not have to enable that option as well.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="useOriginalMessage" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Will use the original input message when an Exchange for this on completion. By default this feature is off. Default
value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="onExceptionDefinition">
    <xs:complexContent>
      <xs:extension base="tns:output">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" name="exception" type="xs:string">
            <xs:annotation>
              <xs:documentation xml:lang="en">
<![CDATA[
A list of exception class names to catch and handle.
]]>
              </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" ref="tns:onWhen"/>
          <xs:element minOccurs="0" name="retryWhile" type="tns:expressionSubElementDefinition">
            <xs:annotation>
              <xs:documentation xml:lang="en">
<![CDATA[
Sets a predicate to control whether redelivery should continue. Redelivery continues as long as the predicate evaluates
to true.
]]>
              </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" ref="tns:redeliveryPolicy"/>
          <xs:element minOccurs="0" name="handled" type="tns:expressionSubElementDefinition">
            <xs:annotation>
              <xs:documentation xml:lang="en">
<![CDATA[
When handled is set to true, the exception is suppressed and not sent back to the caller. The original route stops at
the point of failure and only the steps in this onException block execute. The response returned to the caller is
whatever this onException block produces. Use continued instead if you want to resume the original route from the point
of failure.
]]>
              </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="continued" type="tns:expressionSubElementDefinition">
            <xs:annotation>
              <xs:documentation xml:lang="en">
<![CDATA[
When continued is set to true, the exception is handled and routing continues from the point of failure. Unlike handled,
which stops the original route and only runs the onException block, continued resumes the original route after the
onException steps complete. The exception is considered handled as well.
]]>
              </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:choice maxOccurs="unbounded" minOccurs="0">
            <xs:element ref="tns:a2aSubTask"/>
            <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="redeliveryPolicyRef" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets a reference to a redelivery policy to lookup in the registry to be used.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="onRedeliveryRef" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets a reference to a processor that is invoked before each redelivery attempt. Can be used to change the exchange
before it is redelivered.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="onExceptionOccurredRef" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets a reference to a processor that is invoked just after an exception occurred. Can be used to perform custom logging.
Any exception thrown from this processor is ignored.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="useOriginalMessage" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If enabled, uses the original input message (body and headers) when the exchange is moved to the dead letter queue after
all redelivery attempts have been exhausted. Cannot be used together with useOriginalBody. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="useOriginalBody" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If enabled, uses the original input message body (but not headers) when the exchange is moved to the dead letter queue
after all redelivery attempts have been exhausted. This allows enriching the message with custom headers while keeping
the original body. Cannot be used together with useOriginalMessage. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="outputTypeDefinition">
    <xs:complexContent>
      <xs:extension base="tns:optionalIdentifiedDefinition">
        <xs:sequence/>
        <xs:attribute name="urn" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The output type URN, such as java:fully.qualified.ClassName or json:SchemaName.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="validate" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to validate the output type. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="packageScanDefinition">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" name="package" type="xs:string">
        <xs:annotation>
          <xs:documentation xml:lang="en">
<![CDATA[
Java package names to use for scanning for route builder classes.
]]>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="excludes" type="xs:string">
        <xs:annotation>
          <xs:documentation xml:lang="en">
<![CDATA[
Exclude finding route builder from these java package names.
]]>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="includes" type="xs:string">
        <xs:annotation>
          <xs:documentation xml:lang="en">
<![CDATA[
Include finding route builder from these java package names.
]]>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="pausableDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence/>
        <xs:attribute name="consumerListener" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The consumer listener to use for pausing and resuming the consumer.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="untilCheck" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Predicate to evaluate whether the processing can resume. Returns true if consumption can resume, or false otherwise.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="pipelineDefinition">
    <xs:complexContent>
      <xs:extension base="tns:output">
        <xs:sequence>
          <xs:choice maxOccurs="unbounded" minOccurs="0">
            <xs:element ref="tns:a2aSubTask"/>
            <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="policyDefinition">
    <xs:complexContent>
      <xs:extension base="tns:output">
        <xs:sequence>
          <xs:choice maxOccurs="unbounded" minOccurs="0">
            <xs:element ref="tns:a2aSubTask"/>
            <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="ref" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Reference to the policy to lookup in the registry.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="pollDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence/>
        <xs:attribute name="variableReceive" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use a variable to store the received message body (only body, not headers). This makes it handy to use variables for
user data and to easily control what data to use for sending and receiving.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="uri" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The uri of the endpoint to poll a single message from. The result is stored in the original message body (or in a
variable if variableReceive is set).
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="timeout" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Timeout in millis when polling from the external service. The default value is 20000 (20 seconds). Default value: 20000
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="pollEnrichDefinition">
    <xs:complexContent>
      <xs:extension base="tns:processorDefinition">
        <xs:choice>
          <xs:element ref="tns:expressionDefinition"/>
          <xs:element ref="tns: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:attribute name="variableReceive" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use a variable to store the received message body (only body, not headers). This makes it handy to use variables for
user data and to easily control what data to use for sending and receiving.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="aggregationStrategy" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the AggregationStrategy to be used to merge the reply from the external service, into a single outgoing message. By
default Camel will use the reply from the external service as outgoing message.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="aggregationStrategyMethodName" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
This option can be used to explicitly declare the method name to use, when using POJOs as the AggregationStrategy.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="aggregationStrategyMethodAllowNull" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If this option is false then the aggregate method is not used if there was no data to enrich. If this option is true
then null values is used as the oldExchange (when no data to enrich), when using POJOs as the AggregationStrategy.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="aggregateOnException" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If this option is false then the aggregate method is not used if there was an exception thrown while trying to retrieve
the data to enrich from the resource. Setting this option to true allows end users to control what to do if there was an
exception in the aggregate method. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="timeout" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Timeout in millis when polling from the external service. A negative value waits until a message is available (could
block indefinitely). Zero attempts to receive immediately without waiting. A positive value waits up to the given
timeout. Default value: -1
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="cacheSize" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the maximum size used by the ConsumerCache which is used to cache and reuse consumers when uris are reused. Use 0
for default cache size, or -1 to turn cache off.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ignoreInvalidEndpoint" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to ignore an invalid endpoint URI when trying to create a consumer with that endpoint. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowOptimisedComponents" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to allow components to optimise if they are PollDynamicAware. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="autoStartComponents" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to auto startup components when poll enricher is starting up. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="processDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence/>
        <xs:attribute name="ref" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Reference to the Processor to lookup in the registry to use. Can use prefixes such as #bean:, #class:, or #type: to
control how the processor is obtained.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="propertyDefinitions">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:property"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="propertyExpressionDefinition">
    <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:attribute name="key" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
The property key.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="recipientListDefinition">
    <xs:complexContent>
      <xs:extension base="tns:processorDefinition">
        <xs:choice>
          <xs:element ref="tns:expressionDefinition"/>
          <xs:element ref="tns:csimple"/>
          <xs:element ref="tns:constant"/>
          <xs:element ref="tns:datasonnet"/>
          <xs:element ref="tns:exchangeProperty"/>
          <xs:element ref="tns:groovy"/>
          <xs:element ref="tns:header"/>
          <xs:element ref="tns:hl7terser"/>
          <xs:element ref="tns: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:attribute name="delimiter" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Delimiter used if the Expression returned multiple endpoints. Can be turned off using the value false. Default value: ,
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="aggregationStrategy" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the AggregationStrategy to be used to assemble the replies from the recipients, into a single outgoing message.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="aggregationStrategyMethodName" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
This option can be used to explicitly declare the method name to use, when using POJOs as the AggregationStrategy.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="aggregationStrategyMethodAllowNull" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If this option is false then the aggregate method is not used if there was no data to enrich. If this option is true
then null values is used as the oldExchange (when no data to enrich), when using POJOs as the AggregationStrategy.
Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="parallelAggregate" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Deprecated: If enabled then the aggregate method on AggregationStrategy can be called concurrently. Notice that this
would require the implementation of AggregationStrategy to be implemented as thread-safe. By default this is false
meaning that Camel synchronizes the call to the aggregate method. Though in some use-cases this can be used to archive
higher performance when the AggregationStrategy is implemented as thread-safe. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="parallelProcessing" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If enabled then sending messages to the recipients occurs concurrently. Note the caller thread will still wait until all
messages has been fully processed, before it continues. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="synchronous" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets whether synchronous processing should be strictly used. When enabled then the same thread is used to continue
routing after the recipient list is complete, even if parallel processing is enabled. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="timeout" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets a total timeout specified in millis, when using parallel processing. If the Recipient List hasn't been able to send
and process all replies within the given timeframe, then the timeout triggers and the Recipient List breaks out and
continues. Default value: 0
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="executorService" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Refers to a custom Thread Pool to be used for parallel processing. Notice if you set this option, then parallel
processing is automatically implied, and you do not have to enable that option as well.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="stopOnException" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Stops further processing if an exception or failure occurred during processing of an exchange and the caused exception
will be thrown. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ignoreInvalidEndpoints" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to ignore an invalid endpoint URI when trying to create a producer with that endpoint. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="streaming" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If enabled then Camel will process replies out-of-order, eg in the order they come back. If disabled, Camel will process
replies in the same order as defined by the recipient list. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="onPrepare" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Uses the Processor when preparing the exchange to be sent. This can be used to deep-clone messages that should be sent,
or any custom logic needed before the exchange is sent.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="cacheSize" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the maximum size used by the ProducerCache which is used to cache and reuse producers when uris are reused. Use 0
for default cache size, or -1 to turn cache off.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="shareUnitOfWork" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Shares the UnitOfWork with the parent and each of the sub messages. Recipient List will by default not share unit of
work between the parent exchange and each recipient exchange. This means each sub exchange has its own individual unit
of work. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="removeHeaderDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence/>
        <xs:attribute name="name" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Name of header to remove.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="removeHeadersDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence/>
        <xs:attribute name="pattern" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Name or pattern of headers to remove. The pattern supports exact match, wildcard (pattern ends with ), and regular
expression (all case-insensitive).
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="excludePattern" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Name or pattern of headers to not remove. You can use comma to separate multiple patterns.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="removePropertiesDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence/>
        <xs:attribute name="pattern" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Name or pattern of properties to remove. Supports exact match, wildcard (ending with ), and regular expression (all
case-insensitive).
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="excludePattern" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Name or pattern of properties to not remove. You can use comma to separate multiple patterns.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="removePropertyDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence/>
        <xs:attribute name="name" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Name of the exchange property to remove.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="removeVariableDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence/>
        <xs:attribute name="name" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Name of the variable to remove.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="resequenceDefinition">
    <xs:complexContent>
      <xs:extension base="tns:output">
        <xs:sequence>
          <xs:choice minOccurs="0">
            <xs:element ref="tns:batchConfig"/>
            <xs:element ref="tns:streamConfig"/>
          </xs:choice>
          <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:a2aSubTask"/>
            <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="batchResequencerConfig">
    <xs:complexContent>
      <xs:extension base="tns:resequencerConfig">
        <xs:sequence/>
        <xs:attribute name="batchSize" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the size of the batch to be re-ordered. The default size is 100. Default value: 100
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="batchTimeout" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the timeout for collecting elements to be re-ordered. The default timeout is 1000 msec. Default value: 1000
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowDuplicates" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to allow duplicates. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="reverse" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to reverse the ordering. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ignoreInvalidExchanges" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to ignore invalid exchanges. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="resequencerConfig">
    <xs:sequence/>
  </xs:complexType>
  <xs:complexType name="streamResequencerConfig">
    <xs:complexContent>
      <xs:extension base="tns:resequencerConfig">
        <xs:sequence/>
        <xs:attribute name="capacity" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the capacity of the resequencer inbound queue. Default value: 1000
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="timeout" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the minimum time (milliseconds) to wait for missing elements (messages). Default value: 1000
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="deliveryAttemptInterval" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the interval in milliseconds the stream resequencer will at most wait while waiting for the condition of being able
to deliver. Default value: 1000
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ignoreInvalidExchanges" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to ignore invalid exchanges. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="rejectOld" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If true, throws an exception when messages older than the last delivered message are processed. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="comparator" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use a custom comparator for ordering the sequence of messages.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="restContextRefDefinition">
    <xs:sequence/>
    <xs:attribute name="ref" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Reference to the rest-dsl.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="resumableDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence/>
        <xs:attribute name="resumeStrategy" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The resume strategy to use for resuming processing from the last known offset.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="loggingLevel" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The logging level to use in case of failures. Default value: ERROR
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="intermittent" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the offsets will be intermittently present or whether they must be present in every exchange. Default value:
false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="rollbackDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence/>
        <xs:attribute name="message" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The message to set on the exception when rolling back.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="markRollbackOnly" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If enabled then only the current transaction is marked for rollback. No exception is thrown and the route continues to
execute. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="markRollbackOnlyLast" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If enabled then only the last sub-transaction (from the last transacted EIP) is marked for rollback. This allows partial
rollbacks in nested transaction scenarios. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="routeBuilderDefinition">
    <xs:complexContent>
      <xs:extension base="tns:identifiedType">
        <xs:sequence/>
        <xs:attribute name="ref" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Reference to the RouteBuilder instance.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="routeConfigurationContextRefDefinition">
    <xs:sequence/>
    <xs:attribute name="ref" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Reference to the route configuration in the xml-dsl.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="routeConfigurationDefinition">
    <xs:complexContent>
      <xs:extension base="tns:optionalIdentifiedDefinition">
        <xs:sequence>
          <xs:element minOccurs="0" ref="tns:errorHandler"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:intercept"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:interceptFrom"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:interceptSendToEndpoint"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:onException"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:onCompletion"/>
        </xs:sequence>
        <xs:attribute name="precondition" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Predicate in simple language to evaluate whether this route configuration should be included or not.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="routeConfigurationsDefinition">
    <xs:complexContent>
      <xs:extension base="tns:optionalIdentifiedDefinition">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:routeConfiguration"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="routeContextRefDefinition">
    <xs:sequence/>
    <xs:attribute name="ref" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Reference to the routes in the xml-dsl.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="routeDefinition">
    <xs:complexContent>
      <xs:extension base="tns:output">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="routeProperty" type="tns:propertyDefinition"/>
          <xs:element minOccurs="0" ref="tns:errorHandler"/>
          <xs:element minOccurs="0" ref="tns:from"/>
          <xs:element minOccurs="0" ref="tns:inputType"/>
          <xs:element minOccurs="0" ref="tns:outputType"/>
          <xs:choice maxOccurs="unbounded" minOccurs="0">
            <xs:element ref="tns:a2aSubTask"/>
            <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="autoStartup" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to auto start this route. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="delayer" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to slow down processing messages by a given delay in msec. Default value: advanced
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="errorHandlerRef" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets a reference to a custom error handler to use for this route, referring to an error handler by its id in the
registry.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="group" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The group name for this route. Multiple routes can belong to the same group.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="logMask" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether security mask for logging is enabled on this route. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="messageHistory" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether message history is enabled on this route. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="nodePrefixId" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets a prefix to use for all node ids (not route id).
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="precondition" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The predicate of the precondition in simple language to evaluate in order to determine if this route should be included
or not.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="routeConfigurationId" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The route configuration id or pattern this route should use for configuration. Multiple id/pattern can be separated by
comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="routePolicyRef" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Configures a route policy for this route.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="shutdownRoute" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To control how to shutdown the route. Default shuts down the route normally. Defer delays the shutdown so that in-flight
and pending messages are allowed to complete before the route is shutdown.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="shutdownRunningTask" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To control how to handle in-flight and pending messages during shutdown. CompleteCurrentTaskOnly (default) finishes only
the current message. CompleteAllTasks finishes all pending messages (e.g. from a batch consumer or aggregator) before
shutting down.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="startupOrder" type="xs:int">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To configure the ordering of the routes being started.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="streamCache" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether stream caching is enabled on this route. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="trace" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether tracing is enabled on this route. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="routeTemplateContextRefDefinition">
    <xs:sequence/>
    <xs:attribute name="ref" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Reference to the route templates in the xml-dsl.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="routeTemplateDefinition">
    <xs:complexContent>
      <xs:extension base="tns:optionalIdentifiedDefinition">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:templateParameter"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="templateBean" type="tns:beanFactoryDefinition">
            <xs:annotation>
              <xs:documentation xml:lang="en">
<![CDATA[
Adds a local bean the route template uses.
]]>
              </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element ref="tns:route"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="routeTemplateParameterDefinition">
    <xs:sequence/>
    <xs:attribute name="name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
The name of the template parameter.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="required" type="xs:boolean">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Whether this template parameter is required. A required parameter must have a value provided when creating a route from
the template. Default value: false
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="defaultValue" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
The default value of the template parameter. Used when no explicit value is provided when creating a route from the
template.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="description" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Description of the template parameter for documentation purposes.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="routeTemplatesDefinition">
    <xs:complexContent>
      <xs:extension base="tns:optionalIdentifiedDefinition">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:routeTemplate"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="routesDefinition">
    <xs:complexContent>
      <xs:extension base="tns:optionalIdentifiedDefinition">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:route"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="routingSlipDefinition">
    <xs:complexContent>
      <xs:extension base="tns:processorDefinition">
        <xs:choice>
          <xs:element ref="tns:expressionDefinition"/>
          <xs:element ref="tns: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:attribute name="uriDelimiter" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The delimiter used to separate endpoint URIs in the routing slip expression. Default is comma. Default value: ,
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ignoreInvalidEndpoints" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If enabled then invalid endpoint URIs are ignored and logged instead of throwing an exception. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="cacheSize" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Configures the cache size for ProducerCache which caches producers for reuse. The default cache size is 1000. Set to -1
to turn off caching.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="sagaDefinition">
    <xs:complexContent>
      <xs:extension base="tns:output">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="option" type="tns:propertyExpressionDefinition">
            <xs:annotation>
              <xs:documentation xml:lang="en">
<![CDATA[
Allows to save properties of the current exchange in order to re-use them in a compensation/completion callback route.
Option values will be transformed into input headers of the compensation/completion exchange.
]]>
              </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:choice maxOccurs="unbounded" minOccurs="0">
            <xs:element ref="tns:a2aSubTask"/>
            <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="sagaService" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Refers to the id to lookup in the registry for the specific CamelSagaService to use.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="propagation" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Set the Saga propagation mode. REQUIRED joins an existing saga or starts a new one. REQUIRES_NEW always starts a new
saga, suspending any existing one. MANDATORY requires an existing saga and fails if none is active. SUPPORTS joins an
existing saga if present but does not start a new one. NOT_SUPPORTED executes outside any saga, suspending an existing
one. NEVER fails if a saga is already active. Default value: REQUIRED
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="completionMode" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Determine how the saga should be considered complete. When set to AUTO, the saga is completed when the exchange is
processed successfully, or compensated when it completes exceptionally. When set to MANUAL, the user must complete or
compensate the saga using the saga:complete or saga:compensate endpoints. Default value: AUTO
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="timeout" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Set the maximum amount of time for the Saga. After the timeout is expired, the saga will be compensated automatically
(unless a different decision has been taken in the meantime).
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="compensation" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The compensation endpoint URI that must be called to compensate all changes done in the route. The route corresponding
to the compensation URI must perform compensation and complete without error.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="completion" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The completion endpoint URI that will be called when the Saga is completed successfully. The route corresponding to the
completion URI must perform completion tasks and terminate without error.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="samplingDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence/>
        <xs:attribute name="samplePeriod" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The period between samples, using a time-based approach. Default is 1 second. Default value: 1000
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="messageFrequency" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The frequency of samples as a message count, using a message-frequency approach. For example, a value of 5 means every
5th message is sampled.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="scriptDefinition">
    <xs:complexContent>
      <xs:extension base="tns:processorDefinition">
        <xs:choice>
          <xs:element ref="tns:expressionDefinition"/>
          <xs:element ref="tns: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 abstract="true" name="sendDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence/>
        <xs:attribute name="uri" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The uri of the endpoint to send to.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="setBodyDefinition">
    <xs:complexContent>
      <xs:extension base="tns:processorDefinition">
        <xs:choice>
          <xs:element ref="tns:expressionDefinition"/>
          <xs:element ref="tns: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="setExchangePatternDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence/>
        <xs:attribute name="pattern" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The new exchange pattern to use from this point forward.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="setHeaderDefinition">
    <xs:complexContent>
      <xs:extension base="tns:processorDefinition">
        <xs:choice>
          <xs:element ref="tns:expressionDefinition"/>
          <xs:element ref="tns: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:attribute name="name" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Name of message header to set a new value. The simple language can be used to define a dynamic evaluated header name.
Otherwise a constant name will be used.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="setHeadersDefinition">
    <xs:complexContent>
      <xs:extension base="tns:processorDefinition">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:setHeader"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="setPropertyDefinition">
    <xs:complexContent>
      <xs:extension base="tns:processorDefinition">
        <xs:choice>
          <xs:element ref="tns:expressionDefinition"/>
          <xs:element ref="tns: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:attribute name="name" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Name of exchange property to set a new value. The simple language can be used to define a dynamic evaluated property
name. Otherwise a constant name will be used.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="setVariableDefinition">
    <xs:complexContent>
      <xs:extension base="tns:processorDefinition">
        <xs:choice>
          <xs:element ref="tns:expressionDefinition"/>
          <xs:element ref="tns:csimple"/>
          <xs:element ref="tns:constant"/>
          <xs:element ref="tns:datasonnet"/>
          <xs:element ref="tns:exchangeProperty"/>
          <xs:element ref="tns:groovy"/>
          <xs:element ref="tns:header"/>
          <xs:element ref="tns:hl7terser"/>
          <xs:element ref="tns: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:attribute name="name" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Name of variable to set a new value. The simple language can be used to define a dynamic evaluated variable name.
Otherwise a constant name will be used.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="setVariablesDefinition">
    <xs:complexContent>
      <xs:extension base="tns:processorDefinition">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:setVariable"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="sortDefinition">
    <xs:complexContent>
      <xs:extension base="tns:processorDefinition">
        <xs:choice>
          <xs:element ref="tns:expressionDefinition"/>
          <xs:element ref="tns: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:attribute name="comparator" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets a reference to lookup for the comparator to use for sorting.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="splitDefinition">
    <xs:complexContent>
      <xs:extension base="tns:processorDefinition">
        <xs:sequence>
          <xs:choice>
            <xs:element ref="tns:expressionDefinition"/>
            <xs:element ref="tns: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:a2aSubTask"/>
            <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="delimiter" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Delimiter used in splitting messages. Can be turned off using the value false. To force not splitting then the delimiter
can be set to single to use the value as a single list. The default value is comma. Default value: ,
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="aggregationStrategy" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Reference to the AggregationStrategy to assemble the replies from the split messages into a single outgoing message. By
default Camel uses the original incoming message.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="aggregationStrategyMethodName" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The method name to use when using a POJO 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 true then null is used as the oldExchange when there is no data to aggregate, when using POJOs as the
AggregationStrategy. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="parallelAggregate" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Deprecated: If enabled then the aggregate method on AggregationStrategy can be called concurrently. Notice that this
would require the implementation of AggregationStrategy to be implemented as thread-safe. By default this is false
meaning that Camel synchronizes the call to the aggregate method. Though in some use-cases this can be used to archive
higher performance when the AggregationStrategy is implemented as thread-safe. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="parallelProcessing" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If enabled then processing each split message occurs concurrently. The caller thread still waits until all messages are
fully processed before it continues. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="synchronous" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
When enabled then the same thread is used to continue routing after the split is complete, even if parallel processing
is enabled. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="streaming" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
When enabled then the splitter splits the original message on-demand, and each split message is processed one by one.
This reduces memory usage as the splitter does not split all messages first. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="stopOnException" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If enabled then stops further split processing if an exception or failure occurred during processing of a split message,
and the caused exception will be thrown. The default behavior is to not stop but continue processing till the end.
Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="timeout" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Total timeout in millis when using parallel processing. If the splitter has not been able to process all replies within
the given timeframe, then the timeout triggers and the splitter breaks out and continues. Default value: 0
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="executorService" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Reference to a custom thread pool to use for parallel processing. Setting this option implies parallel processing.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="onPrepare" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Reference to a processor for preparing the exchange to be sent. Can be used to deep-clone messages that should be sent.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="shareUnitOfWork" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Shares the unit of work with the parent and each of the split messages. By default each split exchange has its own
individual unit of work. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="stepDefinition">
    <xs:complexContent>
      <xs:extension base="tns:output">
        <xs:sequence>
          <xs:choice maxOccurs="unbounded" minOccurs="0">
            <xs:element ref="tns:a2aSubTask"/>
            <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="stopDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="templatedRouteDefinition">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="parameter" type="tns:templatedRouteParameterDefinition">
        <xs:annotation>
          <xs:documentation xml:lang="en">
<![CDATA[
Adds an input parameter of the template to build the route.
]]>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="bean" type="tns:beanFactoryDefinition">
        <xs:annotation>
          <xs:documentation xml:lang="en">
<![CDATA[
Adds a local bean as input of the template to build the route.
]]>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="routeTemplateRef" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
The id of the route template to use to build the route.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="routeId" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
The id of the route built from the route template.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="prefixId" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Sets a prefix to use for all node ids (not route id).
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="group" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
The group name for the route built from this template. Multiple routes can belong to the same group.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="templatedRouteParameterDefinition">
    <xs:sequence/>
    <xs:attribute name="name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
The name of the parameter.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="value" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
The value of the parameter.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="templatedRoutesDefinition">
    <xs:complexContent>
      <xs:extension base="tns:optionalIdentifiedDefinition">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:templatedRoute"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="threadPoolProfileDefinition">
    <xs:complexContent>
      <xs:extension base="tns:optionalIdentifiedDefinition">
        <xs:sequence/>
        <xs:attribute name="defaultProfile" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether this profile is the default thread pool profile. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="poolSize" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the core pool size (number of threads to keep in the pool, even if idle).
]]>
            </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 (the upper bound of threads in the pool).
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="keepAliveTime" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the keep alive time for idle threads before they are terminated. Only applies to threads above the core pool size.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="timeUnit" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the time unit to use for keep alive time. By default SECONDS is used.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="maxQueueSize" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the maximum number of tasks in the work queue. Use -1 or Integer.MAX_VALUE for an unbounded queue.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowCoreThreadTimeOut" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether idle core threads are allowed to timeout and therefore can shrink the pool size below the core pool size.
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.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="threadsDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence/>
        <xs:attribute name="executorService" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To refer to a custom thread pool or use a thread pool profile (as overlay).
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="poolSize" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the core pool size (number of threads to keep in the pool, even if idle).
]]>
            </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 (the upper bound of threads in the pool).
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="keepAliveTime" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the keep alive time for idle threads before they are terminated. Only applies to threads above the core pool size.
]]>
            </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 for the keep alive time. By default SECONDS is used.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="maxQueueSize" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the maximum number of tasks in the work queue. Use -1 or Integer.MAX_VALUE for an unbounded queue.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowCoreThreadTimeOut" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether idle core threads are allowed to timeout and therefore can shrink the pool size below the core pool size.
Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="threadName" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the thread name pattern to use for naming threads created by this thread pool. Default value: Threads
]]>
            </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.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="callerRunsWhenRejected" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to use the caller thread as fallback when a task is rejected being added to the thread pool (when its full).
This is only used as fallback if no rejectedPolicy has been configured, or the thread pool has no configured rejection
handler. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="throttleDefinition">
    <xs:complexContent>
      <xs:extension base="tns:processorDefinition">
        <xs:sequence>
          <xs:choice>
            <xs:element ref="tns:expressionDefinition"/>
            <xs:element ref="tns: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:element minOccurs="0" name="correlationExpression" type="tns:expressionSubElementDefinition">
            <xs:annotation>
              <xs:documentation xml:lang="en">
<![CDATA[
The correlation expression to use for throttle grouping. Exchanges with the same correlation key are throttled together.
]]>
              </xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
        <xs:attribute name="mode" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the throttling mode. TotalRequests limits the total number of requests within a time period. ConcurrentRequests
uses a leaky-bucket algorithm to limit the number of concurrent requests being processed at the same time. Default
value: TotalRequests
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="executorService" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use a custom thread pool (ScheduledExecutorService) by the throttler.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="asyncDelayed" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Enables asynchronous delay which means the thread will not block while delaying. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="callerRunsWhenRejected" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether or not the caller should run the task when it was rejected by the thread pool. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="rejectExecution" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether or not throttler throws the ThrottlerRejectedExecutionException when the exchange exceeds the request limit.
Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="timePeriodMillis" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the time period during which the maximum request count is valid for. Default value: 1000
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="throwExceptionDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence/>
        <xs:attribute name="message" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The message text for the exception to be thrown. Supports simple language expressions.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="exceptionType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The fully qualified class name of the exception to throw. Used together with message.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ref" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Reference to an existing exception instance to lookup from the registry and throw.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="toDefinition">
    <xs:complexContent>
      <xs:extension base="tns:sendDefinition">
        <xs:sequence/>
        <xs:attribute name="variableSend" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use a variable as the source for the message body to send. This makes it handy to use variables for user data and to
easily control what data to use for sending and receiving.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="variableReceive" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use a variable to store the received message body (only body, not headers). This makes it handy to use variables for
user data and to easily control what data to use for sending and receiving.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="pattern" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the optional ExchangePattern to use. If not specified the default exchange pattern is used.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="toDynamicDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence/>
        <xs:attribute name="uri" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The uri of the endpoint to send to. The uri can be dynamic computed using the simple language.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="variableSend" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use a variable as the source for the message body to send. This makes it handy to use variables for user data and to
easily control what data to use for sending and receiving.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="variableReceive" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use a variable to store the received message body (only body, not headers). This makes it handy to use variables for
user data and to easily control what data to use for sending and receiving.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="pattern" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the optional ExchangePattern used to invoke this endpoint.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="cacheSize" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the maximum size used by the ProducerCache which is used to cache and reuse producers when uris are reused. Use 0
for default cache size, or -1 to turn cache off.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ignoreInvalidEndpoint" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to ignore invalid endpoint URIs and skip sending the message. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowOptimisedComponents" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to allow components to optimise toD if they are SendDynamicAware. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="autoStartComponents" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to auto startup components when toD is starting up. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="tokenizerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence>
          <xs:choice minOccurs="0">
            <xs:element ref="tns:langChain4jCharacterTokenizer"/>
            <xs:element ref="tns:langChain4jLineTokenizer"/>
            <xs:element ref="tns:langChain4jParagraphTokenizer"/>
            <xs:element ref="tns:langChain4jSentenceTokenizer"/>
            <xs:element ref="tns:langChain4jWordTokenizer"/>
          </xs:choice>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="langChain4JCharacterTokenizerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:langChain4jTokenizerImplementation">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="langChain4jTokenizerImplementation">
    <xs:complexContent>
      <xs:extension base="tns:tokenizerImplementation">
        <xs:sequence/>
        <xs:attribute name="tokenizerType" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The tokenizer type. Must be one of OPEN_AI, AZURE or QWEN.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="maxTokens" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The maximum number of tokens on each segment.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="maxOverlap" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The maximum number of tokens that can overlap in each segment.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="modelName" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The underlying model name used by the tokenizer. Providing this switches to computing segment sizes in terms of tokens.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="tokenizerImplementation">
    <xs:complexContent>
      <xs:extension base="tns:identifiedType">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="langChain4JLineTokenizerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:langChain4jTokenizerImplementation">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="langChain4JParagraphTokenizerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:langChain4jTokenizerImplementation">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="langChain4JSentenceTokenizerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:langChain4jTokenizerImplementation">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="langChain4JWordTokenizerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:langChain4jTokenizerImplementation">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="transactedDefinition">
    <xs:complexContent>
      <xs:extension base="tns:output">
        <xs:sequence>
          <xs:choice maxOccurs="unbounded" minOccurs="0">
            <xs:element ref="tns:a2aSubTask"/>
            <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="ref" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Reference to lookup a transacted policy in the registry.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="transformDataTypeDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence/>
        <xs:attribute name="fromType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The source data type URN in the format 'scheme:name' (e.g. 'java:com.example.MyClass'). If not specified, the current
message body type is used.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="toType" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The target data type URN in the format 'scheme:name' (e.g. 'json:JsonOrder') that the message body should be transformed
into.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="transformDefinition">
    <xs:complexContent>
      <xs:extension base="tns:processorDefinition">
        <xs:choice>
          <xs:element ref="tns:expressionDefinition"/>
          <xs:element ref="tns: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="tryDefinition">
    <xs:complexContent>
      <xs:extension base="tns:output">
        <xs:sequence>
          <xs:choice maxOccurs="unbounded" minOccurs="0">
            <xs:element ref="tns:a2aSubTask"/>
            <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="unmarshalDefinition">
    <xs:complexContent>
      <xs:extension base="tns:noOutputDefinition">
        <xs:sequence>
          <xs:choice minOccurs="0">
            <xs:element ref="tns:asn1"/>
            <xs:element ref="tns:avro"/>
            <xs:element ref="tns:barcode"/>
            <xs:element ref="tns:base64"/>
            <xs:element ref="tns:beanio"/>
            <xs:element ref="tns:bindy"/>
            <xs:element ref="tns:cbor"/>
            <xs:element ref="tns:crypto"/>
            <xs:element ref="tns:csv"/>
            <xs:element ref="tns:custom"/>
            <xs:element ref="tns:dfdl"/>
            <xs:element ref="tns:fhirJson"/>
            <xs:element ref="tns:fhirXml"/>
            <xs:element ref="tns:flatpack"/>
            <xs:element ref="tns:fory"/>
            <xs:element ref="tns:grok"/>
            <xs:element ref="tns:groovyJson"/>
            <xs:element ref="tns:groovyXml"/>
            <xs:element ref="tns:gzipDeflater"/>
            <xs:element ref="tns:hl7"/>
            <xs:element ref="tns:ical"/>
            <xs:element ref="tns:iso8583"/>
            <xs:element ref="tns:jacksonXml"/>
            <xs:element ref="tns:jaxb"/>
            <xs:element ref="tns:json"/>
            <xs:element ref="tns:jsonApi"/>
            <xs:element ref="tns:lzf"/>
            <xs:element ref="tns:mimeMultipart"/>
            <xs:element ref="tns:ocsf"/>
            <xs:element ref="tns:parquetAvro"/>
            <xs:element ref="tns:pgp"/>
            <xs:element ref="tns:pqc"/>
            <xs:element ref="tns:protobuf"/>
            <xs:element ref="tns:rss"/>
            <xs:element ref="tns:smooks"/>
            <xs:element ref="tns:soap"/>
            <xs:element ref="tns:swiftMt"/>
            <xs:element ref="tns:swiftMx"/>
            <xs:element ref="tns:syslog"/>
            <xs:element ref="tns:tarFile"/>
            <xs:element ref="tns:thrift"/>
            <xs:element ref="tns:univocityCsv"/>
            <xs:element ref="tns:univocityFixed"/>
            <xs:element ref="tns:univocityTsv"/>
            <xs:element ref="tns:xmlSecurity"/>
            <xs:element ref="tns:yaml"/>
            <xs:element ref="tns:zipDeflater"/>
            <xs:element ref="tns:zipFile"/>
          </xs:choice>
        </xs:sequence>
        <xs:attribute name="variableSend" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use a variable as the source for the message body to send. This makes it handy to use variables for user data and to
easily control what data to use for sending and receiving.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="variableReceive" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use a variable to store the received message body (only body, not headers). This makes it handy to use variables for
user data and to easily control what data to use for sending and receiving.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowNullBody" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Indicates whether null is allowed as value of a body to unmarshall. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="validateDefinition">
    <xs:complexContent>
      <xs:extension base="tns:processorDefinition">
        <xs:choice>
          <xs:element ref="tns:expressionDefinition"/>
          <xs:element ref="tns: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:attribute name="predicateExceptionFactory" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Reference to a custom PredicateExceptionFactory for creating the exception when validation fails.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="valueDefinition">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:complexType name="wireTapDefinition">
    <xs:complexContent>
      <xs:extension base="tns:toDynamicDefinition">
        <xs:sequence/>
        <xs:attribute name="copy" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to use a copy of the original exchange. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="dynamicUri" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the uri is dynamic or static. If dynamic then the simple language is used to evaluate a dynamic uri to use as
the wire-tap destination, for each incoming message. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="onPrepare" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Uses a processor when preparing the exchange to be sent. This can be used to deep-clone messages, or any custom logic
needed before the exchange is sent.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="executorService" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Uses a custom thread pool for sending tapped exchanges.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="applicationDefinition">
    <xs:complexContent>
      <xs:extension base="tns:beansDefinition">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="beansDefinition">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="component-scan" type="tns:componentScanDefinition">
        <xs:annotation>
          <xs:documentation xml:lang="en">
<![CDATA[
Component scanning that can auto-discover Camel route builders from the classpath.
]]>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="bean" type="tns:beanFactoryDefinition">
        <xs:annotation>
          <xs:documentation xml:lang="en">
<![CDATA[
List of bean definitions to be registered in the Camel registry.
]]>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="skip"/>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="sslContextParameters">
        <xs:annotation>
          <xs:documentation xml:lang="en">
<![CDATA[
SSL/TLS context parameters configuration.
]]>
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence/>
          <xs:attribute name="id" type="xs:string"/>
          <xs:attribute name="provider" type="xs:string"/>
          <xs:attribute name="secureSocketProtocol" type="xs:string"/>
          <xs:attribute name="certAlias" type="xs:string"/>
          <xs:attribute name="sessionTimeout" type="xs:string"/>
          <xs:attribute name="cipherSuites" type="xs:string"/>
          <xs:attribute name="cipherSuitesInclude" type="xs:string"/>
          <xs:attribute name="cipherSuitesExclude" type="xs:string"/>
          <xs:attribute name="namedGroups" type="xs:string"/>
          <xs:attribute name="namedGroupsInclude" type="xs:string"/>
          <xs:attribute name="namedGroupsExclude" type="xs:string"/>
          <xs:attribute name="signatureSchemes" type="xs:string"/>
          <xs:attribute name="signatureSchemesInclude" type="xs:string"/>
          <xs:attribute name="signatureSchemesExclude" type="xs:string"/>
          <xs:attribute name="keyStore" type="xs:string"/>
          <xs:attribute name="keyStoreType" type="xs:string"/>
          <xs:attribute name="keyStoreProvider" type="xs:string"/>
          <xs:attribute name="keystorePassword" type="xs:string"/>
          <xs:attribute name="trustStore" type="xs:string"/>
          <xs:attribute name="trustStorePassword" type="xs:string"/>
          <xs:attribute name="trustAllCertificates" type="xs:string"/>
          <xs:attribute name="keyManagerAlgorithm" type="xs:string"/>
          <xs:attribute name="keyManagerProvider" type="xs:string"/>
          <xs:attribute name="secureRandomAlgorithm" type="xs:string"/>
          <xs:attribute name="secureRandomProvider" type="xs:string"/>
          <xs:attribute name="clientAuthentication" type="xs:string"/>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="dataFormats">
        <xs:annotation>
          <xs:documentation xml:lang="en">
<![CDATA[
List of data formats.
]]>
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="dataFormat" type="tns:dataFormat">
              <xs:annotation>
                <xs:documentation xml:lang="en">
<![CDATA[
Camel data formats.
]]>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:restConfiguration"/>
      <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:rest"/>
      <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:routeConfiguration"/>
      <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:routeTemplate"/>
      <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:templatedRoute"/>
      <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:route"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="componentScanDefinition">
    <xs:sequence/>
    <xs:attribute name="base-package" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="restConfigurationDefinition">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="componentProperty" type="tns:restPropertyDefinition">
        <xs:annotation>
          <xs:documentation xml:lang="en">
<![CDATA[
Allows to configure as many additional properties for the rest component in use.
]]>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="endpointProperty" type="tns:restPropertyDefinition">
        <xs:annotation>
          <xs:documentation xml:lang="en">
<![CDATA[
Allows to configure as many additional properties for the rest endpoint in use.
]]>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="consumerProperty" type="tns:restPropertyDefinition">
        <xs:annotation>
          <xs:documentation xml:lang="en">
<![CDATA[
Allows to configure as many additional properties for the rest consumer in use.
]]>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="dataFormatProperty" type="tns:restPropertyDefinition">
        <xs:annotation>
          <xs:documentation xml:lang="en">
<![CDATA[
Allows to configure as many additional properties for the data formats in use. For example set property prettyPrint to
true to have json outputted in pretty mode.
]]>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="apiProperty" type="tns:restPropertyDefinition">
        <xs:annotation>
          <xs:documentation xml:lang="en">
<![CDATA[
Allows to configure as many additional properties for the api documentation.
]]>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="corsHeaders" type="tns:restPropertyDefinition">
        <xs:annotation>
          <xs:documentation xml:lang="en">
<![CDATA[
Allows to configure custom CORS headers.
]]>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="validationLevels" type="tns:restPropertyDefinition">
        <xs:annotation>
          <xs:documentation xml:lang="en">
<![CDATA[
Allows to configure custom validation levels when using camel-openapi-validator with client request/response validator.
]]>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="component" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
The Camel Rest component to use for the REST transport (consumer), such as netty-http, jetty, servlet, undertow.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="apiComponent" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
The name of the Camel component to use as the REST API (such as OpenApi).
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="producerComponent" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Sets the name of the Camel component to use as the REST producer.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="scheme" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
The scheme to use for exposing the REST service. Usually http or https is supported.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="host" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
The hostname to use for exposing the REST service.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="port" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
The port number to use for exposing the REST service.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="apiHost" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
To use a specific hostname for the API documentation (such as swagger or openapi). This can be used to override the
generated host with this configured hostname.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="useXForwardHeaders" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Whether to use X-Forward headers to set host etc. for OpenApi. This may be needed in special cases involving
reverse-proxy and networking going from HTTP to HTTPS etc. Default value: false
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="producerApiDoc" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Sets the location of the api document the REST producer will use to validate the REST uri and query parameters are valid
accordingly to the api document.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="contextPath" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Sets a leading context-path the REST services will be using. This can be used when using components such as
camel-servlet where the deployed web application is deployed using a context-path.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="apiContextPath" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Sets a leading context-path the REST API will be using.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="apiContextRouteId" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Sets the route id to use for the route that services the REST API. The route will by default use an auto assigned route
id.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="apiVendorExtension" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Whether vendor extension is enabled in the Rest APIs. If enabled then Camel will include additional information as
vendor extension (eg keys starting with x-) such as route ids, class names etc. Default value: false
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="hostNameResolver" type="tns:restHostNameResolver">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
If no hostname has been explicit configured, then this resolver is used to compute the hostname the REST service will be
using. Default value: allLocalIp
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="bindingMode" type="tns:restBindingMode">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Sets the binding mode for automatic marshalling and unmarshalling of request and response bodies. off (default) disables
binding. auto detects JSON or XML from the Content-Type header. json binds using a JSON data format only. xml binds
using an XML data format only. json_xml supports both JSON and XML. Default value: off
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="bindingPackageScan" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Package name to use as base (offset) for classpath scanning of POJO classes are located when using binding mode is
enabled for JSon or XML. Multiple package names can be separated by comma.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="skipBindingOnErrorCode" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error
messages that do not bind to json / xml etc, as success messages otherwise will do. Default value: false
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="clientRequestValidation" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Whether to enable validation of the client request to check whether Content-Type/Accept headers, required parameters,
and message body are valid. Default value: false
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="clientResponseValidation" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Whether to validate what Camel is returning as response to the client, such as checking status-code, Content-Type, and
headers match the Rest DSL response definition. Default value: false
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="enableCORS" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Whether to enable CORS headers in the HTTP response. Default value: false
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="enableNoContentResponse" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Whether to return HTTP 204 with an empty body when a response contains an empty JSON object or XML root object. Default
value: false
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="inlineRoutes" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Inline routes in rest-dsl which are linked using direct endpoints. By inlining, Camel can optimize and inline this as a
single route, however this requires to use direct endpoints, which must be unique per service. Default value: true
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="jsonDataFormat" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Name of specific json data format to use. By default jackson will be used. Important: This option is only for setting a
custom name of the data format, not to refer to an existing data format instance. Default value: jackson
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="xmlDataFormat" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Name of specific XML data format to use. By default jaxb will be used. Important: This option is only for setting a
custom name of the data format, not to refer to an existing data format instance. Default value: jaxb
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="restPropertyDefinition">
    <xs:sequence/>
    <xs:attribute name="key" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Property key.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="value" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Property value.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="restDefinition">
    <xs:complexContent>
      <xs:extension base="tns:optionalIdentifiedDefinition">
        <xs:sequence>
          <xs:element minOccurs="0" ref="tns:openApi"/>
          <xs:element minOccurs="0" ref="tns:securityDefinitions"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="securityRequirements" type="tns:securityDefinition">
            <xs:annotation>
              <xs:documentation xml:lang="en">
<![CDATA[
Sets the security requirement(s) for all endpoints.
]]>
              </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:choice maxOccurs="unbounded" minOccurs="0">
            <xs:element ref="tns:delete"/>
            <xs:element ref="tns:get"/>
            <xs:element ref="tns:head"/>
            <xs:element ref="tns:patch"/>
            <xs:element ref="tns:post"/>
            <xs:element ref="tns:put"/>
          </xs:choice>
        </xs:sequence>
        <xs:attribute name="path" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Path of the rest service, such as /foo.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="consumes" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The content type the REST service consumes (accept as input), such as application/xml or application/json. This option
will override what may be configured on a parent level.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="produces" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The content type the REST service produces (uses for output), such as application/xml or application/json. This option
will override what may be configured on a parent level.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="disabled" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to disable this REST service from the route during build time. Once an REST service has been disabled then it
cannot be enabled later at runtime. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="bindingMode" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the binding mode for automatic marshalling and unmarshalling of request and response bodies. off (default) disables
binding. auto detects JSON or XML from the Content-Type header. json binds using a JSON data format only. xml binds
using an XML data format only. json_xml supports both JSON and XML. This option will override what may be configured on
a parent level. Default value: off
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="skipBindingOnErrorCode" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error
messages that do not bind to json / xml etc, as success messages otherwise will do. This option will override what may
be configured on a parent level. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="clientRequestValidation" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to enable validation of the client request to check whether Content-Type/Accept headers, required parameters,
and message body are valid. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="clientResponseValidation" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to validate what Camel is returning as response to the client, such as checking status-code, Content-Type, and
headers match the Rest DSL response definition. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="enableCORS" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to enable CORS headers in the HTTP response. This option will override what may be configured on a parent level.
Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="enableNoContentResponse" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to return HTTP 204 with an empty body when a response contains an empty JSON object or XML root object. Default
value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="apiDocs" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to include or exclude this rest operation in API documentation. This option will override what may be configured
on a parent level. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tag" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To configure a special tag for the operations within this rest definition.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="openApiDefinition">
    <xs:complexContent>
      <xs:extension base="tns:optionalIdentifiedDefinition">
        <xs:sequence/>
        <xs:attribute name="specification" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Path to the OpenAPI specification file.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="apiContextPath" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Context path for exposing the OpenAPI specification file as a REST endpoint, allowing clients to obtain the
specification from the running application.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="routeId" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The route id.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="disabled" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to disable all the REST services from the OpenAPI contract from the route during build time. Once an REST
service has been disabled then it cannot be enabled later at runtime. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="missingOperation" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to fail, ignore or return a mock response for OpenAPI operations that are not mapped to a corresponding route.
Default value: fail
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="mockIncludePattern" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Used for inclusive filtering of mock data from directories. The pattern is using Ant-path style pattern. Multiple
patterns can be specified separated by comma. Default value: classpath:camel-mock/**
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="restSecuritiesDefinition">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded" minOccurs="0">
        <xs:element ref="tns:apiKey"/>
        <xs:element ref="tns:basicAuth"/>
        <xs:element ref="tns:bearerToken"/>
        <xs:element ref="tns:oauth2"/>
        <xs:element ref="tns:openIdConnect"/>
        <xs:element ref="tns:mutualTLS"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="apiKeyDefinition">
    <xs:complexContent>
      <xs:extension base="tns:restSecurityDefinition">
        <xs:sequence/>
        <xs:attribute name="name" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The name of the header or query parameter to be used.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="inHeader" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use header as the location of the API key. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="inQuery" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use query parameter as the location of the API key. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="inCookie" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To use a cookie as the location of the API key. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="restSecurityDefinition">
    <xs:sequence/>
    <xs:attribute name="key" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Key used to refer to this security definition.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="description" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
A short description for the security scheme.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="basicAuthDefinition">
    <xs:complexContent>
      <xs:extension base="tns:restSecurityDefinition">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="bearerTokenDefinition">
    <xs:complexContent>
      <xs:extension base="tns:restSecurityDefinition">
        <xs:sequence/>
        <xs:attribute name="format" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
A hint to the client to identify how the bearer token is formatted.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="oAuth2Definition">
    <xs:complexContent>
      <xs:extension base="tns:restSecurityDefinition">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="scopes" type="tns:restPropertyDefinition">
            <xs:annotation>
              <xs:documentation xml:lang="en">
<![CDATA[
The available scopes for the OAuth2 security scheme.
]]>
              </xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
        <xs:attribute name="authorizationUrl" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The authorization URL to use for this flow. Required for implicit and access code flows.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tokenUrl" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The token URL to use for this flow. Required for password, application, and access code flows.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="refreshUrl" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The URL to use for obtaining refresh tokens.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="flow" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The flow used by the OAuth2 security scheme. Valid values are implicit, password, application or accessCode.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="openIdConnectDefinition">
    <xs:complexContent>
      <xs:extension base="tns:restSecurityDefinition">
        <xs:sequence/>
        <xs:attribute name="url" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
OpenID Connect URL to discover OAuth2 configuration values.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="mutualTLSDefinition">
    <xs:complexContent>
      <xs:extension base="tns:restSecurityDefinition">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="securityDefinition">
    <xs:sequence/>
    <xs:attribute name="key" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Key used to refer to this security definition.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="scopes" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
The scopes to allow (separate multiple scopes by comma).
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType abstract="true" name="verbDefinition">
    <xs:complexContent>
      <xs:extension base="tns:optionalIdentifiedDefinition">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:param"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:responseMessage"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:security"/>
          <xs:element ref="tns:to"/>
        </xs:sequence>
        <xs:attribute name="path" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The path mapping URIs of this REST operation such as /{id}.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="consumes" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The content type the REST service consumes (accept as input), such as application/xml or application/json. This option
will override what may be configured on a parent level.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="produces" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The content type the REST service produces (uses for output), such as application/xml or application/json. This option
will override what may be configured on a parent level.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="disabled" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to disable this REST service from the route during build time. Once an REST service has been disabled then it
cannot be enabled later at runtime. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="type" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the class name to use for binding from input to POJO for the incoming data. This option will override what may be
configured on a parent level.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="outType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the class name to use for binding from POJO to output for the outgoing data. This option will override what may be
configured on a parent level.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="bindingMode" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the binding mode for automatic marshalling and unmarshalling of request and response bodies. off (default) disables
binding. auto detects JSON or XML from the Content-Type header. json binds using a JSON data format only. xml binds
using an XML data format only. json_xml supports both JSON and XML. This option will override what may be configured on
a parent level. Default value: off
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="skipBindingOnErrorCode" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error
messages that do not bind to json / xml etc, as success messages otherwise will do. This option will override what may
be configured on a parent level. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="clientRequestValidation" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to enable validation of the client request to check whether Content-Type/Accept headers, required parameters,
and message body are valid. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="clientResponseValidation" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to validate what Camel is returning as response to the client, such as checking status-code, Content-Type, and
headers match the Rest DSL response definition. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="enableCORS" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to enable CORS headers in the HTTP response. This option will override what may be configured on a parent level.
Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="enableNoContentResponse" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to return HTTP 204 with an empty body when a response contains an empty JSON object or XML root object. Default
value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="apiDocs" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to include or exclude this rest operation in API documentation. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="deprecated" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Marks this rest operation as deprecated in OpenApi documentation. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="streamCache" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether stream caching is enabled on this rest operation. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="routeId" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The route id this REST service will refer to.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="paramDefinition">
    <xs:sequence>
      <xs:element minOccurs="0" name="allowableValues">
        <xs:annotation>
          <xs:documentation xml:lang="en">
<![CDATA[
List of allowable values for the parameter (enum).
]]>
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:value"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="examples" type="tns:restPropertyDefinition">
        <xs:annotation>
          <xs:documentation xml:lang="en">
<![CDATA[
Examples of the parameter.
]]>
          </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 parameter name.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="type" type="tns:restParamType" use="required">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Sets the parameter type such as body, form, header, path, or query. Default value: path
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="description" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Description of the parameter.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="defaultValue" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
The default value of the parameter.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="required" type="xs:boolean">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Sets the parameter required flag. Default value: true
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="collectionFormat" type="tns:collectionFormat">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Sets the parameter collection format. Default value: csv
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="arrayType" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Sets the parameter array type. Required if data type is array. Describes the type of items in the array. Default value:
string
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="dataType" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Sets the parameter data type such as string, integer, or boolean. Default value: string
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="dataFormat" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
The data format of the parameter such as binary, date, date-time, or password.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="responseMessageDefinition">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="header" type="tns:responseHeaderDefinition">
        <xs:annotation>
          <xs:documentation xml:lang="en">
<![CDATA[
The response headers.
]]>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="examples" type="tns:restPropertyDefinition">
        <xs:annotation>
          <xs:documentation xml:lang="en">
<![CDATA[
Examples of response messages.
]]>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="code" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
The response code such as a HTTP status code. Default value: 200
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="contentType" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
The response content type such as application/json.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="message" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
The response message (description).
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="responseModel" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
The response model (class name).
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="responseHeaderDefinition">
    <xs:sequence>
      <xs:element minOccurs="0" name="allowableValues">
        <xs:annotation>
          <xs:documentation xml:lang="en">
<![CDATA[
List of allowable values for the header (enum).
]]>
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:value"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Name of the response header.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="description" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Description of the response header.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="collectionFormat" type="tns:collectionFormat">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Sets the parameter collection format. Default value: csv
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="arrayType" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Sets the parameter array type. Required if data type is array. Describes the type of items in the array. Default value:
string
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="dataType" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Sets the header data type such as string, integer, or boolean. Default value: string
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="dataFormat" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
The data format of the header such as binary, date, date-time, or password.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="example" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
An example value of this response header.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="dataFormatsDefinition">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded" minOccurs="0">
        <xs:element ref="tns:asn1"/>
        <xs:element ref="tns:avro"/>
        <xs:element ref="tns:barcode"/>
        <xs:element ref="tns:base64"/>
        <xs:element ref="tns:beanio"/>
        <xs:element ref="tns:bindy"/>
        <xs:element ref="tns:cbor"/>
        <xs:element ref="tns:crypto"/>
        <xs:element ref="tns:csv"/>
        <xs:element ref="tns:custom"/>
        <xs:element ref="tns:dfdl"/>
        <xs:element ref="tns:fhirJson"/>
        <xs:element ref="tns:fhirXml"/>
        <xs:element ref="tns:flatpack"/>
        <xs:element ref="tns:fory"/>
        <xs:element ref="tns:grok"/>
        <xs:element ref="tns:groovyJson"/>
        <xs:element ref="tns:groovyXml"/>
        <xs:element ref="tns:gzipDeflater"/>
        <xs:element ref="tns:hl7"/>
        <xs:element ref="tns:ical"/>
        <xs:element ref="tns:iso8583"/>
        <xs:element ref="tns:jacksonXml"/>
        <xs:element ref="tns:jaxb"/>
        <xs:element ref="tns:json"/>
        <xs:element ref="tns:jsonApi"/>
        <xs:element ref="tns:lzf"/>
        <xs:element ref="tns:mimeMultipart"/>
        <xs:element ref="tns:ocsf"/>
        <xs:element ref="tns:parquetAvro"/>
        <xs:element ref="tns:pgp"/>
        <xs:element ref="tns:pqc"/>
        <xs:element ref="tns:protobuf"/>
        <xs:element ref="tns:rss"/>
        <xs:element ref="tns:smooks"/>
        <xs:element ref="tns:soap"/>
        <xs:element ref="tns:swiftMt"/>
        <xs:element ref="tns:swiftMx"/>
        <xs:element ref="tns:syslog"/>
        <xs:element ref="tns:tarFile"/>
        <xs:element ref="tns:thrift"/>
        <xs:element ref="tns:univocityCsv"/>
        <xs:element ref="tns:univocityFixed"/>
        <xs:element ref="tns:univocityTsv"/>
        <xs:element ref="tns:xmlSecurity"/>
        <xs:element ref="tns:yaml"/>
        <xs:element ref="tns:zipDeflater"/>
        <xs:element ref="tns:zipFile"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="cSimpleExpression">
    <xs:simpleContent>
      <xs:extension base="tns:typedExpressionDefinition">
        <xs:attribute name="trimResult" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to trim the returned values when this language is in use. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="pretty" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To pretty format the output (only JSon or XML supported). Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="typedExpressionDefinition">
    <xs:simpleContent>
      <xs:extension base="tns:expression">
        <xs:attribute name="resultType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The class of the result type (type from output).
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="constantExpression">
    <xs:simpleContent>
      <xs:extension base="tns:typedExpressionDefinition"/>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="datasonnetExpression">
    <xs:simpleContent>
      <xs:extension base="tns:singleInputTypedExpressionDefinition">
        <xs:attribute name="bodyMediaType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The media type of the message body, such as application/json.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="outputMediaType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The media type to use for the output result.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="singleInputTypedExpressionDefinition">
    <xs:simpleContent>
      <xs:extension base="tns:typedExpressionDefinition">
        <xs:attribute name="source" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Source to use, instead of message body. You can prefix with variable:, header:, or property: to specify kind of source.
Otherwise, the source is assumed to be a variable. Use empty or null to use default source, which is the message body.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="exchangePropertyExpression">
    <xs:simpleContent>
      <xs:extension base="tns:expression"/>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="groovyExpression">
    <xs:simpleContent>
      <xs:extension base="tns:typedExpressionDefinition"/>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="headerExpression">
    <xs:simpleContent>
      <xs:extension base="tns:expression"/>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="hl7TerserExpression">
    <xs:simpleContent>
      <xs:extension base="tns:singleInputTypedExpressionDefinition"/>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="javaExpression">
    <xs:simpleContent>
      <xs:extension base="tns:typedExpressionDefinition">
        <xs:attribute name="preCompile" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the expression should be pre compiled once during initialization phase. If this is turned off, then the
expression is reloaded and compiled on each evaluation. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="singleQuotes" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether single quotes can be used as replacement for double quotes. This is convenient when you need to work with
strings inside strings. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="javaScriptExpression">
    <xs:simpleContent>
      <xs:extension base="tns:typedExpressionDefinition"/>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="joorExpression">
    <xs:simpleContent>
      <xs:extension base="tns:typedExpressionDefinition">
        <xs:attribute name="preCompile" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the expression should be pre compiled once during initialization phase. If this is turned off, then the
expression is reloaded and compiled on each evaluation. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="singleQuotes" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether single quotes can be used as replacement for double quotes. This is convenient when you need to work with
strings inside strings. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="jqExpression">
    <xs:simpleContent>
      <xs:extension base="tns:singleInputTypedExpressionDefinition"/>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="jsonPathExpression">
    <xs:simpleContent>
      <xs:extension base="tns:singleInputTypedExpressionDefinition">
        <xs:attribute name="suppressExceptions" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to suppress exceptions such as PathNotFoundException. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowSimple" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to allow in inlined Simple exceptions in the JSONPath expression. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="allowEasyPredicate" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to allow using the easy predicate parser to pre-parse predicates. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="writeAsString" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to write the output of each row/element as a JSON String value instead of a Map/POJO value. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="unpackArray" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to unpack a single element json-array into an object. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="option" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To configure additional options on JSONPath. Multiple values can be separated by comma.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="languageExpression">
    <xs:simpleContent>
      <xs:extension base="tns:expression">
        <xs:attribute name="language" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The name of the language to use.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="methodCallExpression">
    <xs:simpleContent>
      <xs:extension base="tns:typedExpressionDefinition">
        <xs:attribute name="ref" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Reference to an existing bean (bean id) to lookup in the registry.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="method" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Name of method to call.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="beanType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Class name (fully qualified) of the bean to use. Will lookup in registry and if there is a single instance of the same
type, then the existing bean is used, otherwise a new bean is created (requires a default no-arg constructor).
]]>
            </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. Default value: Singleton
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="validate" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to validate the bean has the configured method. Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="mvelExpression">
    <xs:simpleContent>
      <xs:extension base="tns:typedExpressionDefinition"/>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="namespaceAwareExpression">
    <xs:simpleContent>
      <xs:extension base="tns:singleInputTypedExpressionDefinition"/>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="ognlExpression">
    <xs:simpleContent>
      <xs:extension base="tns:typedExpressionDefinition"/>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="pythonExpression">
    <xs:simpleContent>
      <xs:extension base="tns:typedExpressionDefinition"/>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="refExpression">
    <xs:simpleContent>
      <xs:extension base="tns:typedExpressionDefinition"/>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="simpleExpression">
    <xs:simpleContent>
      <xs:extension base="tns:typedExpressionDefinition">
        <xs:attribute name="trimResult" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to trim the returned values when this language is in use. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="pretty" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To pretty format the output (only JSon or XML supported). Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="nested" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If the result is a nested simple expression should this expression be evaluated as well. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="spELExpression">
    <xs:simpleContent>
      <xs:extension base="tns:typedExpressionDefinition"/>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="tokenizerExpression">
    <xs:simpleContent>
      <xs:extension base="tns:singleInputTypedExpressionDefinition">
        <xs:attribute name="token" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The (start) token to use as tokenizer, for example you can use the new line token. You can use simple language as the
token to support dynamic tokens.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="endToken" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The end token to use as tokenizer if using start/end token pairs. You can use simple language as the token to support
dynamic tokens.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="inheritNamespaceTagName" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To inherit namespaces from a root/parent tag name when using XML. You can use simple language as the tag name to support
dynamic names.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="regex" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
If the token is a regular expression pattern. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="xml" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether the input is XML messages. This option must be set to true if working with XML payloads. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="includeTokens" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to include the tokens in the parts when using pairs. When including tokens then the endToken property must also
be configured (to use pair mode). Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="group" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To group N parts together, for example to split big files into chunks of 1000 lines. You can use simple language as the
group to support dynamic group sizes.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="groupDelimiter" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the delimiter to use when grouping. If this has not been set then token will be used as the delimiter.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="skipFirst" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To skip the very first element. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="variableExpression">
    <xs:simpleContent>
      <xs:extension base="tns:expression"/>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="wasmExpression">
    <xs:simpleContent>
      <xs:extension base="tns:typedExpressionDefinition">
        <xs:attribute name="module" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Set the module (the distributable, loadable, and executable unit of code in WebAssembly) resource that provides the
expression function.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="xmlTokenizerExpression">
    <xs:simpleContent>
      <xs:extension base="tns:namespaceAwareExpression">
        <xs:attribute name="mode" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The extraction mode. The available extraction modes are: i - injecting the contextual namespace bindings into the
extracted token (default), w - wrapping the extracted token in its ancestor context, u - unwrapping the extracted token
to its child content, t - extracting the text content of the specified element. Default value: i
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="group" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
To group N parts together.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="xPathExpression">
    <xs:simpleContent>
      <xs:extension base="tns:namespaceAwareExpression">
        <xs:attribute name="documentType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Name of class for document type. The default value is org.w3c.dom.Document.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="resultQName" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the output type supported by XPath. Default value: NODESET
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="saxon" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to use Saxon. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="factoryRef" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
References to a custom XPathFactory to lookup in the registry.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="objectModel" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The XPath object model to use.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="logNamespaces" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to log namespaces which can assist during troubleshooting. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="threadSafety" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to enable thread-safety for the returned result of the xpath expression. This applies to when using NODESET as
the result type, and the returned set has multiple elements. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="preCompile" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to enable pre-compiling the xpath expression during initialization phase. pre-compile is enabled by default.
Default value: true
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="xQueryExpression">
    <xs:simpleContent>
      <xs:extension base="tns:namespaceAwareExpression">
        <xs:attribute name="configurationRef" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Reference to a saxon configuration instance in the registry to use for xquery (requires camel-saxon).
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="deleteDefinition">
    <xs:complexContent>
      <xs:extension base="tns:verbDefinition">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="getDefinition">
    <xs:complexContent>
      <xs:extension base="tns:verbDefinition">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="headDefinition">
    <xs:complexContent>
      <xs:extension base="tns:verbDefinition">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="patchDefinition">
    <xs:complexContent>
      <xs:extension base="tns:verbDefinition">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="postDefinition">
    <xs:complexContent>
      <xs:extension base="tns:verbDefinition">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="putDefinition">
    <xs:complexContent>
      <xs:extension base="tns:verbDefinition">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="restBindingDefinition">
    <xs:complexContent>
      <xs:extension base="tns:optionalIdentifiedDefinition">
        <xs:sequence/>
        <xs:attribute name="consumes" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The content type the REST service accepts (consumes) as input, such as application/xml or application/json.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="produces" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The content type the REST service produces (uses for output), such as application/xml or application/json.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="bindingMode" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the binding mode for automatic marshalling and unmarshalling of request and response bodies. off (default) disables
binding. auto detects JSON or XML from the Content-Type header. json binds using a JSON data format only. xml binds
using an XML data format only. json_xml supports both JSON and XML. Default value: off
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="type" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the class name to use for binding from input to POJO for the incoming data.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="outType" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the class name to use for binding from POJO to output for the outgoing data.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="skipBindingOnErrorCode" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error
messages that do not bind to json / xml etc, as success messages otherwise will do. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="clientRequestValidation" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to enable validation of the client request to check whether Content-Type/Accept headers, required parameters,
and message body are valid. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="clientResponseValidation" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to validate what Camel is returning as response to the client, such as checking status-code, Content-Type, and
headers match the Rest DSL response definition. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="enableCORS" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to enable CORS headers in the HTTP response. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="enableNoContentResponse" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to return HTTP 204 with an empty body when a response contains an empty JSON object or XML root object. Default
value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="component" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Sets the component name that this definition will apply to.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="restsDefinition">
    <xs:complexContent>
      <xs:extension base="tns:optionalIdentifiedDefinition">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:rest"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="customTransformerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:transformer">
        <xs:sequence/>
        <xs:attribute name="ref" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Reference to a custom Transformer bean in the registry.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="className" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Fully qualified class name of the custom Transformer implementation.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="transformer">
    <xs:sequence/>
    <xs:attribute name="scheme" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Scheme name supported by the transformer. If specified, the transformer will be picked up for all from/to transformation
of this scheme. Scheme matching is performed only when no exactly matched transformer exists.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="name" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
Name under which the transformer gets referenced when specifying input/output data type on routes. If the name matches a
data type scheme, the transformer will be picked up as a fallback.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="fromType" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
The source (from) data type name. If you specify 'xml:XYZ', the transformer is picked up when source type matches. If
you specify just 'xml', it matches all xml source types.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="toType" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
The destination (to) data type name. If you specify 'json:XYZ', the transformer is picked up when destination type
matches. If you specify just 'json', it matches all json destination types.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="dataFormatTransformerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:transformer">
        <xs:sequence>
          <xs:choice minOccurs="0">
            <xs:element ref="tns:asn1"/>
            <xs:element ref="tns:avro"/>
            <xs:element ref="tns:barcode"/>
            <xs:element ref="tns:base64"/>
            <xs:element ref="tns:beanio"/>
            <xs:element ref="tns:bindy"/>
            <xs:element ref="tns:cbor"/>
            <xs:element ref="tns:crypto"/>
            <xs:element ref="tns:csv"/>
            <xs:element ref="tns:custom"/>
            <xs:element ref="tns:dfdl"/>
            <xs:element ref="tns:fhirJson"/>
            <xs:element ref="tns:fhirXml"/>
            <xs:element ref="tns:flatpack"/>
            <xs:element ref="tns:fory"/>
            <xs:element ref="tns:grok"/>
            <xs:element ref="tns:groovyJson"/>
            <xs:element ref="tns:groovyXml"/>
            <xs:element ref="tns:gzipDeflater"/>
            <xs:element ref="tns:hl7"/>
            <xs:element ref="tns:ical"/>
            <xs:element ref="tns:iso8583"/>
            <xs:element ref="tns:jacksonXml"/>
            <xs:element ref="tns:jaxb"/>
            <xs:element ref="tns:json"/>
            <xs:element ref="tns:jsonApi"/>
            <xs:element ref="tns:lzf"/>
            <xs:element ref="tns:mimeMultipart"/>
            <xs:element ref="tns:ocsf"/>
            <xs:element ref="tns:parquetAvro"/>
            <xs:element ref="tns:pgp"/>
            <xs:element ref="tns:pqc"/>
            <xs:element ref="tns:protobuf"/>
            <xs:element ref="tns:rss"/>
            <xs:element ref="tns:smooks"/>
            <xs:element ref="tns:soap"/>
            <xs:element ref="tns:swiftMt"/>
            <xs:element ref="tns:swiftMx"/>
            <xs:element ref="tns:syslog"/>
            <xs:element ref="tns:tarFile"/>
            <xs:element ref="tns:thrift"/>
            <xs:element ref="tns:univocityCsv"/>
            <xs:element ref="tns:univocityFixed"/>
            <xs:element ref="tns:univocityTsv"/>
            <xs:element ref="tns:xmlSecurity"/>
            <xs:element ref="tns:yaml"/>
            <xs:element ref="tns:zipDeflater"/>
            <xs:element ref="tns:zipFile"/>
          </xs:choice>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="endpointTransformerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:transformer">
        <xs:sequence/>
        <xs:attribute name="ref" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Reference of the Endpoint used for transformation.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="uri" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
URI of the Endpoint used for transformation.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="loadTransformerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:transformer">
        <xs:sequence/>
        <xs:attribute name="packageScan" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The classpath location to scan for annotated transformers.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="defaults" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Whether to enable loading of default transformers. Default value: false
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="transformersDefinition">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded" minOccurs="0">
        <xs:element ref="tns:dataFormatTransformer"/>
        <xs:element ref="tns:endpointTransformer"/>
        <xs:element ref="tns:loadTransformer"/>
        <xs:element ref="tns:customTransformer"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="customValidatorDefinition">
    <xs:complexContent>
      <xs:extension base="tns:validator">
        <xs:sequence/>
        <xs:attribute name="ref" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Reference to a custom Validator bean in the registry.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="className" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Fully qualified class name of the custom Validator implementation.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="validator">
    <xs:sequence/>
    <xs:attribute name="type" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="en">
<![CDATA[
The data type name to validate. If you specify 'xml:XYZ', the validator is picked up when message type is 'xml:XYZ'. If
you specify just 'xml', the validator matches all xml message types.
]]>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="endpointValidatorDefinition">
    <xs:complexContent>
      <xs:extension base="tns:validator">
        <xs:sequence/>
        <xs:attribute name="ref" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Reference of the Endpoint used for validation.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="uri" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
URI of the Endpoint used for validation.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="predicateValidatorDefinition">
    <xs:complexContent>
      <xs:extension base="tns:validator">
        <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="validatorsDefinition">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded" minOccurs="0">
        <xs:element ref="tns:endpointValidator"/>
        <xs:element ref="tns:predicateValidator"/>
        <xs:element ref="tns:customValidator"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="camelBeanPostProcessor">
    <xs:sequence/>
  </xs:complexType>
  <xs:complexType name="camelConsumerTemplateFactoryBean">
    <xs:complexContent>
      <xs:extension base="tns:abstractCamelConsumerTemplateFactoryBean">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="camelContextFactoryBean">
    <xs:complexContent>
      <xs:extension base="tns:abstractCamelContextFactoryBean">
        <xs:sequence>
          <xs:element minOccurs="0" ref="tns:globalOptions"/>
          <xs:element minOccurs="0" ref="tns:propertyPlaceholder"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="package" type="xs:string"/>
          <xs:element minOccurs="0" ref="tns:packageScan"/>
          <xs:element minOccurs="0" ref="tns:contextScan"/>
          <xs:element minOccurs="0" ref="tns:streamCaching"/>
          <xs:element minOccurs="0" ref="tns:jmxAgent"/>
          <xs:element minOccurs="0" ref="tns:routeController"/>
          <xs:choice maxOccurs="unbounded" minOccurs="0">
            <xs:element ref="tns:template"/>
            <xs:element ref="tns:fluentTemplate"/>
            <xs:element ref="tns:consumerTemplate"/>
          </xs:choice>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:errorHandler"/>
          <xs:element minOccurs="0" name="defaultResilience4jConfiguration" type="tns:resilience4JConfigurationDefinition"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:resilience4jConfiguration"/>
          <xs:element minOccurs="0" name="defaultFaultToleranceConfiguration" type="tns:faultToleranceConfigurationDefinition"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="faultToleranceConfiguration" type="tns:resilience4JConfigurationDefinition"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:routeConfigurationContextRef"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:routeTemplateContextRef"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:routeBuilder"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:routeContextRef"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:restContextRef"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:threadPoolProfile"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:threadPool"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:endpoint"/>
          <xs:element minOccurs="0" ref="tns:dataFormats"/>
          <xs:element minOccurs="0" ref="tns:transformers"/>
          <xs:element minOccurs="0" ref="tns:validators"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:redeliveryPolicyProfile"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:onException"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:onCompletion"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:intercept"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:interceptFrom"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:interceptSendToEndpoint"/>
          <xs:element minOccurs="0" ref="tns:restConfiguration"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:rest"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:routeConfiguration"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:routeTemplate"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:templatedRoute"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:route"/>
        </xs:sequence>
        <xs:attribute name="depends-on" type="xs:string"/>
        <xs:attribute name="startupSummaryLevel" type="tns:startupSummaryLevel"/>
        <xs:attribute name="trace" type="xs:string"/>
        <xs:attribute name="backlogTrace" type="xs:string"/>
        <xs:attribute name="tracePattern" type="xs:string"/>
        <xs:attribute name="traceLoggingFormat" type="xs:string"/>
        <xs:attribute name="debug" type="xs:string"/>
        <xs:attribute name="messageHistory" type="xs:string"/>
        <xs:attribute name="sourceLocationEnabled" type="xs:string"/>
        <xs:attribute name="logMask" type="xs:string"/>
        <xs:attribute name="logExhaustedMessageBody" type="xs:string"/>
        <xs:attribute name="streamCache" type="xs:string"/>
        <xs:attribute name="delayer" type="xs:string"/>
        <xs:attribute name="errorHandlerRef" type="xs:string"/>
        <xs:attribute name="autoStartup" type="xs:string"/>
        <xs:attribute name="shutdownEager" type="xs:string"/>
        <xs:attribute name="dumpRoutes" type="xs:string"/>
        <xs:attribute name="useMDCLogging" type="xs:string"/>
        <xs:attribute name="mdcLoggingKeysPattern" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
Deprecated: .
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="useDataType" type="xs:string"/>
        <xs:attribute name="useBreadcrumb" type="xs:string"/>
        <xs:attribute name="beanPostProcessorEnabled" type="xs:string"/>
        <xs:attribute name="allowUseOriginalMessage" type="xs:string"/>
        <xs:attribute name="caseInsensitiveHeaders" type="xs:string"/>
        <xs:attribute name="autowiredEnabled" type="xs:string"/>
        <xs:attribute name="runtimeEndpointRegistryEnabled" type="xs:string"/>
        <xs:attribute name="managementNamePattern" type="xs:string"/>
        <xs:attribute name="threadNamePattern" type="xs:string"/>
        <xs:attribute name="shutdownRoute" type="tns:shutdownRoute"/>
        <xs:attribute name="shutdownRunningTask" type="tns:shutdownRunningTask"/>
        <xs:attribute name="loadTypeConverters" type="xs:string"/>
        <xs:attribute name="typeConverterStatisticsEnabled" type="xs:string"/>
        <xs:attribute name="loadHealthChecks" type="xs:string"/>
        <xs:attribute name="inflightRepositoryBrowseEnabled" type="xs:string"/>
        <xs:attribute name="typeConverterExists" type="tns:typeConverterExists"/>
        <xs:attribute name="typeConverterExistsLoggingLevel" type="tns:loggingLevel"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="camelProducerTemplateFactoryBean">
    <xs:complexContent>
      <xs:extension base="tns:abstractCamelProducerTemplateFactoryBean">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="camelFluentProducerTemplateFactoryBean">
    <xs:complexContent>
      <xs:extension base="tns:abstractCamelFluentProducerTemplateFactoryBean">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="springErrorHandlerDefinition">
    <xs:complexContent>
      <xs:extension base="tns:identifiedType">
        <xs:sequence>
          <xs:element minOccurs="0" name="redeliveryPolicy" type="tns:camelRedeliveryPolicyFactoryBean"/>
        </xs:sequence>
        <xs:attribute name="type" type="tns:springErrorHandlerType"/>
        <xs:attribute name="deadLetterUri" type="xs:string"/>
        <xs:attribute name="deadLetterHandleNewException" type="xs:string"/>
        <xs:attribute name="level" type="tns:loggingLevel"/>
        <xs:attribute name="rollbackLoggingLevel" type="tns:loggingLevel"/>
        <xs:attribute name="logName" type="xs:string"/>
        <xs:attribute name="useOriginalMessage" type="xs:boolean"/>
        <xs:attribute name="useOriginalBody" type="xs:boolean"/>
        <xs:attribute name="transactionTemplateRef" type="xs:string"/>
        <xs:attribute name="transactionManagerRef" type="xs:string"/>
        <xs:attribute name="onRedeliveryRef" type="xs:string"/>
        <xs:attribute name="onExceptionOccurredRef" type="xs:string"/>
        <xs:attribute name="onPrepareFailureRef" type="xs:string"/>
        <xs:attribute name="retryWhileRef" type="xs:string"/>
        <xs:attribute name="redeliveryPolicyRef" type="xs:string"/>
        <xs:attribute name="executorServiceRef" type="xs:string"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="camelRedeliveryPolicyFactoryBean">
    <xs:complexContent>
      <xs:extension base="tns:abstractCamelRedeliveryPolicyFactoryBean">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="camelThreadPoolFactoryBean">
    <xs:complexContent>
      <xs:extension base="tns:abstractCamelThreadPoolFactoryBean">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="camelEndpointFactoryBean">
    <xs:complexContent>
      <xs:extension base="tns:abstractCamelEndpointFactoryBean">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="camelRestContextFactoryBean">
    <xs:complexContent>
      <xs:extension base="tns:identifiedType">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" ref="tns:rest"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="camelRouteConfigurationContextFactoryBean">
    <xs:complexContent>
      <xs:extension base="tns:identifiedType">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" ref="tns:routeConfiguration"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="camelRouteContextFactoryBean">
    <xs:complexContent>
      <xs:extension base="tns:identifiedType">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" ref="tns:route"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="camelRouteTemplateContextFactoryBean">
    <xs:complexContent>
      <xs:extension base="tns:identifiedType">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" ref="tns:routeTemplate"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="keyManagersParametersFactoryBean">
    <xs:complexContent>
      <xs:extension base="tns:abstractKeyManagersParametersFactoryBean">
        <xs:sequence>
          <xs:element minOccurs="0" name="keyStore" type="tns:keyStoreParametersFactoryBean"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="keyStoreParametersFactoryBean">
    <xs:complexContent>
      <xs:extension base="tns:abstractKeyStoreParametersFactoryBean">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="sslContextClientParametersFactoryBean">
    <xs:complexContent>
      <xs:extension base="tns:abstractJsseUtilFactoryBean">
        <xs:all>
          <xs:element minOccurs="0" name="cipherSuites" type="tns:cipherSuitesParameters"/>
          <xs:element minOccurs="0" name="cipherSuitesFilter" type="tns:filterParameters"/>
          <xs:element minOccurs="0" name="secureSocketProtocols" type="tns:secureSocketProtocolsParameters"/>
          <xs:element minOccurs="0" name="secureSocketProtocolsFilter" type="tns:filterParameters"/>
          <xs:element minOccurs="0" name="namedGroups" type="tns:namedGroupsParameters"/>
          <xs:element minOccurs="0" name="namedGroupsFilter" type="tns:filterParameters"/>
          <xs:element minOccurs="0" name="signatureSchemes" type="tns:signatureSchemesParameters"/>
          <xs:element minOccurs="0" name="signatureSchemesFilter" type="tns:filterParameters"/>
          <xs:element minOccurs="0" name="sniHostNames" type="tns:sniHostNames"/>
        </xs:all>
        <xs:attribute name="sessionTimeout" type="xs:string"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="sslContextParametersFactoryBean">
    <xs:complexContent>
      <xs:extension base="tns:abstractJsseUtilFactoryBean">
        <xs:all>
          <xs:element minOccurs="0" name="cipherSuites" type="tns:cipherSuitesParameters"/>
          <xs:element minOccurs="0" name="cipherSuitesFilter" type="tns:filterParameters"/>
          <xs:element minOccurs="0" name="secureSocketProtocols" type="tns:secureSocketProtocolsParameters"/>
          <xs:element minOccurs="0" name="secureSocketProtocolsFilter" type="tns:filterParameters"/>
          <xs:element minOccurs="0" name="namedGroups" type="tns:namedGroupsParameters"/>
          <xs:element minOccurs="0" name="namedGroupsFilter" type="tns:filterParameters"/>
          <xs:element minOccurs="0" name="signatureSchemes" type="tns:signatureSchemesParameters"/>
          <xs:element minOccurs="0" name="signatureSchemesFilter" type="tns:filterParameters"/>
          <xs:element minOccurs="0" name="keyManagers" type="tns:keyManagersParametersFactoryBean"/>
          <xs:element minOccurs="0" name="trustManagers" type="tns:trustManagersParametersFactoryBean"/>
          <xs:element minOccurs="0" name="secureRandom" type="tns:secureRandomParametersFactoryBean"/>
          <xs:element minOccurs="0" name="clientParameters" type="tns:sslContextClientParametersFactoryBean"/>
          <xs:element minOccurs="0" name="serverParameters" type="tns:sslContextServerParametersFactoryBean"/>
        </xs:all>
        <xs:attribute name="sessionTimeout" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The optional SSLSessionContext timeout time for javax.net.ssl.SSLSession in seconds.
]]>
            </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 JSSE implementation to use when constructing an SSLContext.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="secureSocketProtocol" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
The protocol for the secure sockets created by the SSLContext represented by this instance'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="certAlias" type="xs:string">
          <xs:annotation>
            <xs:documentation xml:lang="en">
<![CDATA[
An optional certificate alias to use. This is useful when the keystore has multiple certificates.
]]>
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="trustManagersParametersFactoryBean">
    <xs:complexContent>
      <xs:extension base="tns:abstractTrustManagersParametersFactoryBean">
        <xs:sequence>
          <xs:element minOccurs="0" name="keyStore" type="tns:keyStoreParametersFactoryBean"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="secureRandomParametersFactoryBean">
    <xs:complexContent>
      <xs:extension base="tns:abstractSecureRandomParametersFactoryBean">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="sslContextServerParametersFactoryBean">
    <xs:complexContent>
      <xs:extension base="tns:abstractJsseUtilFactoryBean">
        <xs:all>
          <xs:element minOccurs="0" name="cipherSuites" type="tns:cipherSuitesParameters"/>
          <xs:element minOccurs="0" name="cipherSuitesFilter" type="tns:filterParameters"/>
          <xs:element minOccurs="0" name="secureSocketProtocols" type="tns:secureSocketProtocolsParameters"/>
          <xs:element minOccurs="0" name="secureSocketProtocolsFilter" type="tns:filterParameters"/>
          <xs:element minOccurs="0" name="namedGroups" type="tns:namedGroupsParameters"/>
          <xs:element minOccurs="0" name="namedGroupsFilter" type="tns:filterParameters"/>
          <xs:element minOccurs="0" name="signatureSchemes" type="tns:signatureSchemesParameters"/>
          <xs:element minOccurs="0" name="signatureSchemesFilter" type="tns:filterParameters"/>
        </xs:all>
        <xs:attribute name="sessionTimeout" type="xs:string"/>
        <xs:attribute name="clientAuthentication" type="xs:string"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="beanScope">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Singleton"/>
      <xs:enumeration value="Request"/>
      <xs:enumeration value="Prototype"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="exchangePattern">
    <xs:restriction base="xs:string">
      <xs:enumeration value="InOnly"/>
      <xs:enumeration value="InOut"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="loggingLevel">
    <xs:restriction base="xs:string">
      <xs:enumeration value="TRACE"/>
      <xs:enumeration value="DEBUG"/>
      <xs:enumeration value="INFO"/>
      <xs:enumeration value="WARN"/>
      <xs:enumeration value="ERROR"/>
      <xs:enumeration value="OFF"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="managementStatisticsLevel">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Extended"/>
      <xs:enumeration value="Default"/>
      <xs:enumeration value="RoutesOnly"/>
      <xs:enumeration value="Off"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="shutdownRoute">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Default"/>
      <xs:enumeration value="Defer"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="shutdownRunningTask">
    <xs:restriction base="xs:string">
      <xs:enumeration value="CompleteCurrentTaskOnly"/>
      <xs:enumeration value="CompleteAllTasks"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="startupSummaryLevel">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Verbose"/>
      <xs:enumeration value="Default"/>
      <xs:enumeration value="Brief"/>
      <xs:enumeration value="Oneline"/>
      <xs:enumeration value="Off"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="typeConverterExists">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Override"/>
      <xs:enumeration value="Ignore"/>
      <xs:enumeration value="Fail"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="waitForTaskToComplete">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Never"/>
      <xs:enumeration value="IfReplyExpected"/>
      <xs:enumeration value="Always"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="claimCheckOperation">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Get"/>
      <xs:enumeration value="GetAndRemove"/>
      <xs:enumeration value="Set"/>
      <xs:enumeration value="Push"/>
      <xs:enumeration value="Pop"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="avroLibrary">
    <xs:restriction base="xs:string">
      <xs:enumeration value="ApacheAvro"/>
      <xs:enumeration value="Jackson"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="jsonLibrary">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Fastjson"/>
      <xs:enumeration value="Gson"/>
      <xs:enumeration value="Jackson"/>
      <xs:enumeration value="Jsonb"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="protobufLibrary">
    <xs:restriction base="xs:string">
      <xs:enumeration value="GoogleProtobuf"/>
      <xs:enumeration value="Jackson"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="yamlLibrary">
    <xs:restriction base="xs:string">
      <xs:enumeration value="SnakeYAML"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="onCompletionMode">
    <xs:restriction base="xs:string">
      <xs:enumeration value="AfterConsumer"/>
      <xs:enumeration value="BeforeConsumer"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="sagaCompletionMode">
    <xs:restriction base="xs:string">
      <xs:enumeration value="AUTO"/>
      <xs:enumeration value="MANUAL"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="sagaPropagation">
    <xs:restriction base="xs:string">
      <xs:enumeration value="REQUIRED"/>
      <xs:enumeration value="REQUIRES_NEW"/>
      <xs:enumeration value="MANDATORY"/>
      <xs:enumeration value="SUPPORTS"/>
      <xs:enumeration value="NOT_SUPPORTED"/>
      <xs:enumeration value="NEVER"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="throttlingMode">
    <xs:restriction base="xs:string">
      <xs:enumeration value="TotalRequests"/>
      <xs:enumeration value="ConcurrentRequests"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="restHostNameResolver">
    <xs:restriction base="xs:string">
      <xs:enumeration value="allLocalIp"/>
      <xs:enumeration value="localIp"/>
      <xs:enumeration value="localHostName"/>
      <xs:enumeration value="none"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="restBindingMode">
    <xs:restriction base="xs:string">
      <xs:enumeration value="auto"/>
      <xs:enumeration value="off"/>
      <xs:enumeration value="json"/>
      <xs:enumeration value="xml"/>
      <xs:enumeration value="json_xml"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="restParamType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="body"/>
      <xs:enumeration value="formData"/>
      <xs:enumeration value="header"/>
      <xs:enumeration value="path"/>
      <xs:enumeration value="query"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="collectionFormat">
    <xs:restriction base="xs:string">
      <xs:enumeration value="csv"/>
      <xs:enumeration value="ssv"/>
      <xs:enumeration value="tsv"/>
      <xs:enumeration value="pipes"/>
      <xs:enumeration value="multi"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="bindyType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Csv"/>
      <xs:enumeration value="Fixed"/>
      <xs:enumeration value="KeyValue"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="option">
    <xs:restriction base="xs:string">
      <xs:enumeration value="DEFAULT_PATH_LEAF_TO_NULL"/>
      <xs:enumeration value="ALWAYS_RETURN_LIST"/>
      <xs:enumeration value="AS_PATH_LIST"/>
      <xs:enumeration value="SUPPRESS_EXCEPTIONS"/>
      <xs:enumeration value="REQUIRE_PROPERTIES"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="scope">
    <xs:restriction base="xs:string">
      <xs:enumeration value="SINGLETON"/>
      <xs:enumeration value="REQUEST"/>
      <xs:enumeration value="PROTOTYPE"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="mode">
    <xs:restriction base="xs:string">
      <xs:enumeration value="INJECTING_CONTEXTUAL_NAMESPACE_BINDINGS"/>
      <xs:enumeration value="WRAPPING_EXTRACTED_TOKEN"/>
      <xs:enumeration value="UNWRAPPING_EXTRACTED_TOKEN"/>
      <xs:enumeration value="EXTRACTING_TEXT_CONTENT"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="resultQName">
    <xs:restriction base="xs:string">
      <xs:enumeration value="NUMBER"/>
      <xs:enumeration value="STRING"/>
      <xs:enumeration value="BOOLEAN"/>
      <xs:enumeration value="NODESET"/>
      <xs:enumeration value="NODE"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="tokenizerType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="OPEN_AI"/>
      <xs:enumeration value="AZURE"/>
      <xs:enumeration value="QWEN"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="springErrorHandlerType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="DefaultErrorHandler"/>
      <xs:enumeration value="DeadLetterChannel"/>
      <xs:enumeration value="NoErrorHandler"/>
      <xs:enumeration value="TransactionErrorHandler"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>