Determine if the data in question is fundamentally metadata or content. Metadata is information that describes the container while content is the information the container conveys. If the value can be used as an attribute value, then I prefer attributes. It is also possible to have it both ways. Attribute defined by the HyTime value reference facility.
Attribute value is a pair of attribute names.
First name is attribute whose effective value is to be addressed, second name is attribute that addresses the value. May be the same attribute. In other words, after parsing the document and building some in-memory data structure or abstraction of the document, the effective value of the name attribute will be the data derived from the name element, not the ID reference used to address the name element. Finally, there may be overriding requirements that either force everything to be in attributes or nothing to be in attributes. There may also be tool limitations that influence your decision one way or another.