RODL Generation not working 9.2.103.1311

It is German(Germany)

it works for me:

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.