1
0
mirror of synced 2024-11-15 03:23:51 +00:00

Choices with nested compositors (sequences or choices) are now recognized as choices

This commit is contained in:
Dietmar Schölzel 2022-06-10 15:20:22 +02:00
parent d86bfbb276
commit eca77e1246

View File

@ -790,13 +790,23 @@ end;
function TXMLDataBindingGenerator.IsChoice(AElement: IXMLElementDef): Boolean; function TXMLDataBindingGenerator.IsChoice(AElement: IXMLElementDef): Boolean;
var var
compositor: IXMLElementCompositor; compositor: IXMLElementCompositor;
parent: IXMLNode;
begin begin
Result := False; Result := False;
if Supports(AElement.ParentNode, IXMLElementCompositor, compositor) then parent := AElement.ParentNode;
Result := (compositor.CompositorType = ctChoice) and while Supports(parent, IXMLElementCompositor, compositor) do
(compositor.ElementDefs.Count > 1); begin
if compositor.CompositorType = ctSequence then
begin
parent := compositor.ParentNode;
end else
begin
Result := (compositor.CompositorType = ctChoice) and
(compositor.ElementDefs.Count + compositor.Compositors.Count > 1);
Exit;
end;
end;
end; end;