You've lost me again. You've described a parser (in the context of RPC), and now you say it's simpler than SOAP. But a parser itself can never replace a complete RPC protocol (unless your previous use of RPC was complete overkill).
Well, you are right, parser does not replace everything involved into RPC. Still, for the network layer we need only serialization/deserialization. The rest of stuff (authentication, encryption and so on) can be part of the RPC code itself. Nothing prevents you from allowing only authentication procedure for the first requests and then extending/replacing parser for the subsequent requests.
Serialization can be very simple. For example something similar to Chunked Transfer of HTTP. First comes line with length, then specified number of bytes, finally comes the with zero to indicate the end of request/response.
Please don't consider my post as an attempt to teach how to do GOOD compiler. It was an attempt to describe some way to create SIMPLE parser. This parser will be inefficient, since efficiency usually comes at the cost of complexity. But for one thing, working with SOAP is neither efficient, nor simple.
SOAP is an attempt to make one thing suitable for all possible usages. I believe that it is more appropriate to create tools fitting specific needs and I'm searching for ways to make this approach simple.