<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://www.springframework.org/schema/integration/ftp"
			xmlns:xsd="http://www.w3.org/2001/XMLSchema"
			xmlns:tool="http://www.springframework.org/schema/tool"
			xmlns:integration="http://www.springframework.org/schema/integration"
			xmlns:int-file="http://www.springframework.org/schema/integration/file"
			targetNamespace="http://www.springframework.org/schema/integration/ftp"
			elementFormDefault="qualified">

	<xsd:import namespace="http://www.springframework.org/schema/beans"/>
	<xsd:import namespace="http://www.springframework.org/schema/tool"/>
	<xsd:import namespace="http://www.springframework.org/schema/integration"
				schemaLocation="https://www.springframework.org/schema/integration/spring-integration.xsd"/>
	<xsd:import namespace="http://www.springframework.org/schema/integration/file"
				schemaLocation="https://www.springframework.org/schema/integration/file/spring-integration-file.xsd"/>

	<xsd:element name="outbound-channel-adapter">
		<xsd:annotation>
			<xsd:documentation>
				Configures a Consumer Endpoint for the
				'org.springframework.integration.file.remote.handler.FileTransferringMessageHandler'
				for the 'FtpRemoteFileTemplate' that writes files to a remote FTP endpoint.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="base-outbound-adapter-type">
					<xsd:all>
						<xsd:element ref="integration:poller" minOccurs="0" maxOccurs="1"/>
						<xsd:element name="request-handler-advice-chain" type="integration:handlerAdviceChainType"
									 minOccurs="0" maxOccurs="1"/>
					</xsd:all>
					<xsd:attribute name="channel" type="xsd:string">
						<xsd:annotation>
							<xsd:appinfo>
								<tool:annotation kind="ref">
									<tool:expected-type type="org.springframework.messaging.MessageChannel"/>
								</tool:annotation>
							</xsd:appinfo>
							<xsd:documentation>
								Identifies channel attached to this adapter. This channel could be the receiving
								channel.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="order" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Specifies the order for invocation when this
								endpoint is connected as a
								subscriber to a channel. This is
								particularly relevant when that channel
								is using a "failover"
								dispatching strategy, or when a failure in
								the delivery to one
								subscriber should signal that
								the message should not be sent to
								subscribers with a higher 'order'
								attribute. It has no effect
								when this
								endpoint itself is a Polling Consumer for a channel
								with a queue.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attributeGroup ref="int-file:remoteOutboundAttributeGroup"/>
					<xsd:attributeGroup ref="int-file:chmod"/>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="inbound-channel-adapter">
		<xsd:annotation>
			<xsd:documentation>
				Configures a 'SourcePollingChannelAdapter' Endpoint for the
				'org.springframework.integration.ftp.inbound.FtpInboundFileSynchronizingMessageSource' that
				synchronizes a local directory with the contents of a remote FTP endpoint.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="base-inbound-adapter-type">
					<xsd:attribute name="local-filename-generator-expression" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Allows you to provide a SpEL expression to
								generate the file name of
								the local (transferred) file. The root
								object of the SpEL
								evaluation is the name of the original
								file.
								For example, a valid expression would be "#this.toUpperCase() +
								'.a'" where #this represents the
								original name of the remote
								file.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="comparator" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation><![CDATA[
			Specify a Comparator to be used when ordering Files. If none is provided, the
			order will be determined by the java.io.File implementation of Comparable.
							]]></xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="local-filter" type="xsd:string">
						<xsd:annotation>
							<xsd:appinfo>
								<tool:annotation kind="ref">
									<tool:expected-type
											type="org.springframework.integration.file.filters.FileListFilter"/>
								</tool:annotation>
							</xsd:appinfo>
							<xsd:documentation>
								Allows you to specify a reference to a
								[org.springframework.integration.file.filters.FileListFilter]
								bean. This filter is applied to files after they have been
								retrieved. The default is an AcceptOnceFileListFilter which means that,
								even if a new instance of a file is retrieved from the remote server,
								a message won't be generated. The filter provided here is combined
								with a filter that prevents the message source from processing
								files that are currently being downloaded.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="local-directory" type="xsd:string"
								   use="required">
						<xsd:annotation>
							<xsd:documentation>
								Identifies the directory path (e.g.,
								"/local/mytransfers") where files
								will be transferred TO.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="auto-create-local-directory"
								   type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Tells this adapter if the local directory must
								be auto-created if it
								doesn't exist. Default is TRUE.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="delete-remote-files" type="xsd:string" default="false">
						<xsd:annotation>
							<xsd:documentation>
								Specify whether to delete the remote source
								file after copying.
								By default, the remote files will NOT be
								deleted.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="preserve-timestamp" type="xsd:string" default="false">
						<xsd:annotation>
							<xsd:documentation>
								Specify whether to preserve the modified timestamp from the remote source
								file on the local file after copying.
								By default, the remote timestamp will NOT be
								preserved.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="scanner" type="xsd:string">
						<xsd:annotation>
							<xsd:appinfo>
								<tool:annotation kind="ref">
									<tool:expected-type
											type="org.springframework.integration.file.DirectoryScanner"/>
								</tool:annotation>
							</xsd:appinfo>
							<xsd:documentation>
								Reference to a custom DirectoryScanner implementation.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="remote-file-metadata-store" type="xsd:string">
						<xsd:annotation>
							<xsd:appinfo>
								<tool:annotation kind="ref">
									<tool:expected-type
											type="org.springframework.integration.metadata.MetadataStore"/>
								</tool:annotation>
							</xsd:appinfo>
							<xsd:documentation>
								Reference to a MetadataStore for saving remote files information between
								synchronization and polling.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="metadata-store-prefix" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Specify a prefix for metadata store to distinguish keys from another places
								where the same shared store is used.
								By default, the remote a component name is used.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attributeGroup ref="tempSuffixGroup"/>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="inbound-streaming-channel-adapter">
		<xsd:annotation>
			<xsd:documentation>
				Configures a 'SourcePollingChannelAdapter' Endpoint for the
				'org.springframework.integration.ftp.inbound.FtpInboundStreamingMessageSource'.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="base-inbound-adapter-type">
					<xsd:attribute name="comparator" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation><![CDATA[
								Specify a Comparator to be used when ordering Files. If none is provided, the
								order in which files are processed is the order they are received from the
								FTP server. The generic type of the Comparator must be 'FtpFileInfo'.
							]]></xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="outbound-gateway">
		<xsd:annotation>
			<xsd:documentation>
				Configures a Consumer Endpoint for the
				'org.springframework.integration.ftp.gateway.FtpOutboundGateway'
				used to issue FTP commands.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="base-outbound-adapter-type">
					<xsd:all>
						<xsd:element ref="integration:poller" minOccurs="0" maxOccurs="1"/>
						<xsd:element name="transactional" type="integration:transactionalType" minOccurs="0"
									 maxOccurs="1"/>
						<xsd:element name="request-handler-advice-chain" type="integration:handlerAdviceChainType"
									 minOccurs="0" maxOccurs="1"/>
					</xsd:all>
					<xsd:attribute name="command">
						<xsd:annotation>
							<xsd:documentation>
								FTP command.
							</xsd:documentation>
						</xsd:annotation>
						<xsd:simpleType>
							<xsd:union memberTypes="int-file:remoteGatewayCommand xsd:string"/>
						</xsd:simpleType>
					</xsd:attribute>
					<xsd:attribute name="working-dir-expression" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								The SpEL expression to evaluate FTP client working directory against request message.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="session-callback" type="xsd:string">
						<xsd:annotation>
							<xsd:appinfo>
								<tool:annotation kind="ref">
									<tool:expected-type
											type="org.springframework.integration.file.remote.MessageSessionCallback"/>
								</tool:annotation>
							</xsd:appinfo>
							<xsd:documentation>
								The 'MessageSessionCallback' bean reference to perform custom operation(s) on 'Session'
								with 'requestMessage'.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="command-options" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								FTP command options; for ls, -1 means just
								return the file names
								(otherwise file
								metadata is returned, -dirs
								means include directories (not included by
								default),
								-links means
								include links (not included by default); for get, -P means
								preserve
								timestamp from remote file.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="expression" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								SpEL expression representing the path in the
								command (e.g. ls path to
								list the files in directory path).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="rename-expression" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								SpEL expression representing the path for the
								new filename when using the 'mv' command. Defaults
								to "headers.['file_renameTo']".
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="request-channel" type="xsd:string">
						<xsd:annotation>
							<xsd:appinfo>
								<tool:annotation kind="ref">
									<tool:expected-type
											type="org.springframework.messaging.MessageChannel"/>
								</tool:annotation>
							</xsd:appinfo>
							<xsd:documentation>
								Identifies the request channel attached to
								this
								gateway.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="reply-channel" type="xsd:string">
						<xsd:annotation>
							<xsd:appinfo>
								<tool:annotation kind="ref">
									<tool:expected-type
											type="org.springframework.messaging.MessageChannel"/>
								</tool:annotation>
							</xsd:appinfo>
							<xsd:documentation>
								Identifies the reply channel attached to this
								gateway.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="reply-timeout" type="xsd:string" default="30000">
						<xsd:annotation>
							<xsd:documentation><![CDATA[
								Allows you to specify how long this gateway will wait for
								the reply message to be sent successfully to the reply channel
								before throwing an exception. This attribute only applies when the
								channel might block, for example when using a bounded queue channel that
								is currently full.

								Also, keep in mind that when sending to a DirectChannel, the
								invocation will occur in the sender's thread. Therefore,
								the failing of the send operation may be caused by other
								components further downstream.

								The "reply-timeout" attribute maps to the "sendTimeout" property of the
								underlying 'MessagingTemplate' instance (org.springframework.integration.core.MessagingTemplate).

								The value is specified in milliseconds.
							]]></xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="filter" type="xsd:string">
						<xsd:annotation>
							<xsd:appinfo>
								<tool:annotation kind="ref">
									<tool:expected-type
											type="org.springframework.integration.file.filters.FileListFilter"/>
								</tool:annotation>
							</xsd:appinfo>
							<xsd:documentation>
								Allows you to specify a reference to
								[org.springframework.integration.file.filters.FileListFilter]
								bean. This filter acts against the remote server view when using the 'ls'
								or 'mget' commands.
								Only one of 'filter', 'filename-pattern', or 'filename-regex' is allowed.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="filter-expression" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation><![CDATA[
						The SpEL expression to evaluate against file to accept it for processing or not.
						Mutually exclusive with 'filter' attribute.
					]]></xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="filename-pattern" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Allows you to provide file name pattern to
								determine the file names retrieved by the 'ls' and 'mget' commands
								and is based
								on simple pattern matching algorithm (e.g., "*.txt, fo*.txt"
								etc.)
								Only one of 'filter', 'filename-pattern', or 'filename-regex' is allowed.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="filename-regex" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Allows you to provide Regular Expression to
								determine the file names retrieved by the 'ls' and 'mget' commands.
								(e.g.,
								"f[o]+\.txt" etc.)
								Only one of 'filter', 'filename-pattern', or 'filename-regex' is allowed.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="mput-filter" type="xsd:string">
						<xsd:annotation>
							<xsd:appinfo>
								<tool:annotation kind="ref">
									<tool:expected-type
											type="org.springframework.integration.file.filters.FileListFilter"/>
								</tool:annotation>
							</xsd:appinfo>
							<xsd:documentation>
								Allows you to specify a reference to
								[org.springframework.integration.file.filters.FileListFilter]
								bean. This filter acts on the local file system when using the 'mput' command.
								Only one of 'mput-filter', 'mput-pattern', or 'mput-regex' is allowed.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="mput-filter-expression" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation><![CDATA[
						The SpEL expression to evaluate against file to accept it for processing or not.
						Mutually exclusive with 'mput-filter' attribute.
					]]></xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="mput-pattern" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Allows you to provide file name pattern to
								determine the file names sent by the 'mput' command
								and is based
								on simple pattern matching algorithm (e.g., "*.txt, fo*.txt"
								etc.)
								Only one of 'mput-filter', 'mput-pattern', or 'mput-regex' is allowed.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="mput-regex" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Allows you to provide Regular Expression to
								determine the file names sent by the 'mput' command
								(e.g.,
								"f[o]+\.txt" etc.)
								Only one of 'mput-filter', 'mput-pattern', or 'mput-regex' is allowed.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="local-filename-generator-expression" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Allows you to provide a SpEL expression to
								generate the file name of
								the local (transferred) file. The root
								object of the SpEL
								evaluation is the request Message, but the name of the original
								remote file is also provided as the 'remoteFileName' variable.
								For example, a valid expression would be:
								"#remoteFileName.toUpperCase() + headers.foo".
								Only used with 'get' and 'mget' commands.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="local-directory" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Identifies directory path (e.g.,
								"/local/mytransfers") where file will be
								transferred TO.
								This attribute is mutually exclusive with 'local-directory-expression'.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="local-directory-expression" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Specifies SpEL expression to
								generate the directory path where file will be
								transferred TO, when using 'get' and 'mget' commands.
								The root object of the SpEL evaluation is the request Message,
								but the name of the source
								remote directory is also provided as the 'remoteDirectory' variable.
								For example, a valid expression might be:
								"'/local/' + #remoteDirectory.toUpperCase() + headers.foo".
								Only used with 'get' and 'mget' commands.
								This attribute is mutually exclusive with 'local-directory'.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="auto-create-local-directory" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								Tells this adapter if local directory must be
								auto-created if it
								doesn''t exist. Default is TRUE.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="order" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Specifies the order for invocation when this
								endpoint is connected as a
								subscriber to a channel. This is
								particularly relevant when that channel
								is using a "failover"
								dispatching strategy, or when a failure in the
								delivery to one
								subscriber should signal that
								the message should not be sent to
								subscribers with a higher 'order'
								attribute. It has no effect
								when
								this
								endpoint itself is a Polling Consumer for a channel with
								a
								queue.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="requires-reply" type="xsd:string" use="optional" default="true">
						<xsd:annotation>
							<xsd:documentation>
								Specify whether this outbound gateway must return a non-null value. This value is
								'true' by default, and a ReplyRequiredException will be thrown when
								the underlying service returns a null value.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attributeGroup ref="int-file:remoteOutboundAttributeGroup"/>
					<xsd:attributeGroup ref="int-file:chmod"/>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:complexType name="base-inbound-adapter-type">
		<xsd:complexContent>
			<xsd:extension base="base-adapter-type">
				<xsd:sequence>
					<xsd:element ref="integration:poller" minOccurs="0"
								 maxOccurs="1"/>
				</xsd:sequence>
				<xsd:attribute name="channel" type="xsd:string">
					<xsd:annotation>
						<xsd:appinfo>
							<tool:annotation kind="ref">
								<tool:expected-type type="org.springframework.messaging.MessageChannel"/>
							</tool:annotation>
						</xsd:appinfo>
						<xsd:documentation>
							Identifies channel attached to this adapter.
							The channel to which messages will be sent
							by this adapter.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="filename-pattern" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>
							Allows you to provide a file name pattern to
							determine the file names
							that need to be scanned.
							This is based on
							simple pattern matching (e.g., "*.txt, fo*.txt"
							etc.)
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="filename-regex" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>
							Allows you to provide a Regular Expression to
							determine the file names
							that need to be scanned.
							(e.g.,
							"f[o]+\.txt" etc.)
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="filter" type="xsd:string">
					<xsd:annotation>
						<xsd:appinfo>
							<tool:annotation kind="ref">
								<tool:expected-type
										type="org.springframework.integration.file.filters.FileListFilter"/>
							</tool:annotation>
						</xsd:appinfo>
						<xsd:documentation>
							Allows you to specify a reference to a
							[org.springframework.integration.file.filters.FileListFilter]
							bean. This filter is applied to files on the remote server and
							only files that pass the filter are retrieved.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="filter-expression" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation><![CDATA[
						The SpEL expression to evaluate against file to accept it for processing or not.
						Mutually exclusive with 'filter' attribute.
					]]></xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attributeGroup ref="integration:maxFetchGroup"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>

	<xsd:complexType name="base-outbound-adapter-type">
		<xsd:complexContent>
			<xsd:extension base="base-adapter-type">
				<xsd:attribute name="temporary-remote-directory" type="xsd:string" use="optional">
					<xsd:annotation>
						<xsd:documentation>
							Identifies the remote temporary directory path (e.g., "/remote/temp/mytransfers")
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attributeGroup ref="tempSuffixGroup"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>

	<xsd:complexType name="base-adapter-type">
		<xsd:attribute name="id" type="xsd:string"/>
		<xsd:attribute name="session-factory" type="xsd:string" use="required">
			<xsd:annotation>
				<xsd:appinfo>
					<tool:annotation kind="ref">
						<tool:expected-type
								type="org.springframework.integration.file.remote.session.SessionFactory"/>
					</tool:annotation>
				</xsd:appinfo>
				<xsd:documentation><![CDATA[
					Reference to an [org.springframework.integration.file.remote.session.SessionFactory] bean with
					an [org.apache.commons.net.ftp.FTPFile] generic type parameter.
				]]></xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="remote-file-separator" type="xsd:string"
					   default="/">
			<xsd:annotation>
				<xsd:documentation>
					Allows you to provide remote file/directory
					separator character. DEFAULT:
					'/'
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="remote-directory" type="xsd:string" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Identifies the remote directory path (e.g., "/remote/mytransfers")
					Mutually exclusive with 'remote-directory-expression'.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="remote-directory-expression"
					   type="xsd:string">
			<xsd:annotation>
				<xsd:documentation>
					Specify a SpEL expression which
					will be used to evaluate the directory
					path to where the files will be transferred
					(e.g., "headers.['remote_dir'] + '/myTransfers'" for outbound endpoints)
					There is no root object (message) for inbound endpoints
					(e.g., "@someBean.fetchDirectory");
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attributeGroup ref="integration:smartLifeCycleAttributeGroup"/>
	</xsd:complexType>

	<xsd:attributeGroup name="tempSuffixGroup">
		<xsd:attribute name="temporary-file-suffix" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation>
					Extension used when downloading files. We change
					it right after we know it's downloaded.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:attributeGroup>

</xsd:schema>
