I think many things in XML are silly, misplaced, or downright wrong. However, I do think that if you choose to use XML, some basic ideas are essential to use it correctly; otherwise, why bother to use XML with Java in the first place? So please consider these suggestions not because you'll use XML properly or please the semantic gods. Those are bad reasons to do anything in your programming life. But if you look at them as ways to get more out of XML, and to write better performing software, then this all makes a lot of sense.