When designing schemas, I generally prefer attributes as qualifiers that provide common metadata (that is to say, they are likely to be used across a non-unitary subset of all elements). An identifier or a reference to an identifier, for instance, is something that is generally globally needed. Attributes also make sense when the body of an element is itself a template, I consider this a weaker case - attributes here exist primarily to make for a cleaner syntax, and sometimes this can create some ambiguities between the best representation of something in XML and in RDF (and I'm still not sold that the RDF-XML format is in fact a good XML design).
Kurt Cagle
Community/Managing Editor
Data Science Central, A TechTarget Property