in a current project, I am requiered to work with an external Soap-Interface. While I cannot give specifics, its an odd one, a form I didn’t encounter before, therefor I wanted to ask what reasoning could be behind this design decision, or if it is a sane one in the first place.
The WSDL has only one operation, a search. It features a request and a response, both defined in an external XSD, which is being imported into the WSDL. Now, instead of using the request- and response-elements defined in the XSD directly, the WSDL only uses <xs:any/> and somehow assumes they are being filled with the proper elements. I cannot tell how the external system works behind this interface.
It’s not that it doesnt work. It just feels so..wrong.
It is common for a wsdl file to reference external xsd types, in fact I would say that this is best practise.
The reason is that this enforces the difference between the xsd types and wsdl message types.
Xsd types define data, and they “belong” to the domain model of your application.
The
<wsdl:message/>types are a complete definition of the request and response contract as required by the soap service, port, and bindings and belong to the soap stack.