I have a problem using the .PAS files that I generated by importing several WSDL Files. The issue is that I have one main WSDL (
http://components.groove.net/Groove/Components/GWS/2_5/wsdl/GrooveEvents.wsdl )that is returning a very simple SOAP response. The <EventData> element contains different data below it (xml sequence) depening on what the type attribute is - here is where the problem is.
For example, the event that I am tracking is a File event, and it returns an <EventData type="xsi:type="e:FileAddE
ventData">
<FileDescr
iptor>...<
/FileDescr
iptor></Ev
entData> element. The binding that is created from the WSDL file for the event (listed above) simply creates an EventData.type (Widestring) attribute - that's it. I need to get the actual data out of the event and I really don't want to manually parse the XML, I would like to learn how to properly register the data types using Delphi - stubborn, but more effective in the long-term.
So far I have taken the class created for the event data "EventData", and I have subclassed to create an data structure that adds the .FileDesc: FileDescriptor as a property - but I have no idea how to register this interface, nor where to do it. My gut says that I will have to register it in the GrooveEvents.pas (file created on import of the GrooveEvents.wsdl). My guesses are it has something to do with the RemClassRegistry.RegisterX
SClass function - but don't let me misguide you!
The Files WSDL can be found at (
http://components.groove.net/Groove/Components/GWS/2_5/wsdl/GrooveFilesBase64.wsdl). It contains the class that handles the <FileDescriptor>.
NOTE: I have validated that the SOAP response does contain the info I am looking for (i.e. the XML is there - the sub-element for FileDescriptor is just being ignored.)
Here is a .Net example of the problem and a solution, obviously in a MS environment (both C# and VB.Net are shown):
http://www.groove.net/support/forums/messageview.cfm?catid=15&threadid=7682Any guidance (or code!) is greatly appreciated.