I am trying to create one package that will extract several tables from a source/db to a destination/db by using variables and loop container(s). I want the ETL to be secure, neat and automated. The code I am using is:

"<Biml xmlns="http://schemas.varigence.com/biml.xsd">
    <Connections>
        <!-- Connection definitions -->
        <OleDbConnection Name="SourceConnection" ConnectionString="data source=DESKTOP-ES5HL78;initial catalog=kaz;provider=SQLNCLI11;integrated security=SSPI;" />
        <OleDbConnection Name="DestinationConnection" ConnectionString="data source=DESKTOP-ES5HL78;initial catalog=SSISDB;provider=SQLNCLI11;integrated security=SSPI;" />
    </Connections>
    <Packages>
        <Package Name="MultipleTablesPackage4" Language="None">
            <Variables>
                <!-- Variable definitions -->
                <Variable Name="DestinationSchema" DataType="String">dbo</Variable>
                <Variable Name="DestinationTable" DataType="String">Transactions</Variable>
                <Variable Name="SourceTable" DataType="String">dbo.Transactions</Variable>
                <Variable Name="TableNames" DataType="String">[dbo].[Transactions], [dbo].[currency], [dbo].[account_daily_snapshot]</Variable>
            </Variables>
            <Tasks>
                <Container Name="Foreach Container">
                    <ForEachLoop Name="Foreach Loop" ForeachEnumerator="ForEachADOEnumerator">
                        <VariableMappings>
                            <VariableMapping VariableName="User.TableNames" Name="0" />
                        </VariableMappings>
                        <Expressions>
                            <Expression ExternalProperty="AeId">@[User::TableNames]</Expression>
                        </Expressions>
                        <Tasks>
                            <Container Name="Dataflow Container">
                                <Tasks>
                                    <Dataflow Name="Data Flow Task">
                                        <Transformations>
                                            <OleDbSource Name="OLE DB Source" ConnectionName="SourceConnection">
                                                <DirectInput>SELECT * FROM ?</DirectInput>
                                                <Parameters>
                                                    <Parameter SourceColumn="User.TableNames" DataType="AnsiString" Length="500" VariableName="User.TableNames" ParameterName="0" />
                                                </Parameters>
                                            </OleDbSource>
                                            <OleDbDestination Name="OLE DB Destination" ConnectionName="DestinationConnection">
                                                <ExternalTableOutput Table="[SSISDB].[dbo].[Transactions]" />
                                            </OleDbDestination>
                                        </Transformations>
                                    </Dataflow>
                                </Tasks>
                            </Container>
                        </Tasks>
                    </ForEachLoop>
                </Container>
            </Tasks>
        </Package>
    </Packages>
</Biml>


"
The error I am getting is: 
image.png


And

<Biml xmlns="http://schemas.varigence.com/biml.xsd">
    <Connections>
        <!-- Connection definitions -->
        <OleDbConnection Name="SourceConnection" ConnectionString="data source=DESKTOP-ES5HL78;initial catalog=kaz;provider=SQLNCLI11;integrated security=SSPI;" />
        <OleDbConnection Name="DestinationConnection" ConnectionString="data source=DESKTOP-ES5HL78;initial catalog=SSISDB;provider=SQLNCLI11;integrated security=SSPI;" />
    </Connections>
    <Packages>
        <Package Name="MultipleTablesPackage4" Language="None">
            <Variables>
                <!-- Variable definitions -->
                <Variable Name="DestinationSchema" DataType="String">dbo</Variable>
                <Variable Name="DestinationTable" DataType="String">Transactions</Variable>
                <Variable Name="SourceTable" DataType="String">dbo.Transactions</Variable>
                <Variable Name="TableNames" DataType="String">[dbo].[Transactions], [dbo].[currency], [dbo].[account_daily_snapshot]</Variable>
            </Variables>
            <Tasks>
                <Container Name="ForeachContainer">
                    <Tasks>
                        <ForEachLoop Name="ForeachLoop" ForeachEnumerator="ForEachADOEnumerator">
                            <VariableMappings>
                                <VariableMapping VariableName="User.TableNames" Name="0" />
                            </VariableMappings>
                            <Expressions>
                                <Expression ExternalProperty="AeId">@[User::TableNames]</Expression>
                            </Expressions>
                            <Tasks>
                                <Container Name="DataflowContainer">
                                    <Tasks>
                                        <Dataflow Name="DataflowTask">
                                            <Transformations>
                                                <OleDbSource Name="OLE DB Source" ConnectionName="SourceConnection">
                                                    <DirectInput>SELECT * FROM ?</DirectInput>
                                                    <Parameters>
                                                        <Parameter SourceColumn="User.TableNames" DataType="AnsiString" Length="500" VariableName="User.TableNames" ParameterName="0" />
                                                    </Parameters>
                                                </OleDbSource>
                                                <OleDbDestination Name="OLE DB Destination" ConnectionName="DestinationConnection">
                                                    <ExternalTableOutput Table="[SSISDB].[dbo].[Transactions]" />
                                                </OleDbDestination>
                                            </Transformations>
                                        </Dataflow>
                                    </Tasks>
                                </Container>
                            </Tasks>
                        </ForEachLoop>
                    </Tasks>
                </Container>
            </Tasks>
        </Package>
    </Packages>
</Biml>

image.png
The element 'Tasks' in namespace 'http://schemas.varigence.com/biml.xsd' has invalid child element 'ForEachLoop' in namespace 'http://schemas.varigence.com/biml.xsd'. List of possible elements expected: 'Staging, Container, ExecuteSQL, Dataflow, ExecutePackage, Merge, ForLoop, RetryContainer, AnalysisServicesExecuteDdl, AnalysisServicesProcessing, BulkInsert, DataProfiling, ExecuteProcess, FileSystem, Ftp, MessageQueue, SendMail, WmiEventWatcher, WmiDataReader, WebService, TransferMasterStoredProcedures, TransferLogins, TransferJobs, Xml, TransferDatabase, TransferErrorMessages, TransferSqlServerObjects, BackupDatabase, MaintenanceCleanup, NotifyOperator, ExecuteSqlAgentJob, CheckDatabaseIntegrity, ReorganizeIndex, RebuildIndex, UpdateStatistics, HistoryCleanup, ExecuteTSqlStatement, ShrinkDatabase, ForEachFileLoop, ForEachItemLoop, ForEachAdoLoop, ForEachAdoNetSchemaLoop, ForEachFromVariableLoop, ForEachNodeListLoop, ForEachSmoLoop, Script, CustomTask, Expression, CdcControl, AzureBlobDownload, AzureBlobUpload, AzureHDInsightCreateCluster, AzureHDInsightDeleteCluster, AzureHDInsightHive, AzureHDInsightPig, AzureSqlDataWarehouseUpload, AzureDataLakeStoreFileSystem, HadoopFileSystem, HadoopHive, HadoopPig'....

Thank you in advance.