With my black-gloved mechanical hand, I can now do the following:
Yes, it's rather scary in a way. It also required lots of fun pinning down bugs in java.net.URI and some twisted contortions to get around nested and inaccessible output streams one of which performed automatic conversion to UTF-8 (quite unadvisable for binary data).
The results are good though. On my current testset I get SOAP messages 26 times smaller than the original (and 11 times smaller that the gzip'd original). It's also a lot faster to parse than XML. I'll be demoing that next week at the XML Techno Forum in Paris, we'll see if it catches anyone's eye.
now all that's needed is for someone with money to ask us to port this all to Perl...