!(Define) XML -> Domain redo

Because XMLDomain showed a lot of errors, I created a redesign of the
class, making it more clear and removing unused methods.