Jest sobie taki XML jako treść odpowiedzi w komunikacji SOAP:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>Napotkano błędy podczas.</faultstring>
<detail>
<ns2:transportOrderFaultList xmlns:ns2="http://api.../TransportOrders/">
<transportOrderFaultRow>
<errorCode>1201</errorCode>
<errorMessage>Brak w rejestrze klienta o numerze 2778704</errorMessage>
</transportOrderFaultRow>
<transportOrderFaultRow>
<errorCode>1213</errorCode>
<errorMessage>Niepoprawny numer NIP klienta 1143767</errorMessage>
</transportOrderFaultRow>
<transportOrderFaultRow>
<errorCode>1405</errorCode>
<errorMessage>Dany typ opakowania jest niewłaściwy dla paczek </errorMessage>
</transportOrderFaultRow>
</ns2:transportOrderFaultList>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
Delphi ładnie wywołuje exceptiona, ale tylko klasy ERemotableException
. Co prawda wsdl opisuje typ transportOrderFaultList
, ale taki typ nie jest zwracany, bo to tylko zawartość ogólnego błędu. Jak się do tego dobrać, jak rozpoznać typ i przypisać do obiektów utworzonych generatorem z WSDL bez zabawy w ręczne przetwarzanie XMLa?