The binary is smaller and faster, but only available for TClientDataSets.
XML is larger and slower (both are not so bad, i.e. not an order of magnitude larger or slower). XML is human readable (not recommended at all, but doable) and software. Therefore, it is more portable (as Nick wrote).
TClientDataSets can load and save their own XML style, or you can use the XML Mapper Delphi tool to read and write any XML data.
XSLT can, for example, be used to convert these XML files to any text, including other XML, HTML, CSV, fixed columns, etc.
In contrast to what Tim indicates, both binary and XML can be transmitted via HTTP and HTTPS. However, XML submissions are often evaluated, as they are easier to track.
source share