Hi Liam,
Maybe you are over complexifing, but we cannot judge as we don't know what the “import” use case is. :-)
Is it about webservices being used? Is it about initial data loading? Why the preference for XML? Note that the blog is from 2016...A lot has changed since then e.g. much more focus on REST / JSON API's….
Having in mind that I would solve it with REST/JSON api's I did the following.
The results are inline with the expectations:
So depending on the specialisation you are working with you have to use the correct mapping, but that is inevitable anyway. As you cannot first create the generic object and then specialize it…