Unfortunetely I can't make this. Is it being recorded as I'd be really interested in watching it. 

Hi @Mike Henderson 
Thanks for the reply, however, the snippet I provided was only a subset of a rather large XML file. I didn't provide all of it as it would have taken a long time to remove patient data. 

I have however solved the problem. The import doesn't like it when there are two of the same nodes with different structures. What you can do though is turn on XMLSEQUENCE, and the import will honour the exact order of the XML from what you've defined in the class. Here's a snippet of what I did:

Class Phu.Epro.Schema.Itk.Payloads Extends (%Persistent%XML.Adaptor)
{

Parameter XMLIGNOREINVALIDTAG = 1;

Property Count As %String(XMLNAME "count"XMLPROJECTION "attribute");

Property Payload As Phu.Epro.Schema.Itk.Payload(XMLNAME "payload");

Property PayloadWithBase64 As %GlobalCharacterStream(XMLNAME "payload");

Parameter XMLSEQUENCE = 1;  }

After some testing, it would appear as soon as I add another node/object in, it throws the same error, as if I cannot have a mix of content and elements:

<payload id="clinicalDocument">
                    <ClinicalDocument>
                    </ClinicalDocument>
                </payload>
                <payload filename="eaf7a956-f09e-43a0-9a20-95696dc5acac.pdf" id="binaryDocument">temp</payload>

Julian, thank you! In leading to the -400 error, I opened the class, compiled it, and re-ran the insert and it worked! Thanks again., 

Hi Julian - thanks for replying. I have tried that, and it changes the error to -400 which is a generic fatal error. 

Thank you @Vic Sun @Eduard Lebedyuk and Robert for all responding to this query. I've realised that our Business Process were set to E=R which is was causing it to re-attempt immediately after abortin the message from the operation. As the operations are retry indefinitely unless aborted, we've settled for E=D, which means we can then abort from the process. Thanks again. Lewis