RPC是以方法调用的方式描写叙述WebSerivce的,也就是说,你要说清楚调用的那个方法,以及各个參数的名称和值。要描写叙述这些东东。SOAP消息就要有一个统一的规范,指出那一部分是方法名。哪个部分是參数,哪个部分是返回值。换句话说。RPC方式调用的SOAP消息格式是有章可循的,固定的。(比方说。每一个Parameter必须相应一个Part,Part的name必须和參数名一致)。
而Document则是以文档传输的方式描写叙述WebService,仅仅要你的SoapBody里面是一个能够用Schema描写叙述的合法的Xml文档即可了,对详细的格式没有什么要求(Schema要在WSDL里面写)。
能够看出,Document形式要更加灵活——尤其是须要传输特定格式的Xml文档的时候,而RPC的Soap消息实际上也能够用Document形式模拟(仅仅要Schema定义得当)。所以眼下Document方式应用更广泛一些(也是.NET里面的缺省方式)。对Namespace,我认为两者应该没有明显的差别。主要是RPC通常与Encoding模式结合使用,这就要引用Soap的namespace了;而Document仅仅要引用XmlSchema的Namespace定义类型就成了。