Do you expect players to edit the file? If so, I would have a strong preference for a format designed to be handed in a plain text editor, rather than XML. I am thinking of the original Rome: Total War, which had dozens of ini files defining everything from the map, factions and characters to the properties of units and buildings, all easy to edit. I loved that, and was very annoyed when the franchise went to a much less accessible format.

XML is good for defining and validating an entity of as much complexity as you like, but it adds a lot of overhead in building the schema.

I am less familiar with JSON, but my perception is that it is deceptive in its simplicity, and may allow people to break the game in unpredictable ways without it being at all obvious what has happened.