我需要构建一个托管函数的 SOAP Web 服务,该函数在特定场景中将返回 Object1 类型的对象,而在另一种场景中,同一函数将返回 Object2 类型的对象。可以这样做吗?如果是这样,我将如何将其写入 WSDL 文件中?此时,我有以下语法:
<wsdl:message name = "MyFunctionRequest">
<wsdl:part name = "MyFunctionParameter" type = "xsd:int"/>
</wsdl:message>
<wsdl:message name = "MyFunctionResponse">
<wsdl:part name = "MyFunctionReturnParameter" type = "tns:Object1"/>
</wsdl:message>
<wsdl:portType name = "MyFunctionPortType">
<wsdl:operation name = "MyFunctionOperationName">
<wsdl:input message = "tns:MyFunctionRequest"/>
<wsdl:output message = "tns:MyFunctionResponse"/>
</wsdl:operation>
</wsdl:portType>
有没有办法这样说:
<wsdl:part name = "MyFunctionReturnParameter" type = "tns:Object1|tns:Object2"/>
您只能返回一个结果。
但是您可以将其设为包含
<xsd:choice>
<xsd:element name="one" ... />
<xsd:element name="orTheOther" ... />
</xsd:choice>
您可以搜索一些示例。
但请注意,某些 SOAP 客户端可能会遇到这方面的挑战。通常,当您生成客户端时,您选择的工具会根据 WSDL 中的元素生成类型。