The big issue I have with this question is that Supportability and Compactness or whatever seem to be the same thing: well written code.
Code that is not maintainable does not look "elegant" to me.
Sometimes you need code that looks messy. However it should be hidden away in the background.
Separation of concerns is a big issue to me. Business logic code should not be parsing XML files. The XML files, if you have to have them, should be pre-parsed into data and then business logic runs on that data. If you don't want to extract the data from the XML right away then have some class that holds the XML and retrieves on demand.
Efficiency of the system is an important issue but code that is written in a poor manner will not be efficient either.
I generally concentrate on low coupling and extensibility. The code may look a bit more complex in order to support these, but my feeling is that it makes things more maintainable, not less, as you can add new functionality without breaking what is already there.