No, unfortunately not, as there is a big difference between compression and binary transmission. See the following example:
<Some-Element xyz="345678,901">
<Some-Other-Element abc="54321,876">
<Some-Value my-attribute="123456,789"/>
</Some-Other-Element>
</Some-Element>
With compression, you can certainly get rid of the whitespace, and if the compression algorithms is better you even will have refs instead of element names, but that's it, mostly. What about the numbers? Still transfered untouched, as unique hence uncompressable. So lots of integers and decimals screws compression.
Binary transmission on the other hand will only need four bytes per integer. That makes twelve bytes for all the above attributes.
You would require oids (or some other way to decode) for numbers, boolean, strings, etc for each binary representation, no ?
My assumption has been that the true binary format is something dictated by Javascript engine (I assume it would be V8 since Pl/V8 exists). So it seems we could just glean it from there and need no other transmitted information besides that “standard”.
Not having followed JS too closely are there other binary formats besides V8 ?