Peter Flynn said:
No, it's not true, merely some people's opinion.
Some opinions are sound, some are not.
Attributes are there
to be used, and IMHO especially for numeric, categorical, and other discrete data (see the article in the FAQ at
http://www.ucc.ie/xml/#attriborelem).
That's merely some people's opinion.
Seriously, generalized markup was designed to be used for textual content, using attributes to specify properties of elements, not to carry content. But since XML is already a goofed-up trivialization of generalized markup, everyone and his brother can play with it as desired. Some games are just more obscure and risky than others. It's usually the intended _use_ of markup that will matter.
But just think about this: If you wish, or even need, to indicate changes in the human language used in a document's content, you can do that for content, using the xml:lang attribute (and an extra element if needed). But there's no way to do anything like that for data in attribute values. (This has been observed e.g. in HTML authoring: since the <img> element, for embedding an image, was poorly designed to carry the image's textual replacement in an attribute, alt="...", there is no way to indicate changes in language in the textual replacement. For such reasons, an <object> element was designed, for embedding data in general, and it has the replacement text as the element's content.)