There are many ways to do this,
- Post the large XML to TN and use large file handling techniques to handle the contents in it as individual transactions.
- If you dont have TN license then create a Java service using StAX parser to parse the XML and split it in to small XML files(individual level) and then process them using File poller port.
- Use UM but instead of splitting them by size(6 MB you mentioned earlier), split them by transaction data which should bring down the size of the message down considerably.
I have used StAX to successfully parse XML Files with more than 4 GB for one of the clients on an Integration server which had 4 GB Max memory allocation. I usually split them by number of records per file and then write it to a File share from where a File poller port would pick the file and process the records.