I'm going to use Protocol Buffers for doing my data serialization in my new projects. protobuf is from Google and is a way of encoding structured data in an efficient yet extensible format. Google uses Protocol Buffers for almost all of its internal RPC protocols and file formats. There is an overview of Protocol Buffers that is good reading.
You know, for years I promoted the use of XML for data interchange, but now I think that XML is too heavyweight for doing most kinds of data interchange, and should be instead used for data archiving. That's too bad, XML looked really sweet there, but really, performance does matter.