I've done both.

Currently (for the most part) our XML documents aren't validated against XSD and we tend to hang anything anywhere (as long as it's valid XML). It's (partly) because we're using 3rd party XSD structures for the majority of our stuff.

PROS: everyone understands basic structure and has flexibility to hang additional elements | attributes where needed
CONS: can't use XML mapping software (XMLBeans come to mind) to covert them to base elements. All mappings are done by hand (to and from). Validation of XML is extremely limited (compared to XSDs)

Using XSD is pretty much the opposite.

It sorta depends on what you want to do. Personally I prefer XSDs (if I get the choice)