本文概述
RPC和Document Web服务之间有许多区别。 RPC和Document之间的重要区别如下:
RPC样式
1)RPC样式的Web服务使用方法名称和参数来生成XML结构。
2)很难对照模式验证生成的WSDL。
3)在RPC样式中, SOAP消息发送的元素个数相同。
4)RPC样式消息紧密耦合。
5)在RPC样式中, SOAP消息保留操作名称。
6)在RPC样式中, 参数作为离散值发送。
让我们看看RPC样式生成的WSDL文件。
WSDL文件:
在WSDL文件中, 它没有指定类型的详细信息。
<types/>
对于消息部分, 它定义名称和类型属性。
<message name="getHelloWorldAsString">
<part name="arg0" type="xsd:string"/>
</message>
<message name="getHelloWorldAsStringResponse">
<part name="return" type="xsd:string"/>
</message>
对于soap:body, 它定义了use和namespace属性。
<binding name="HelloWorldImplPortBinding" type="tns:HelloWorld">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
<operation name="getHelloWorldAsString">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal" namespace="http://srcmini02.com/"/>
</input>
<output>
<soap:body use="literal" namespace="http://srcmini02.com/"/>
</output>
</operation>
</binding>
文件样式
1)可以根据预定义的架构来验证文档样式的Web服务。
2)在文档样式中, SOAP消息作为单个文档发送。
3)文档样式消息是松散耦合的。
4)在文档样式中, SOAP消息丢失操作名称。
5)在文档样式中, 参数以XML格式发送。
让我们看看Document样式生成的WSDL文件。
WSDL文件:
在WSDL文件中, 它指定具有名称空间和schemaLocation的类型详细信息。
<types>
<xsd:schema>
<xsd:import namespace="http://srcmini02.com/" schemaLocation="http://localhost:7779/ws/hello?xsd=1"/>
</xsd:schema>
</types>
对于消息部分, 它定义名称和元素属性。
<message name="getHelloWorldAsString">
<part name="parameters" element="tns:getHelloWorldAsString"/>
</message>
<message name="getHelloWorldAsStringResponse">
<part name="parameters" element="tns:getHelloWorldAsStringResponse"/>
</message>
对于soap:body, 它仅定义use属性, 而不是名称空间。
<binding name="HelloWorldImplPortBinding" type="tns:HelloWorld">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<operation name="getHelloWorldAsString">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
评论前必须登录!
注册