Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

like image 382
Wes P Avatar asked Oct 26 '22 07:10

Wes P


2 Answers

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).

like image 187
John Saunders Avatar answered Nov 15 '22 08:11

John Saunders


According to the MSDN documentation for this to work, the namespace, name, and wire signature must be identical in all services. Something looks like they're not matching up so these are a good place to start looking.

like image 21
Ray Booysen Avatar answered Nov 15 '22 08:11

Ray Booysen