A flat file format is like one check record followed by many transaction records and re-occurred as a group. The question is how to correctly manage transaction and check record relationship and eventually parse into a schema that a single check record and all the transaction records that between the two check record lines contained in the same request
A sample flat file
C,check record 1,500
D,transaction 1, 200
D,transaction 2, 300
C,check record 2,600
D,transaction 1, 600
C,check record 3,700
D,transaction 1, 200
D,transaction 2, 300
D,transaction 3, 200
the schema to processed as
<Requests>
<Request>
<Check>
<CheckRecord>check record 1</CheckRecord>
<Amount>500</Amount>
</Check>
<Transaction>
<TransactionRecord>transaction 1</TransactionRecord>
<Amount>300</Amount>
</Transaction>
<Transaction>
<TransactionRecord>transaction 2</TransactionRecord>
<Amount>200</Amount>
</Transaction>
</Request>
<Request>
<Check>
<CheckRecord>check record 2</CheckRecord>
<Amount>600</Amount>
</Check>
<Transaction>
<TransactionRecord>transaction 1</TransactionRecord>
<Amount>600</Amount>
</Transaction>
</Request>
<Request>
<Check>
<CheckRecord>check record 3</CheckRecord>
<Amount>700</Amount>
</Check>
<Transaction>
<TransactionRecord>transaction 1</TransactionRecord>
<Amount>200</Amount>
</Transaction>
<Transaction>
<TransactionRecord>transaction 2</TransactionRecord>
<Amount>300</Amount>
</Transaction>
<Transaction>
<TransactionRecord>transaction 3</TransactionRecord>
<Amount>200</Amount>
</Transaction>
</Request>
</Requests>