【发布时间】:2014-10-14 04:13:43
【问题描述】:
假设我的 WSDL 包含以下内容:
<message name="modifRequest">
<part name="siList" element="sn:siListElement"/>
</message>
<message name="modifResponse">
<part name="siList" element="sn:boolElement"/>
</message>
<portType name="siModificationPortType">
<operation name="delete">
<input message="tns:modifRequest" />
<output message="tns:modifResponse" />
</operation>
<operation name="update">
<input message="tns:modifRequest" />
<output message="tns:modifResponse" />
</operation>
</portType>
在 SoapUI 中生成以下 SOAP 客户端消息,无论是在更新还是删除请求中:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sim="simSchema">
<soapenv:Header/>
<soapenv:Body>
<sim:siListElement>
<!--1 or more repetitions:-->
<sim:si name="?" desc="?" workspace="workspace">
<!--Zero or more repetitions:-->
<sim:bp name="?" value="?" bps="?"/>
</sim:si>
</sim:siListElement>
看来,通过 HTTP 发送到 WS 的唯一内容是 siListElement。但是 WS 怎么知道客户端想要达到的操作(这里是删除/更新)?尤其是在两个操作的输入具有相同结构的情况下。
【问题讨论】: