The normal way to do this kind of thing is to start with an XML schema, then use this to generate the EMF model, and then generate Java code. This is describe in this EMF tutorial.
You don't need to implement read/write methods. Rather you make use of EMF library code to do the XML import and export. I don't have my copy of the EMF book in front of me right now, but it is covered in there. Alternatively, take a look at what the generated EMF editor does when you load or save a model instance.
EDIT
Here is a resource utility class from an EMF-based project I developed a couple of years ago. Look at the load*
methods. Note that this is not necessarily the best way to do this ... but it worked for me.
EDIT 2
I just realised that I was using XMI not plain XML. Configuring an XML reader with a custom schema and (potentially) a customized schema mapping is likely to be different. So, returning to my original answer, look at the generated code!!.