I need to translate from XMI to OWL (XML/RDF serialized) in Java, so essentially this is XML to XML translation and most probably I could just play with regex and use replaceAll to what I need, but that seems very messy way to do it.
What would you suggest so that it will be easily customizable later (my OWL model might change slightly in the future)?

My idea was to read XMI into created class hierarchy (according to my OWL model) and then using some template engine to output it as OWL (XML). Do you know of easier way that would be easily customizable?