From 5f79c4a481d7747ad92532d761c62a55c6833f1d Mon Sep 17 00:00:00 2001 From: Ronny Heidenreich Date: Thu, 9 Nov 2023 15:07:24 +0100 Subject: [PATCH 1/2] Fix: Documentation Element not recognized anymore since commit b4998a5d SchemaItem.Documentation is a collection that never IsTextElement, but its items are --- Units/XMLDataBindingGenerator.pas | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Units/XMLDataBindingGenerator.pas b/Units/XMLDataBindingGenerator.pas index 2d32096..6c0c6b7 100644 --- a/Units/XMLDataBindingGenerator.pas +++ b/Units/XMLDataBindingGenerator.pas @@ -1782,7 +1782,10 @@ begin if HasDocumentation then begin for documentationIndex := 0 to Pred(SchemaItem.Documentation.Count) do - Result := Result + SchemaItem.Documentation[documentationIndex].Text + #13#10; + begin + if SchemaItem.Documentation[documentationIndex].IsTextElement then + Result := Result + SchemaItem.Documentation[documentationIndex].Text + #13#10; + end; Result := Trim(Result); end; @@ -1790,10 +1793,16 @@ end; function TXMLDataBindingItem.GetHasDocumentation: Boolean; +var + documentationIndex: Integer; + begin - Result := Assigned(SchemaItem) and - (SchemaItem.Documentation.Count > 0) and - SchemaItem.Documentation.IsTextElement; + Result := False; + if Assigned(SchemaItem) then + begin + for documentationIndex := 0 to Pred(SchemaItem.Documentation.Count) do + Result := Result or SchemaItem.Documentation[documentationIndex].IsTextElement; + end; end; From 05dcbf0f09942dad512fdc5312e836eb599f779e Mon Sep 17 00:00:00 2001 From: Ronny Heidenreich Date: Thu, 9 Nov 2023 15:10:03 +0100 Subject: [PATCH 2/2] include xml:lang and source attributes in GetDocumentation --- Units/XMLDataBindingGenerator.pas | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Units/XMLDataBindingGenerator.pas b/Units/XMLDataBindingGenerator.pas index 6c0c6b7..5c7720f 100644 --- a/Units/XMLDataBindingGenerator.pas +++ b/Units/XMLDataBindingGenerator.pas @@ -1784,7 +1784,15 @@ begin for documentationIndex := 0 to Pred(SchemaItem.Documentation.Count) do begin if SchemaItem.Documentation[documentationIndex].IsTextElement then + begin + if SchemaItem.Documentation[documentationIndex].HasAttribute('xml:lang') then + Result := Result + '[' + SchemaItem.Documentation[documentationIndex].Attributes['xml:lang'] + '] '; + + if SchemaItem.Documentation[documentationIndex].HasAttribute('source') then + Result := Result + '(' + SchemaItem.Documentation[documentationIndex].Attributes['source'] + ') '; + Result := Result + SchemaItem.Documentation[documentationIndex].Text + #13#10; + end; end; Result := Trim(Result);