EZZ;E1;E2;E3;E4;E5;E6;E7;E8
LZZ;L1;L2;L3
LZZ;L1;L2;L3
SZZ;S1
EZZ;E1;E2;E3;E4;E5;E6;E7;E8
LZZ;L1;L2;L3
SZZ;S1
How create the flat file schema ?
Thanks.
When you choose a new object in Visual Studio, choose Flat File Wizard, and it will walk you thru creating the schema.
EZZ;E1;E2;E3;E4;E5;E6;E7;E8
LZZ;L1;L2;L3
LZZ;L1;L2;L3
SZZ;S1
it's ok but not several.
My schema must be wrong !
E1;E2;E3;E4;E5;E6;E7;E8
LZZ;L1;L2;L3
LZZ;L1;L2;L3
SZZ;S1
EZZ;E1;E2;E3;E4;E5;E6;E7;E8
LZZ;L1;L2;L3
SZZ;S1
let me know whatis your expectation?please map the FF data into xml instance?
something like:
<root>
<Record1>
<Element>E1</Element>
<Element>E2</Element>
<Element>E3</Element>
.
.
.
</Record1>
.
.
.
<RecordN>
<Ele>SZZ</Ele>
<Ele>S1</Ele>
</RecordN>
</Root>
-Firas
Hi,
Here my flat file :
EZZ;310108;FEDI0108DC0008;FOURNISSEURS1;TES;CUC;3016954456214;CU;EUR
LZZ;005007115;290.63;20071201
LZZ;005007115;240.63;20071201
SZZ;33336.77
EZZ;090207;FEDI0207DC0002;FOURNISSEURS2L;TES;CUBT;3015548955624;CU;EUR
LZZ;005004182;2656.62;20070116
SZZ;402320.77
EZZ, LZZ and SZZ record with Tag identifier
Here instance xml :
- <ns0:ListeVirement xmlns:ns0="http://"> - <Virement> - <Entete> <DateReglement>DateReglement_0</DateReglement> <NumVirement>NumVirement_0</NumVirement> <BanquePayeur>BanquePayeur_0</BanquePayeur> <Payeur>Payeur_0</Payeur> <Fournisseur>Fournisseur_0</Fournisseur> <EANFournisseur>EANFournisseur_0</EANFournisseur> <PartenaireFournisseur>PartenaireFournisseur_0</PartenaireFournisseur> <Devise>Devise_0</Devise> </Entete> - <Ligne> <NumFacture>NumFacture_0</NumFacture> <Montant>10.4</Montant> <DateFacture>DateFacture_0</DateFacture> </Ligne> - <Fin> <MontantTotal>10.4</MontantTotal> </Fin> </Virement> </ns0:ListeVirement> I can't validate the instance. I need help please. TksCopy and past the following schema, and lets see:
<?xml version="1.0" encoding="utf-16"?> |
<xs:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003" xmlns="Http://MyCompany.MySolution.MyModule" targetNamespace="Http://MyCompany.MySolution.MyModule" xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
<xs:annotation> |
<xs:appinfo> |
<schemaEditorExtension:schemaInfo namespaceAlias="b" extensionClass="Microsoft.BizTalk.FlatFileExtension.FlatFileExtension" standardName="Flat File" xmlns:schemaEditorExtension="http://schemas.microsoft.com/BizTalk/2003/SchemaEditorExtensions" /> |
<b:schemaInfo standard="Flat File" codepage="65001" default_pad_char=" " pad_char_type="char" count_positions_by_byte="false" parser_optimization="speed" lookahead_depth="3" suppress_empty_nodes="false" generate_empty_nodes="true" allow_early_termination="false" early_terminate_optional_fields="false" allow_message_breakup_of_infix_root="false" compile_parse_tables="false" root_reference="Root" /> |
</xs:appinfo> |
</xs:annotation> |
<xs:element name="Root"> |
<xs:annotation> |
<xs:appinfo> |
<b:recordInfo structure="delimited" child_delimiter_type="hex" child_delimiter="0xD 0xA" child_order="infix" sequence_number="1" preserve_delimiter_for_empty_data="true" suppress_trailing_delimiters="false" /> |
</xs:appinfo> |
</xs:annotation> |
<xs:complexType> |
<xs:sequence> |
<xs:annotation> |
<xs:appinfo> |
<groupInfo sequence_number="0" xmlns="http://schemas.microsoft.com/BizTalk/2003" /> |
</xs:appinfo> |
</xs:annotation> |
<xs:element name="Record"> |
<xs:annotation> |
<xs:appinfo> |
<recordInfo sequence_number="1" structure="delimited" preserve_delimiter_for_empty_data="true" suppress_trailing_delimiters="false" xmlns="http://schemas.microsoft.com/BizTalk/2003" /> |
</xs:appinfo> |
</xs:annotation> |
<xs:complexType> |
<xs:sequence> |
<xs:annotation> |
<xs:appinfo> |
<groupInfo sequence_number="0" xmlns="http://schemas.microsoft.com/BizTalk/2003" /> |
</xs:appinfo> |
</xs:annotation> |
<xs:choice minOccurs="0" maxOccurs="unbounded"> |
<xs:annotation> |
<xs:appinfo> |
<groupInfo sequence_number="1" xmlns="http://schemas.microsoft.com/BizTalk/2003" /> |
</xs:appinfo> |
</xs:annotation> |
<xs:element minOccurs="0" maxOccurs="unbounded" name="EZZ"> |
<xs:annotation> |
<xs:appinfo> |
<b:recordInfo tag_name="EZZ" structure="delimited" child_delimiter_type="char" child_delimiter=";" child_order="prefix" preserve_delimiter_for_empty_data="true" suppress_trailing_delimiters="false" sequence_number="1" /> |
</xs:appinfo> |
</xs:annotation> |
<xs:complexType> |
<xs:sequence> |
<xs:annotation> |
<xs:appinfo> |
<groupInfo sequence_number="0" xmlns="http://schemas.microsoft.com/BizTalk/2003" /> |
</xs:appinfo> |
</xs:annotation> |
<xs:element name="EZZ_Child1" type="xs:string"> |
<xs:annotation> |
<xs:appinfo> |
<b:fieldInfo justification="left" sequence_number="1" /> |
</xs:appinfo> |
</xs:annotation> |
</xs:element> |
<xs:element name="EZZ_Child2" type="xs:string"> |
<xs:annotation> |
<xs:appinfo> |
<b:fieldInfo justification="left" sequence_number="2" /> |
</xs:appinfo> |
</xs:annotation> |
</xs:element> |
<xs:element name="EZZ_Child3" type="xs:string"> |
<xs:annotation> |
<xs:appinfo> |
<b:fieldInfo justification="left" sequence_number="3" /> |
</xs:appinfo> |
</xs:annotation> |
</xs:element> |
<xs:element name="EZZ_Child4" type="xs:string"> |
<xs:annotation> |
<xs:appinfo> |
<b:fieldInfo justification="left" sequence_number="4" /> |
</xs:appinfo> |
</xs:annotation> |
</xs:element> |
<xs:element name="EZZ_Child5" type="xs:string"> |
<xs:annotation> |
<xs:appinfo> |
<b:fieldInfo justification="left" sequence_number="5" /> |
</xs:appinfo> |
</xs:annotation> |
</xs:element> |
<xs:element name="EZZ_Child6" type="xs:string"> |
<xs:annotation> |
<xs:appinfo> |
<b:fieldInfo justification="left" sequence_number="6" /> |
</xs:appinfo> |
</xs:annotation> |
</xs:element> |
<xs:element name="EZZ_Child7" type="xs:string"> |
<xs:annotation> |
<xs:appinfo> |
<b:fieldInfo justification="left" sequence_number="7" /> |
</xs:appinfo> |
</xs:annotation> |
</xs:element> |
<xs:element name="EZZ_Child8" type="xs:string"> |
<xs:annotation> |
<xs:appinfo> |
<b:fieldInfo justification="left" sequence_number="8" /> |
</xs:appinfo> |
</xs:annotation> |
</xs:element> |
</xs:sequence> |
</xs:complexType> |
</xs:element> |
<xs:element minOccurs="0" maxOccurs="unbounded" name="LZZ"> |
<xs:annotation> |
<xs:appinfo> |
<b:recordInfo tag_name="LZZ" structure="delimited" child_delimiter_type="char" child_delimiter=";" child_order="prefix" preserve_delimiter_for_empty_data="true" suppress_trailing_delimiters="false" sequence_number="2" /> |
</xs:appinfo> |
</xs:annotation> |
<xs:complexType> |
<xs:sequence> |
<xs:annotation> |
<xs:appinfo> |
<groupInfo sequence_number="0" xmlns="http://schemas.microsoft.com/BizTalk/2003" /> |
</xs:appinfo> |
</xs:annotation> |
<xs:element name="LZZ_Child1" type="xs:string"> |
<xs:annotation> |
<xs:appinfo> |
<b:fieldInfo justification="left" sequence_number="1" /> |
</xs:appinfo> |
</xs:annotation> |
</xs:element> |
<xs:element name="LZZ_Child2" type="xs:string"> |
<xs:annotation> |
<xs:appinfo> |
<b:fieldInfo justification="left" sequence_number="2" /> |
</xs:appinfo> |
</xs:annotation> |
</xs:element> |
<xs:element name="LZZ_Child3" type="xs:string"> |
<xs:annotation> |
<xs:appinfo> |
<b:fieldInfo justification="left" sequence_number="3" /> |
</xs:appinfo> |
</xs:annotation> |
</xs:element> |
</xs:sequence> |
</xs:complexType> |
</xs:element> |
<xs:element minOccurs="0" maxOccurs="unbounded" name="SZZ"> |
<xs:annotation> |
<xs:appinfo> |
<b:recordInfo tag_name="SZZ" structure="delimited" child_delimiter_type="char" child_delimiter=";" child_order="prefix" preserve_delimiter_for_empty_data="true" suppress_trailing_delimiters="false" sequence_number="3" /> |
</xs:appinfo> |
</xs:annotation> |
<xs:complexType> |
<xs:sequence> |
<xs:annotation> |
<xs:appinfo> |
<groupInfo sequence_number="0" xmlns="http://schemas.microsoft.com/BizTalk/2003" /> |
</xs:appinfo> |
</xs:annotation> |
<xs:element name="SZZ_Child1" type="xs:string"> |
<xs:annotation> |
<xs:appinfo> |
<b:fieldInfo justification="left" sequence_number="1" /> |
</xs:appinfo> |
</xs:annotation> |
</xs:element> |
</xs:sequence> |
</xs:complexType> |
</xs:element> |
</xs:choice> |
</xs:sequence> |
</xs:complexType> |
</xs:element> |
</xs:sequence> |
</xs:complexType> |
</xs:element> |
</xs:schema> |
Hi,
Please see following article:
Hi,
Not sure why this post has been kept unanswered.
Owner of this post may not able to close this, so any moderators please close this post.
Following code provides the schema for the given flat file.
<?xml version="1.0" encoding="utf-16"?> <xs:schema xmlns="http://TryMSDNQuestions.FaltFileTag.FlatFileSchema7" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" targetNamespace="http://TryMSDNQuestions.FaltFileTag.FlatFileSchema7" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:annotation> <xs:appinfo> <schemaEditorExtension:schemaInfo namespaceAlias="b" extensionClass="Microsoft.BizTalk.FlatFileExtension.FlatFileExtension" standardName="Flat File" xmlns:schemaEditorExtension="http://schemas.microsoft.com/BizTalk/2003/SchemaEditorExtensions" /> <b:schemaInfo standard="Flat File" codepage="65001" default_pad_char=" " pad_char_type="char" count_positions_by_byte="false" parser_optimization="speed" lookahead_depth="3" suppress_empty_nodes="false" generate_empty_nodes="true" allow_early_termination="false" early_terminate_optional_fields="false" allow_message_breakup_of_infix_root="false" compile_parse_tables="false" root_reference="ListeVirement" /> </xs:appinfo> </xs:annotation> <xs:element name="ListeVirement"> <xs:annotation> <xs:appinfo> <b:recordInfo structure="delimited" child_delimiter_type="char" child_delimiter="EZZ" child_order="prefix" sequence_number="1" preserve_delimiter_for_empty_data="true" suppress_trailing_delimiters="false" /> </xs:appinfo> </xs:annotation> <xs:complexType> <xs:sequence> <xs:annotation> <xs:appinfo> <groupInfo sequence_number="0" xmlns="http://schemas.microsoft.com/BizTalk/2003" /> </xs:appinfo> </xs:annotation> <xs:element maxOccurs="unbounded" name="Virement"> <xs:annotation> <xs:appinfo> <b:recordInfo structure="delimited" child_delimiter_type="hex" child_delimiter="0xD 0xA" child_order="infix" sequence_number="1" preserve_delimiter_for_empty_data="true" suppress_trailing_delimiters="false" /> </xs:appinfo> </xs:annotation> <xs:complexType> <xs:sequence> <xs:annotation> <xs:appinfo> <groupInfo sequence_number="0" xmlns="http://schemas.microsoft.com/BizTalk/2003" /> </xs:appinfo> </xs:annotation> <xs:element name="Entete"> <xs:annotation> <xs:appinfo> <b:recordInfo structure="delimited" child_delimiter_type="char" child_delimiter=";" child_order="prefix" sequence_number="1" preserve_delimiter_for_empty_data="true" suppress_trailing_delimiters="false" /> </xs:appinfo> </xs:annotation> <xs:complexType> <xs:sequence> <xs:annotation> <xs:appinfo> <groupInfo sequence_number="0" xmlns="http://schemas.microsoft.com/BizTalk/2003" /> </xs:appinfo> </xs:annotation> <xs:element name="DateReglement" type="xs:string"> <xs:annotation> <xs:appinfo> <b:fieldInfo justification="left" sequence_number="1" /> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="NumVirement" type="xs:string"> <xs:annotation> <xs:appinfo> <b:fieldInfo justification="left" sequence_number="2" /> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="BanquePayeur" type="xs:string"> <xs:annotation> <xs:appinfo> <b:fieldInfo justification="left" sequence_number="3" /> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="Payeur" type="xs:string"> <xs:annotation> <xs:appinfo> <b:fieldInfo justification="left" sequence_number="4" /> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="Fournisseur" type="xs:string"> <xs:annotation> <xs:appinfo> <b:fieldInfo justification="left" sequence_number="5" /> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="EANFournisseur" type="xs:string"> <xs:annotation> <xs:appinfo> <b:fieldInfo justification="left" sequence_number="6" /> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="PartenaireFournisseur" type="xs:string"> <xs:annotation> <xs:appinfo> <b:fieldInfo justification="left" sequence_number="7" /> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="Devise" type="xs:string"> <xs:annotation> <xs:appinfo> <b:fieldInfo justification="left" sequence_number="8" /> </xs:appinfo> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element maxOccurs="unbounded" name="Ligne"> <xs:annotation> <xs:appinfo> <b:recordInfo tag_name="LZZ" structure="delimited" child_delimiter_type="char" child_delimiter=";" child_order="prefix" sequence_number="2" preserve_delimiter_for_empty_data="true" suppress_trailing_delimiters="false" /> </xs:appinfo> </xs:annotation> <xs:complexType> <xs:sequence> <xs:annotation> <xs:appinfo> <groupInfo sequence_number="0" xmlns="http://schemas.microsoft.com/BizTalk/2003" /> </xs:appinfo> </xs:annotation> <xs:element name="NumFacture" type="xs:string"> <xs:annotation> <xs:appinfo> <b:fieldInfo justification="left" sequence_number="1" /> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="Montant" type="xs:string"> <xs:annotation> <xs:appinfo> <b:fieldInfo justification="left" sequence_number="2" /> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="DateFacture" type="xs:string"> <xs:annotation> <xs:appinfo> <b:fieldInfo justification="left" sequence_number="3" /> </xs:appinfo> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Fin"> <xs:annotation> <xs:appinfo> <b:recordInfo tag_name="SZZ" structure="delimited" child_delimiter_type="char" child_delimiter=";" child_order="prefix" sequence_number="3" preserve_delimiter_for_empty_data="true" suppress_trailing_delimiters="false" /> </xs:appinfo> </xs:annotation> <xs:complexType> <xs:sequence> <xs:annotation> <xs:appinfo> <groupInfo sequence_number="0" xmlns="http://schemas.microsoft.com/BizTalk/2003" /> </xs:appinfo> </xs:annotation> <xs:element name="MontantTotal" type="xs:string"> <xs:annotation> <xs:appinfo> <b:fieldInfo justification="left" sequence_number="1" /> </xs:appinfo> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
Following is how the schema looks like.
You may need to change the namespace of the schema,.
I have tested this schema with the given flat file and it works.
Hi,
Not sure why this post has been kept unanswered.
Owner of this post may not able to close this, so any moderators please close this post.
Following code provides the schema for the given flat file.
<?xml version="1.0" encoding="utf-16"?> <xs:schema xmlns="http://TryMSDNQuestions.FaltFileTag.FlatFileSchema7" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" targetNamespace="http://TryMSDNQuestions.FaltFileTag.FlatFileSchema7" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:annotation> <xs:appinfo> <schemaEditorExtension:schemaInfo namespaceAlias="b" extensionClass="Microsoft.BizTalk.FlatFileExtension.FlatFileExtension" standardName="Flat File" xmlns:schemaEditorExtension="http://schemas.microsoft.com/BizTalk/2003/SchemaEditorExtensions" /> <b:schemaInfo standard="Flat File" codepage="65001" default_pad_char=" " pad_char_type="char" count_positions_by_byte="false" parser_optimization="speed" lookahead_depth="3" suppress_empty_nodes="false" generate_empty_nodes="true" allow_early_termination="false" early_terminate_optional_fields="false" allow_message_breakup_of_infix_root="false" compile_parse_tables="false" root_reference="ListeVirement" /> </xs:appinfo> </xs:annotation> <xs:element name="ListeVirement"> <xs:annotation> <xs:appinfo> <b:recordInfo structure="delimited" child_delimiter_type="char" child_delimiter="EZZ" child_order="prefix" sequence_number="1" preserve_delimiter_for_empty_data="true" suppress_trailing_delimiters="false" /> </xs:appinfo> </xs:annotation> <xs:complexType> <xs:sequence> <xs:annotation> <xs:appinfo> <groupInfo sequence_number="0" xmlns="http://schemas.microsoft.com/BizTalk/2003" /> </xs:appinfo> </xs:annotation> <xs:element maxOccurs="unbounded" name="Virement"> <xs:annotation> <xs:appinfo> <b:recordInfo structure="delimited" child_delimiter_type="hex" child_delimiter="0xD 0xA" child_order="infix" sequence_number="1" preserve_delimiter_for_empty_data="true" suppress_trailing_delimiters="false" /> </xs:appinfo> </xs:annotation> <xs:complexType> <xs:sequence> <xs:annotation> <xs:appinfo> <groupInfo sequence_number="0" xmlns="http://schemas.microsoft.com/BizTalk/2003" /> </xs:appinfo> </xs:annotation> <xs:element name="Entete"> <xs:annotation> <xs:appinfo> <b:recordInfo structure="delimited" child_delimiter_type="char" child_delimiter=";" child_order="prefix" sequence_number="1" preserve_delimiter_for_empty_data="true" suppress_trailing_delimiters="false" /> </xs:appinfo> </xs:annotation> <xs:complexType> <xs:sequence> <xs:annotation> <xs:appinfo> <groupInfo sequence_number="0" xmlns="http://schemas.microsoft.com/BizTalk/2003" /> </xs:appinfo> </xs:annotation> <xs:element name="DateReglement" type="xs:string"> <xs:annotation> <xs:appinfo> <b:fieldInfo justification="left" sequence_number="1" /> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="NumVirement" type="xs:string"> <xs:annotation> <xs:appinfo> <b:fieldInfo justification="left" sequence_number="2" /> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="BanquePayeur" type="xs:string"> <xs:annotation> <xs:appinfo> <b:fieldInfo justification="left" sequence_number="3" /> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="Payeur" type="xs:string"> <xs:annotation> <xs:appinfo> <b:fieldInfo justification="left" sequence_number="4" /> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="Fournisseur" type="xs:string"> <xs:annotation> <xs:appinfo> <b:fieldInfo justification="left" sequence_number="5" /> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="EANFournisseur" type="xs:string"> <xs:annotation> <xs:appinfo> <b:fieldInfo justification="left" sequence_number="6" /> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="PartenaireFournisseur" type="xs:string"> <xs:annotation> <xs:appinfo> <b:fieldInfo justification="left" sequence_number="7" /> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="Devise" type="xs:string"> <xs:annotation> <xs:appinfo> <b:fieldInfo justification="left" sequence_number="8" /> </xs:appinfo> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element maxOccurs="unbounded" name="Ligne"> <xs:annotation> <xs:appinfo> <b:recordInfo tag_name="LZZ" structure="delimited" child_delimiter_type="char" child_delimiter=";" child_order="prefix" sequence_number="2" preserve_delimiter_for_empty_data="true" suppress_trailing_delimiters="false" /> </xs:appinfo> </xs:annotation> <xs:complexType> <xs:sequence> <xs:annotation> <xs:appinfo> <groupInfo sequence_number="0" xmlns="http://schemas.microsoft.com/BizTalk/2003" /> </xs:appinfo> </xs:annotation> <xs:element name="NumFacture" type="xs:string"> <xs:annotation> <xs:appinfo> <b:fieldInfo justification="left" sequence_number="1" /> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="Montant" type="xs:string"> <xs:annotation> <xs:appinfo> <b:fieldInfo justification="left" sequence_number="2" /> </xs:appinfo> </xs:annotation> </xs:element> <xs:element name="DateFacture" type="xs:string"> <xs:annotation> <xs:appinfo> <b:fieldInfo justification="left" sequence_number="3" /> </xs:appinfo> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Fin"> <xs:annotation> <xs:appinfo> <b:recordInfo tag_name="SZZ" structure="delimited" child_delimiter_type="char" child_delimiter=";" child_order="prefix" sequence_number="3" preserve_delimiter_for_empty_data="true" suppress_trailing_delimiters="false" /> </xs:appinfo> </xs:annotation> <xs:complexType> <xs:sequence> <xs:annotation> <xs:appinfo> <groupInfo sequence_number="0" xmlns="http://schemas.microsoft.com/BizTalk/2003" /> </xs:appinfo> </xs:annotation> <xs:element name="MontantTotal" type="xs:string"> <xs:annotation> <xs:appinfo> <b:fieldInfo justification="left" sequence_number="1" /> </xs:appinfo> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
Following is how the schema looks like.
You may need to change the namespace of the schema,.
I have tested this schema with the given flat file and it works.