(note by Reinier)
I'm a formal language geek so I have a couple of questions ...
1) Why use XML? For logs it has a disadvantage: as long / when the log isn't properly terminated, you don't end up with a valid XML document.
2) When using XML, why not express as much of the constraints as possible? E.g. XML has a build-in mechanism for crossreferencing that even DTDs understand (ID/IDREF); it seems useful here. I'll give examples when I have time.
3) It'd be a good idea to have a formal spec so we can perform automatic syntax validation. The best reason for doing this is to clear up ambiguities. You'd be surprised how many I found while doing the initial draft for a RELAX-NG spec. The draft is very unfinished (not a valid RELAX-NG spec yet).
4) (From Greg) Also, could any server commands be added to the log? (possibly if gamelog set to >=30) Would be helpful for identifying unexpected changes to the game, who made them, etc.