.netweb-serviceswsdl.exe

wsdl.exe /sharetypes


I'm working with multiple third party webservices (from the same vendor) that appear to be using the same object structure server side. One of the services allows me to query a list of users by role, and another allows me to query a single user by ID. In order to get this to work the best way possible, the users returned from both services need to be able to be used interchangeably.

Enter wsdl.exe. I'm aware that /sharetypes does what I want it to do, however, when I generate my proxy, there end up still being multiple versions of the objects (i.e. Person, Person1, ...).

The command I'm executing is as follows:

wsdl.exe /sharetypes /language:VB http://mbptest2.seniormbp.com:8080/SeniorSystemsWS/UserManagementService.asmx?wsdl http://mbptest2.seniormbp.com:8080/SeniorSystemsWS/DataExportService.asmx?wsdl http://mbptest2.seniormbp.com:8080/SeniorSystemsWS/UserProfileService.asmx?wsdl


Solution

  • The schema for DataExportService has tns and the target namespace defined as http://www.senior-systems.com/. The schema for UserProfileService has tns and the target namespace defined as http://senior-systems.com/.

    Those are different, even if they happened to resolve to the same web server when used as a URL. XML namespaces are compared textually, not according to URL syntax. For example, http://senior-systems.com/ and http://senior-systems.com would be two different namespaces (hint: one is missing the trailing slash).