Having things in a known and well defined format makes the plan B option
available. checkfs and bfs_recover are good plan B options for filesystem
corruptions, and they didn't require storing all filesystem data structures
as XML.
If you need inter-operability with other operating systems or apps,
BMessage is out of the way and so is a custom homegrown XML Kit. Better use
the same code on all platforms to read and write the files in that case
(libxml is a valid choice).