BDC TypeDescriptor Return value from the attribute
Question
I have a problem with reading return values from the BDC response. I have a Web-service that returns a requisites of a bank account and some of the data comes as attributes in the SOAP response. For example, BIC value in the example below
<getPaymentRequisitesResponse xmlns="http://tempuri.org/">
<getPaymentRequisitesResult>
<PaymentRequisites_t BIC="044583378">
<VendorID>XXXX</VendorID>
<IBAN/>
<SWIFT/>
<BankAddressLine1>Index, City, Streat</BankAddressLine1>
<AccCurr>RUR</AccCurr>
....
....
The BDC schema works fine and does not throw any exceptions during request and response processes. The main part of parameters in the schema:
<Parameter Direction="In" Name="accountNumber">
<TypeDescriptor TypeName="System.String" AssociatedFilter="Account" Name="accountNumber" DefaultDisplayName="Account" />
</Parameter>
<Parameter Direction="Return" Name="Return">
<TypeDescriptor TypeName="BDC.PaymentRequisites_t,ProvisionerAccounts" Name="Return">
<TypeDescriptors>
<TypeDescriptor TypeName="System.String" Name="VendorID" />
<TypeDescriptor TypeName="System.String" Name="VendorSrcID" />
<TypeDescriptor TypeName="System.String" Name="VendorName" DefaultDisplayName="Vendor">
<Properties>
<Property Name="ShowInPicker" Type="System.Boolean">true</Property>
</Properties>
</TypeDescriptor>
<TypeDescriptor TypeName="System.String" Name="BIC">
<Properties>
<Property Name="ShowInPicker" Type="System.Boolean">true</Property>
</Properties>
</TypeDescriptor>
<TypeDescriptor TypeName="System.String" Name="IBAN">
<Properties>
<Property Name="ShowInPicker" Type="System.Boolean">true</Property>
</Properties>
</TypeDescriptor>
<TypeDescriptor TypeName="System.String" Name="AccCurr">
<Properties>
<Property Name="ShowInPicker" Type="System.Boolean">true</Property>
</Properties>
</TypeDescriptor>
.....
When I tried to find any of the requisites, the BIC value in dialog is always empty.
If I made BIC value as an element in the WSDL-schema then it worked fine.
<getPaymentRequisitesResult>
<PaymentRequisites_t>
<VendorID>XXXXXX</VendorID>
<BIC>044583378</BIC>
<IBAN/>
<SWIFT/>
<BankAddressLine1>Index, City, Streat</BankAddressLine1>
....
The main goal is to make it work with attributes but I did not find any solution and additional properties for TypeDescriptor in MSDN resources.
Solution
Unfortunately, it was my mistake. The Business Data Catalog works fine with both types, with an element and with an attribute. However, when the wsdl was changed from the one type to another I had to republish BDC schema into the SharedSerfices.