Hi Experts.
I'm using Delphi XE6, using WSDL Importer with default options.
This is response I get from server:
<group id="709">
<fact term="Amount" value="141578823.7700" typ="Decimal"/>
<fact term="Currency" value="RSD" typ="String"/>
</group>
<group id="709">
<fact term="Amount" value="2854.2100" typ="Decimal"/>
<fact term="Currency" value="USD" typ="String"/>
</group>
<group id="709">
<fact term="Amount" value="42182.5000" typ="Decimal"/>
<fact term="Currency" value="EUR" typ="String"/>
</group>
Select all Open in new window
(*Shortened for brewity*)
Everything gets read fine, except that for each of groups 709
I get only first group data . So I end up with:
Data[1]=709/141578823.7700/RSD
Data[2]=709/141578823.7700/RSD
Data[3]=709/141578823.7700/RSD
Select all Open in new window
instead of
Data[1]=709/141578823.7700/RSD
Data[2]=709/2854.2100/USD
Data[3]=709/42182.5000/EUR
Select all Open in new window
This is what WSDLImp gave me as a result:
Fact = class(TRemotable)
private
Fterm: string;
Fterm_Specified: boolean;
Fvalue: string;
Fvalue_Specified: boolean;
Ftyp: string;
Ftyp_Specified: boolean;
procedure Setterm(Index: Integer; const Astring: string);
function term_Specified(Index: Integer): boolean;
procedure Setvalue(Index: Integer; const Astring: string);
function value_Specified(Index: Integer): boolean;
procedure Settyp(Index: Integer; const Astring: string);
function typ_Specified(Index: Integer): boolean;
published
property term: string Index (IS_ATTR or IS_OPTN) read Fterm write Setterm stored term_Specified;
property value: string Index (IS_ATTR or IS_OPTN) read Fvalue write Setvalue stored value_Specified;
property typ: string Index (IS_ATTR or IS_OPTN) read Ftyp write Settyp stored typ_Specified;
end;
Record = array of Fact;
Group = class(TRemotable)
private
Fid: string;
Fid_Specified: boolean;
Ffact: Record;
Ffact_Specified: boolean;
procedure Setid(Index: Integer; const Astring: string);
function id_Specified(Index: Integer): boolean;
procedure Setfact(Index: Integer; const ARecord: Record);
function fact_Specified(Index: Integer): boolean;
public
destructor Destroy; override;
published
property id: string Index (IS_ATTR or IS_OPTN) read Fid write Setid stored id_Specified;
property fact: Record Index (IS_OPTN or IS_UNBD) read Ffact write Setfact stored fact_Specified;
end;
Array_Of_Group = array of Group;
Main = class(TRemotable)
private
Fgroup: Array_Of_Group;
Fgroup_Specified: boolean;
procedure Setgroup(Index: Integer; const AArray_Of_Group: Array_Of_Group);
function group_Specified(Index: Integer): boolean;
public
destructor Destroy; override;
published
property group: Array_Of_Group Index (IS_OPTN or IS_UNBD) read Fgroup write Setgroup stored group_Specified;
end;
Select all Open in new window
Iterating through all Groups of Main, and reading all Facts, I get as I've mentioned only first set of facts that I come across repeated as many times as there is group with id=709.
So, my question is. What do I need to do in order to get all distinct groups and their values? What am I missing?