当一个人通常创建一个SOAP请求和响应元素时,它将以__ Request和_ _Response结束,SoapUI会在您导入WSDL时将其拾取。
<xs:element name="SampleRequest">
<xs:complexType>
<xs:sequence>
<xs:element name="Testing" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SampleResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="Testing" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
我正在忙着转换一段旧的VB6代码,而DTD的SOAP等价物将使用相同的元素进行请求和响应:
<xs:element name="Sample">
<xs:complexType>
<xs:sequence>
<xs:element name="Testing" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
我可以在XSD中设置一些东西,以便SOAPUI将Sample作为请求和响应来接收吗?
答案 0 :(得分:2)
当SOAPUI读取WSDL时,它使用wsdl:message元素中定义的元素(因此使用元素名称),该元素从wsdl:operation元素作为请求,响应和可选错误引用。你对XSD所做的一切都不会改变它。元素也不必以“请求”作为请求结束(对于响应也是如此)。
答案 1 :(得分:0)
通过将所有SampleRequest和SampleResponse替换为Sample并删除现在重复的wsdl:message来解决它:
...
<wsdl:message name="Sample">
<wsdl:part element="tns:Sample" name="Sample">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="SampleSoapService">
<wsdl:operation name="Sample">
<wsdl:input message="tns:Sample" name="Sample">
</wsdl:input>
<wsdl:output message="tns:Sample" name="Sample">
</wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="SampleSoapServiceSoap11" type="tns:SampleSoapService">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="Sample">
<soap:operation soapAction="" />
<wsdl:input name="Sample">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="Sample">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="SampleSoapServiceService">
<wsdl:port binding="tns:SampleSoapServiceSoap11" name="SampleSoapServiceSoap11">
<soap:address location="http://localhost:8080/paygate-SampleSoapService/ws/SampleSoapService" />
</wsdl:port>
</wsdl:service>