Mal ganz ehrlich ...
SOAP ist in der Hinsicht ein bissl "schrottig", da es die
XML-Datei "selber" aus Strings und nicht über eine (ordentliche)
XML-Lib zusammenbaut.
Das Auslesen geschieht aber dennoch über einen
XML-Parser, welcher dann über die ungültige
XML-Datei rummotzt und den Dienst verweigert.
(XML-Parser sollen, laut Spezifikation, bei sowas den Vorgang abbrechen ... ein Reparaturmodus, so wie bei einem HTML-Parser, ist nicht vorgesehn)
Tja, das Einzige was du da machen könntest wäre warten, bis Emba auf eine
QC-Meldung (solltest besser mal Eine einreichen) reagiert, aber das kann Jahre dauern, falls überhaupt was passiert.
(wie man sieht
http://www.delphipraxis.net/internal...146020#1146020 )
Ansonsten blieben dir nur 2 Möglichkeiten:
- auf Generics verzichten
- oder alle Stellen in den vielen
SOAP-Units suchen und diese Konvertierung selber einbauen,
aka versuchen die Delphi-QuellCodes zu ändern und danach die abhängigen Units, inkl. der Packages, neu zu kompilieren.
[add]
Falls du das
SOAP dazu bringen könnest, daß es die Vorfahren deines Types nicht mit auflistet, dann könntest du den generischen Typen zumindestens kapseln und somit die bösen < und > nicht in der
XML-Datei auftauchen lassen.
Delphi-Quellcode:
type TMyList = class(TList<string>) end;
function TJamSOAPWebService.GenericList(const Value: TMyList): TMyList; stdcall;