sRa*_*Raj 3 java wsdl web-services
我很困惑,因为何时使用SOAPBinding.ParameterStyle.BARE和SOAPBinding.ParameterStyle.WRAPPED.以及哪种绑定样式更受欢迎.它们之间的区别是什么.
ParameterStyle.Bare和ParameterStyle.Wrapped仅影响请求和响应消息的wsdl定义.
让我们举一个例子,我们有一个带有方法"test"的web服务,它有2个输入"string1"和"string2",它返回一个字符串为"rstring".
ParameterStyle.BARE 您的参数名称将作为wsdl中的部件名称显示.
请求消息:
<message name="test">
<part name="string1" element="tns:string1"/>
<part name="string2" element="tns:string2"/>
</message>
Run Code Online (Sandbox Code Playgroud)
回复信息:
<message name="testResponse">
<part name="rstring" element="tns:rstring"/>
</message>
Run Code Online (Sandbox Code Playgroud)
在你的xsd测试和testResponse将定义如下,你的wsdl元素直接引用测试中的元素和xsd的测试响应.
<xs:complexType name="test">
<xs:sequence>
<xs:element name="string1" type="xs:string" minOccurs="0"/>
<xs:element name="string2" type="xs:string" minOccurs="0"/>
</xs:sequence>
Run Code Online (Sandbox Code Playgroud)
<xs:complexType name="testResponse">
<xs:sequence>
<xs:element name="rstring" type="xs:string" minOccurs="0"/>
</xs:sequence>
Run Code Online (Sandbox Code Playgroud)
ParameterStyle.WRAPPED
在这种风格中,您的请求和响应消息将作为"参数"包装在单个输入中,并输出为"结果".并且他们将在xsd中为该中的所有元素引用该特定元素.
请求消息:
<message name="test">
<part name="parameters" element="tns:test"/>
</message>
Run Code Online (Sandbox Code Playgroud)
回复信息:
<message name="testResponse">
<part name="result" element="tns:testResponse"/>
</message>
Run Code Online (Sandbox Code Playgroud)
在你的xsd测试中,testResponse将被定义为与上面相同,
<xs:complexType name="test">
<xs:sequence>
<xs:element name="string1" type="xs:string" minOccurs="0"/>
<xs:element name="string2" type="xs:string" minOccurs="0"/>
</xs:sequence>
<xs:complexType name="testResponse">
<xs:sequence>
<xs:element name="rstring" type="xs:string" minOccurs="0"/>
</xs:sequence>
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,您可以发现差异.这是他们在wsdl中唯一的区别.注意:上面的示例解释了文档类型soap绑定,在RPC中,不涉及xsd,因此RPC.Bare仅适用.
| 归档时间: |
|
| 查看次数: |
12095 次 |
| 最近记录: |