<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:mediators="http://www.entaxy.ru/schemas/entaxy-mediators/1.0" xmlns:camel="http://camel.apache.org/schema/blueprint" targetNamespace="http://www.entaxy.ru/schemas/entaxy-mediators/1.0" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:import namespace="http://camel.apache.org/schema/blueprint" schemaLocation="camel-entaxy.xsd"/>
	<xs:element name="standard-router"/>
	<xs:element name="set-destination" type="mediators:Tdestination"/>
	<xs:element name="default-destination" type="mediators:Tdestination"/>
	<xs:element name="prefer-connector">
		<xs:complexType>
			<xs:sequence maxOccurs="unbounded">
				<xs:any namespace="##any"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="next-route">
		<xs:complexType>
			<xs:attribute name="local" type="xs:boolean"/>
			<xs:attribute name="async" type="xs:boolean"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="respond">
		<xs:complexType>
			<xs:attribute name="now" type="xs:boolean" default="true"/>
			<xs:attribute name="continue" type="xs:boolean" default="true"/>
			<xs:attribute name="continueAsync" type="xs:boolean" default="true"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="xslt">
		<xs:complexType>
			<xs:attribute name="resource" use="required"/>
			<xs:attribute name="params"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="xslt-xalan">
		<xs:complexType>
			<xs:attribute name="resource" use="required"/>
			<xs:attribute name="params"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="atlasmap">
		<xs:complexType>
			<xs:attribute name="resource" use="required"/>
			<xs:attribute name="params"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="read-secret">
		<xs:complexType>
			<xs:attribute name="vault" type="xs:string" use="required"/>
			<xs:attribute name="property" type="xs:string" default="__SECRET__"/>
			<xs:attribute name="alias" type="xs:string" default="secret"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="to-connection">
		<xs:complexType>
			<xs:sequence>
				<xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute name="name" type="xs:string" use="required"/>
			<xs:attribute name="path" type="xs:string"/>
			<xs:attribute name="dynamic" type="xs:boolean" default="true"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="entaxy-trace" type="mediators:TEntaxyTrace"/>
	<xs:element name="call-route">
		<xs:complexType>
			<xs:attribute name="name" type="xs:string" use="required"/>
			<xs:attribute name="library" type="xs:string"/>
			<xs:attribute name="async" type="xs:boolean" default="false"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="set-log-key">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="service" type="mediators:TEntaxyTrace" minOccurs="0"/>
                <xs:element name="operation" type="mediators:TEntaxyTrace" minOccurs="0"/>
                <xs:element name="objectId" type="mediators:TEntaxyTrace" minOccurs="0"/>
                <xs:element name="parameter" type="mediators:TEntaxyTrace" minOccurs="0"/>
                <xs:element name="sender" type="mediators:TEntaxyTrace" minOccurs="0"/>
                <xs:element name="receiver" type="mediators:TEntaxyTrace" minOccurs="0"/>
                <xs:element name="custom" minOccurs="0" maxOccurs="unbounded">
                    <xs:complexType>
                        <xs:complexContent>
                            <xs:extension base="mediators:TEntaxyTrace">
                                 <xs:attribute name="name" type="xs:string" use="required"/>
                            </xs:extension>
                        </xs:complexContent>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="log">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="camel:noOutputDefinition">
                    <xs:sequence/>
                    <xs:attribute name="message" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation xml:lang="en"><![CDATA[
    Sets the log message (uses simple language).
                ]]></xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="loggingLevel" type="xs:string">
                        <xs:annotation>
                            <xs:documentation xml:lang="en"><![CDATA[
    Sets the logging level. The default value is INFO. Default value: INFO
                ]]></xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="logName" type="xs:string">
                        <xs:annotation>
                            <xs:documentation xml:lang="en"><![CDATA[
    Sets the name of the logger.
                ]]></xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="marker" type="xs:string">
                        <xs:annotation>
                            <xs:documentation xml:lang="en"><![CDATA[
    To use slf4j marker.
                ]]></xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="loggerRef" type="xs:string">
                        <xs:annotation>
                            <xs:documentation xml:lang="en"><![CDATA[
    To refer to a custom logger instance to lookup from the registry.
                ]]></xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:extension>
            </xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:simpleType name="Tdestination">
		<xs:restriction base="xs:string">
			<xs:pattern value="[0-9a-zA-Z\-_.]+(:(system.name|system-group.name|queue.name|topic.name)){0,1}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="TEntaxyTrace">
		<xs:choice>
			<xs:element ref="camel:expressionDefinition"/>
			<xs:element ref="camel:constant"/>
			<xs:element ref="camel:exchangeProperty"/>
			<xs:element ref="camel:groovy"/>
			<xs:element ref="camel:header"/>
			<xs:element ref="camel:hl7terser"/>
			<xs:element ref="camel:jsonpath"/>
			<xs:element ref="camel:language"/>
			<xs:element ref="camel:method"/>
			<xs:element ref="camel:mvel"/>
			<xs:element ref="camel:ognl"/>
			<xs:element ref="camel:ref"/>
			<xs:element ref="camel:simple"/>
			<xs:element ref="camel:spel"/>
			<xs:element ref="camel:tokenize"/>
			<xs:element ref="camel:xtokenize"/>
			<xs:element ref="camel:xpath"/>
			<xs:element ref="camel:xquery"/>
		</xs:choice>
		<xs:attribute name="reset" type="xs:boolean"/>
	</xs:complexType>
</xs:schema>
