It is German(Germany)
The RODL resource file has been correctly generated with our tools. The files I sent you were generated with it. The XML can be loaded with common XML readers and can be parsed correctly.
The issues arise because after loading the resource file and creating an initial instance of TRODLLibrary, the procedure RemovePrivateServices is called which uses the faulty code from WriteRODLtoStream.
I fixed the WriteRODLtoStream with the following code:
procedure WriteRODLtoStream(aLibrary: TRODLLibrary; aStream: TStream; aRemovePrivateServices: Boolean);
var
Buffer: TBytes;
lRODLToXML: TRODLToXML;
begin
lRODLToXML := TRODLToXML.Create(nil,True);
try
lRODLToXML.ExcludePrivateServices := aRemovePrivateServices;
lRODLToXML.Convert(aLibrary);
//AAN Start Changes
//AAN Buffer := StringToAnsiBytes(lRODLToXML.Buffer.Text);
{$IFDEF UNICODE}
Buffer := StringToUTF8Bytes(lRODLToXML.Buffer.Text);
{$ELSE}
Buffer := StringToAnsiBytes(lRODLToXML.Buffer.Text);
{$ENDIF}
//AAN End Changes
finally
lRODLToXML.Free;
end;
if Length(Buffer) > 0 then
aStream.Write(Buffer[0], Length(Buffer));
end;
With that code fixed I was able to load the RODL. Unfortunately the next problem arised, the wsdl can not be generated because of similar issues.
I do not have time to debug all possible sources of bad code generation.
Generally you are generating XML without using any XMLDocument (MSXML or similar). Handcrafted xml generation is in my opinion not a good practice to generate XML.
Another observation is that the RODL and MSDL are not being cached. It would be nice to have it cached to provide better performance.
thx, I will re-review our code
Thanks, logged as bugs://78267
bugs://78267 got closed with status fixed.