XML Bad Practices
Overcomplexity
Overcomplexity is a really general issue that applies equally to software architecture, and arguably to life in general. There is however something specific to be said about vocabulary design here: adding an element to a specification is simple.
This is not a force to be ignored. XML being by nature extensible, it is tantalisingly easy
to believe that functionality can be added to a language simply by adding an element. When
working on a specification, one will often hear: "Well, it's simple. Look. Just add in a
<feature param1='this' param2='that'/>
element and wow! BAM! It rocks!"
That it is not the case is obvious when looking at the work of others, but all of a sudden becomes less clear when it's the feature one wants. As a rule of thumb, before proposing any new feature, one should thumb through old drafts of SVG Full 1.2 and meditate a little on the frailty of life when caught stuck with a roomful of implementers carrying screwdrivers.