Most of the discussion seems to be centered around the size of the XML representation. gzip is hard to beat at that.
But the more interesting point in a binary encoding is performance. If XML should not be used for communication between systems, but also for internal communication inside the system (e.g. for SOAP IPC), performance is becoming much more important. And the performance difference between a good binary encoding and text XML is pretty large. CWXML, which is a pretty fast parser that supports both BXML and XML, is at least 3x faster when reading BXML compared to text XML, and it is 30x faster than reading gzip'd XML (http://www.cubewerx.com/main/cwxml/).
Beside that, I don't think it matters which serialization format is used for the XML data model. The data model is the important part, not the text. The text serialization is quite useful because text happens to be a widespread data format, so you can use existing tools to view and edit XML. I agree with the microsoft position that having to support more than one serialization format would be a bad thing. Every XML processor needs to support the text format. But that doesnt mean that there can't be an alternative in environments where the producer and consumer are able to negotiate the format, like with SOAP over HTTP. For these cases it makes sense to have a single binary format, because otherwise each vendor will have its own format. This would create a situation where a product may be able to interoperate with those of other vendors, but it will be slower.
|