Consume .NET SOAP WebService that returns Datasets

Hello,

I am trying to use a .NET WebService from my app. The WebService returns .NET DataSets that use the “diffgram” element. The Delphi WSDL importer just expose the “scheme” element, but not the diffgram one.

I was wondering if it was possible using RO-SDK for this. I already did a WSDL Import on ServiceBuilder but the result is the same (only the scheme element is exposed).

Or, if not possible, any idea of what has to be changed on the .NET side to have something that it’s compatible with the outside world? I don’t have direct control on the WebService I need to access, but I might ask the creator to do some changes to make it compatible outside .NET, just don’t know what’s needed.

Thanks!

Hello

Could you show the WSDL you try to import? You can send it to support@ if you don’t want to show it here.

Regards

Sure. I am seding it to support@

I managed to access the missing node adding a property called diffgram to the class generated by the Delphi WSDL importer. It would appear that the WSDL or the response is mal formed, and thus not correctly interpreted by the tools. I read in several sites that this is a know… bug/feature when using .NET datasets outside a .NET environment, but I really don’t know where is the real issue.

Anyway, check out the WSDL and see if there is something to do inside RO-SDK to be able to consume that kind of services out of the box.

Thanks for your help.

Hello

Thank you for the WSDL. These diffgram elements are defined in WSDL as <s:any>. Unfortunately this data type is not supported by our SOAP serializers (because this is just a placeholder that can contain literally any vaild XML).

So such elements are omitted while importing RODL because RO SDK won’t be able to access or write them anyway. And even if you would be able to access that data you would have to parse the XML manually anyway.

I’m afraid the only option here would be to follow this approach: Using RemObjects Hydra to consume a .NET WCF service from Delphi
Here .NET code is used to access the remote WCF server and provide received data to the Delphi host.

Regards

Thanks for looking into this.

I managed to access the diffgram element just adding a property called that to the code generated by the Delphi’ WSDL importer.

I am guessing that RO could also support something like this, even if it’s just for accessing the raw XML data.

Thanks again.

Main issue here that your solution will work only in your particular case.

In other words it will work only until the XML element sent has the same name as you defined in RODL. At the same time server’s WSDL states that there could be anything under any name. While we will discuss is it possible to support such definitions and data I cannot give any promises, ETA etc.