I've heard that using single quotes to surround XML attribute values is a "bad style". Is this correct?
Should I always write:
<element attr="value">
Or is it acceptable to write:
<element attr='value'>
Or does it not matter which style I use?
Both are legal. Choose one and stick with it. It doesn't matter.
From the spec:
AttValue ::= '"' ([^<&"] | Reference)* '"'
| "'" ([^<&'] | Reference)* "'"
Showing that both are valid, as is mixing the two styles within an element, per attribute (though I suggest being consistent within any single document/set of documents).