In my experience, I find that elements are preferable over attributes.
As an XML document/schema evolves over time, it is easier to turn a simple XML element into a complex/compound element as compared to turning an attribute into a compund/complex element.
Attributes are most useful for indexing when you want to normalize the "objects" in the XML document.