XML is ok for complex docs where you have a detailed structure and relationships. JSON is good for simple objects. YAML is good for being something to switch to for the illusion of progress.
Meh. I just wish XML was easier to parse. I have to shuttle a lot of XML data back and forth. As far as I can tell, the only way to query the data is to download a whole engine to run a special query language, and that doesn't really integrate into any of my workflows. JSON retains the hierarchy and is trivially parsed in almost any programming language. I bet a JSON file containing the exact same data would be much smaller also, since you don't list each tag twice.
XML is also tricky to parse because people forget it is for documents too. It's basically like HTML. Mixed content elements are allowed. <foo>hey <bar>there</bar> friend</foo> is valid XML. So iterating over elements is trickier than JSON (which is just key value pairs and arrays).
Idk, I never used the weird advanced features of YAML, but the basics seems really nice for stuff you want people, especially non programmers, to edit. I generally default to YAML for config files.