Documentation handling in wsdl/xsd editing and parsing :

+ main windows of the Type Library Editor now has, for the select item, a document view, xsd view and a dependencies view
 + each type edit dialog now has, for the select item, a document view, xsd view and a dependencies view
 + the interface file generator is able to generate the xsd documentation as comments in the Object Pascal source code

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@531 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
inoussa
2008-08-18 18:19:00 +00:00
parent 1e53041c77
commit 7a5a5c150b
38 changed files with 2778 additions and 1727 deletions

View File

@ -22,6 +22,7 @@
</CodeGeneration>
<Other>
<CustomOptions Value="-dWST_IDE
-dWST_HANDLE_DOC
"/>
<CompilerPath Value="$(CompPath)"/>
</Other>

View File

@ -90,16 +90,16 @@ object formImport: TformImport
end
object GroupBox2: TGroupBox
Left = 8
Height = 161
Top = 336
Height = 129
Top = 368
Width = 506
Anchors = [akTop, akLeft, akRight, akBottom]
Caption = ' Messages '
ClientHeight = 143
ClientHeight = 111
ClientWidth = 502
TabOrder = 2
object mmoLog: TMemo
Height = 143
Height = 111
Width = 502
Align = alClient
ReadOnly = True
@ -109,12 +109,12 @@ object formImport: TformImport
end
object GroupBox3: TGroupBox
Left = 8
Height = 136
Height = 168
Top = 184
Width = 506
Anchors = [akTop, akLeft, akRight]
Caption = ' Options '
ClientHeight = 118
ClientHeight = 150
ClientWidth = 502
TabOrder = 1
object edtOptionIntf: TCheckBox
@ -166,12 +166,21 @@ object formImport: TformImport
object edtOptionWrappedParams: TCheckBox
Left = 9
Height = 19
Top = 96
Top = 88
Width = 290
Anchors = [akLeft, akBottom]
Caption = 'Generate easy access interface for wrapped parameters'
TabOrder = 5
end
object edtDocAsComments: TCheckBox
Left = 9
Height = 19
Top = 119
Width = 208
Anchors = [akLeft, akBottom]
Caption = 'Generate documentation as comments'
TabOrder = 6
end
end
end
object Panel1: TPanel

View File

@ -25,43 +25,46 @@ LazarusResources.Add('TformImport','FORMDATA',[
+'erSpacing.InnerBorder'#2#4#8'TabOrder'#2#3#0#0#9'TCheckBox'#15'edtAddToProj'
+'ect'#4'Left'#2#9#6'Height'#2#19#3'Top'#3#128#0#5'Width'#3#182#0#7'Caption'#6
+'"Add the generated files to project'#8'TabOrder'#2#4#0#0#0#9'TGroupBox'#9'G'
+'roupBox2'#4'Left'#2#8#6'Height'#3#161#0#3'Top'#3'P'#1#5'Width'#3#250#1#7'An'
+'roupBox2'#4'Left'#2#8#6'Height'#3#129#0#3'Top'#3'p'#1#5'Width'#3#250#1#7'An'
+'chors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#7'Caption'#6#12' Mes'
+'sages '#12'ClientHeight'#3#143#0#11'ClientWidth'#3#246#1#8'TabOrder'#2#2#0
+#5'TMemo'#6'mmoLog'#6'Height'#3#143#0#5'Width'#3#246#1#5'Align'#7#8'alClient'
+#8'ReadOnly'#9#10'ScrollBars'#7#6'ssBoth'#8'TabOrder'#2#0#0#0#0#9'TGroupBox'
+#9'GroupBox3'#4'Left'#2#8#6'Height'#3#136#0#3'Top'#3#184#0#5'Width'#3#250#1#7
+'sages '#12'ClientHeight'#2'o'#11'ClientWidth'#3#246#1#8'TabOrder'#2#2#0#5
+'TMemo'#6'mmoLog'#6'Height'#2'o'#5'Width'#3#246#1#5'Align'#7#8'alClient'#8'R'
+'eadOnly'#9#10'ScrollBars'#7#6'ssBoth'#8'TabOrder'#2#0#0#0#0#9'TGroupBox'#9
+'GroupBox3'#4'Left'#2#8#6'Height'#3#168#0#3'Top'#3#184#0#5'Width'#3#250#1#7
+'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#7'Caption'#6#11' Options '#12
+'ClientHeight'#2'v'#11'ClientWidth'#3#246#1#8'TabOrder'#2#1#0#9'TCheckBox'#13
+'edtOptionIntf'#4'Left'#2#9#6'Height'#2#19#3'Top'#2#8#5'Width'#2'T'#7'Captio'
+'n'#6#14'Interface file'#7'Checked'#9#7'OnClick'#7#18'edtOptionIntfClick'#5
+'State'#7#9'cbChecked'#8'TabOrder'#2#0#0#0#9'TCheckBox'#14'edtOptionProxy'#4
+'Left'#2#9#6'Height'#2#19#3'Top'#2'8'#5'Width'#2'D'#7'Caption'#6#10'Proxy fi'
+'le'#7'Checked'#9#5'State'#7#9'cbChecked'#8'TabOrder'#2#2#0#0#9'TCheckBox'#15
+'edtOptionBinder'#4'Left'#3'&'#1#6'Height'#2#19#3'Top'#2#8#5'Width'#2'o'#7'C'
+'aption'#6#19'Service Binder file'#8'TabOrder'#2#3#0#0#9'TCheckBox'#12'edtOp'
+'tionImp'#4'Left'#3'&'#1#6'Height'#2#19#3'Top'#2'8'#5'Width'#3#158#0#7'Capti'
+'on'#6#28'Implementation Skeleton file'#8'TabOrder'#2#4#0#0#9'TCheckBox'#16
+'ClientHeight'#3#150#0#11'ClientWidth'#3#246#1#8'TabOrder'#2#1#0#9'TCheckBox'
+#13'edtOptionIntf'#4'Left'#2#9#6'Height'#2#19#3'Top'#2#8#5'Width'#2'T'#7'Cap'
+'tion'#6#14'Interface file'#7'Checked'#9#7'OnClick'#7#18'edtOptionIntfClick'
+#5'State'#7#9'cbChecked'#8'TabOrder'#2#0#0#0#9'TCheckBox'#14'edtOptionProxy'
+#4'Left'#2#9#6'Height'#2#19#3'Top'#2'8'#5'Width'#2'D'#7'Caption'#6#10'Proxy '
+'file'#7'Checked'#9#5'State'#7#9'cbChecked'#8'TabOrder'#2#2#0#0#9'TCheckBox'
+#15'edtOptionBinder'#4'Left'#3'&'#1#6'Height'#2#19#3'Top'#2#8#5'Width'#2'o'#7
+'Caption'#6#19'Service Binder file'#8'TabOrder'#2#3#0#0#9'TCheckBox'#12'edtO'
+'ptionImp'#4'Left'#3'&'#1#6'Height'#2#19#3'Top'#2'8'#5'Width'#3#158#0#7'Capt'
+'ion'#6#28'Implementation Skeleton file'#8'TabOrder'#2#4#0#0#9'TCheckBox'#16
+'edtOptionIntfALL'#4'Left'#2#30#6'Height'#2#19#3'Top'#2' '#5'Width'#2'^'#7'C'
+'aption'#6#15'Parse all types'#7'OnClick'#7#21'edtOptionIntfALLClick'#8'TabO'
+'rder'#2#1#0#0#9'TCheckBox'#22'edtOptionWrappedParams'#4'Left'#2#9#6'Height'
+#2#19#3'Top'#2'`'#5'Width'#3'"'#1#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Ca'
+#2#19#3'Top'#2'X'#5'Width'#3'"'#1#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Ca'
+'ption'#6'5Generate easy access interface for wrapped parameters'#8'TabOrder'
+#2#5#0#0#0#0#6'TPanel'#6'Panel1'#6'Height'#2'0'#3'Top'#3#249#1#5'Width'#3#14
+#2#5'Align'#7#8'alBottom'#12'ClientHeight'#2'0'#11'ClientWidth'#3#14#2#8'Tab'
+'Order'#2#0#0#7'TButton'#7'Button1'#4'Left'#3'_'#1#6'Height'#2#25#3'Top'#2#8
+#5'Width'#2'K'#6'Action'#7#5'actOK'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'B'
+'orderSpacing.InnerBorder'#2#4#7'Default'#9#8'TabOrder'#2#0#0#0#7'TButton'#7
+'Button4'#4'Left'#3#183#1#6'Height'#2#25#3'Top'#2#8#5'Width'#2'K'#7'Anchors'
+#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4#6'Cancel'#9#7'Ca'
+'ption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#1#0#0#0#11'TActionList'
+#2'AL'#4'left'#2'h'#3'top'#3'H'#1#0#7'TAction'#5'actOK'#7'Caption'#6#2'OK'#18
+'DisableIfNoHandler'#9#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'#7#11'actO'
+'KUpdate'#0#0#7'TAction'#11'actOpenFile'#7'Caption'#6#3'...'#18'DisableIfNoH'
+'andler'#9#9'OnExecute'#7#18'actOpenFileExecute'#0#0#7'TAction'#10'actOpenDi'
+'r'#7'Caption'#6#3'...'#18'DisableIfNoHandler'#9#9'OnExecute'#7#17'actOpenDi'
+'rExecute'#0#0#0#11'TOpenDialog'#2'OD'#6'Filter'#6#28'WSDL Files ( *.wsdl )|'
+'*.wsdl'#11'FilterIndex'#2#0#7'Options'#11#15'ofFileMustExist'#14'ofEnableSi'
+'zing'#12'ofViewDetail'#0#4'left'#3#16#1#3'top'#2' '#0#0#22'TSelectDirectory'
+'Dialog'#3'SDD'#11'FilterIndex'#2#0#4'left'#3#224#0#3'top'#3#176#0#0#0#0
+#2#5#0#0#9'TCheckBox'#16'edtDocAsComments'#4'Left'#2#9#6'Height'#2#19#3'Top'
+#2'w'#5'Width'#3#208#0#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6'"G'
+'enerate documentation as comments'#8'TabOrder'#2#6#0#0#0#0#6'TPanel'#6'Pane'
+'l1'#6'Height'#2'0'#3'Top'#3#249#1#5'Width'#3#14#2#5'Align'#7#8'alBottom'#12
+'ClientHeight'#2'0'#11'ClientWidth'#3#14#2#8'TabOrder'#2#0#0#7'TButton'#7'Bu'
+'tton1'#4'Left'#3'_'#1#6'Height'#2#25#3'Top'#2#8#5'Width'#2'K'#6'Action'#7#5
+'actOK'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4
+#7'Default'#9#8'TabOrder'#2#0#0#0#7'TButton'#7'Button4'#4'Left'#3#183#1#6'He'
+'ight'#2#25#3'Top'#2#8#5'Width'#2'K'#7'Anchors'#11#5'akTop'#7'akRight'#0#25
+'BorderSpacing.InnerBorder'#2#4#6'Cancel'#9#7'Caption'#6#6'Cancel'#11'ModalR'
+'esult'#2#2#8'TabOrder'#2#1#0#0#0#11'TActionList'#2'AL'#4'left'#2'h'#3'top'#3
+'H'#1#0#7'TAction'#5'actOK'#7'Caption'#6#2'OK'#18'DisableIfNoHandler'#9#9'On'
+'Execute'#7#12'actOKExecute'#8'OnUpdate'#7#11'actOKUpdate'#0#0#7'TAction'#11
+'actOpenFile'#7'Caption'#6#3'...'#18'DisableIfNoHandler'#9#9'OnExecute'#7#18
+'actOpenFileExecute'#0#0#7'TAction'#10'actOpenDir'#7'Caption'#6#3'...'#18'Di'
+'sableIfNoHandler'#9#9'OnExecute'#7#17'actOpenDirExecute'#0#0#0#11'TOpenDial'
+'og'#2'OD'#6'Filter'#6#28'WSDL Files ( *.wsdl )|*.wsdl'#11'FilterIndex'#2#0#7
+'Options'#11#15'ofFileMustExist'#14'ofEnableSizing'#12'ofViewDetail'#0#4'lef'
,'t'#3#16#1#3'top'#2' '#0#0#22'TSelectDirectoryDialog'#3'SDD'#11'FilterIndex'
+#2#0#4'left'#3#224#0#3'top'#3#176#0#0#0#0
]);

View File

@ -14,7 +14,7 @@ type
TGenOption = (
goInterface, goInterfaceALL,
goProxy, goImp, goBinder,
goWrappedParameter
goWrappedParameter, goDocAsComments
);
TGenOptions = set of TGenOption;
@ -31,6 +31,7 @@ type
Button2: TButton;
Button3: TButton;
Button4: TButton;
edtDocAsComments : TCheckBox;
edtAddToProject : TCheckBox;
edtOptionIntfALL: TCheckBox;
edtOptionIntf: TCheckBox;
@ -113,7 +114,8 @@ function GenerateSource(
const AOutputType : TOutputType;
const AOutPath : string;
const ANotifier : TOnParserMessage;
const AWrappedPrm : Boolean
const AWrappedPrm,
ADocAsComment: Boolean
) : ISourceManager;
procedure Notify(const AMsg : string);
@ -143,6 +145,8 @@ begin
g := TInftGenerator.Create(ASymbolTable,Result);
if wrappedParams then
g.Options := g.Options + [goDocumentWrappedParameter];
if ADocAsComment then
g.Options := g.Options + [goGenerateDocAsComments];
g.Execute();
FreeAndNil(g);
end;
@ -177,7 +181,6 @@ begin
mtdaFS := TMemoryStream.Create();
mg := TMetadataGenerator.Create(ASymbolTable,CreateBinaryWriter(mtdaFS));
mg.Execute();
mtdaFS.SaveToFile(AOutPath + Format('%s.%s',[ASymbolTable.CurrentModule.Name,sWST_META]));
rsrcStrm := TMemoryStream.Create();
mtdaFS.Position := 0;
BinToWstRessource(UpperCase(ASymbolTable.CurrentModule.Name),mtdaFS,rsrcStrm);
@ -243,6 +246,8 @@ begin
Include(Result,goImp);
if edtOptionWrappedParams.Checked then
Include(Result,goWrappedParameter);
if edtDocAsComments.Checked then
Include(Result,goDocAsComments);
end;
procedure TformImport.actOpenDirExecute(Sender: TObject);
@ -258,7 +263,7 @@ procedure TformImport.actOKUpdate(Sender: TObject);
begin
TAction(Sender).Enabled := FileExists(edtInputFile.Text) and
DirectoryExists(edtOutputDir.Text) and
( ( GetOptions() - [goWrappedParameter] ) <> [] );
( ( GetOptions() - [goWrappedParameter,goDocAsComments] ) <> [] );
end;
procedure TformImport.actOKExecute(Sender: TObject);
@ -282,8 +287,13 @@ begin
tree := ParseWsdlFile(edtInputFile.Text,@ShowStatusMessage);
try
genOptions := GetOptions();
fileSet := genOptions - [goWrappedParameter];
srcMgnr := GenerateSource(tree,fileSet,otFileSystem,IncludeTrailingPathDelimiter(edtOutputDir.Text),@ShowStatusMessage,(goWrappedParameter in genOptions) );
fileSet := genOptions - [goWrappedParameter,goDocAsComments];
srcMgnr := GenerateSource(
tree,fileSet,otFileSystem,IncludeTrailingPathDelimiter(edtOutputDir.Text),
@ShowStatusMessage,
(goWrappedParameter in genOptions),
(goDocAsComments in genOptions)
);
ShowStatusMessage(mtInfo,'');
{$IFDEF WST_IDE}
openFlags := [];

View File

@ -25,10 +25,10 @@
</RunParams>
<RequiredPackages Count="2">
<Item1>
<PackageName Value="SynEdit"/>
<PackageName Value="LCL"/>
</Item1>
<Item2>
<PackageName Value="LCL"/>
<PackageName Value="SynEdit"/>
</Item2>
</RequiredPackages>
<Units Count="24">
@ -209,7 +209,7 @@
</CodeGeneration>
<Linking>
<Debugging>
<GenerateDebugInfo Value="True"/>
<UseLineInfoUnit Value="False"/>
<StripSymbols Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
@ -220,6 +220,8 @@
</Options>
</Linking>
<Other>
<CustomOptions Value="-dWST_HANDLE_DOC
"/>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>

View File

@ -1,7 +1,7 @@
object fAbout: TfAbout
Left = 481
Height = 182
Top = 291
Top = 277
Width = 299
HorzScrollBar.Page = 298
VertScrollBar.Page = 181
@ -12,12 +12,13 @@ object fAbout: TfAbout
ClientHeight = 182
ClientWidth = 299
Position = poDesktopCenter
LCLVersion = '0.9.25'
object Label1: TLabel
Left = 44
Left = 21
Height = 14
Top = 24
Width = 211
Caption = 'Web Services Toolkit for FPC/Lazarus'
Width = 261
Caption = 'Web Services Toolkit for FPC/Lazarus && Delphi'
Font.Style = [fsBold]
ParentColor = False
end
@ -31,11 +32,11 @@ object fAbout: TfAbout
ParentColor = False
end
object Label3: TLabel
Left = 49
Left = 32
Height = 14
Top = 112
Width = 200
Caption = 'Copyright (c) 2007 Inoussa OUEDRAOGO'
Width = 235
Caption = 'Copyright (c) 2007, 2008 Inoussa OUEDRAOGO.'
ParentColor = False
end
object Button1: TButton

View File

@ -1,18 +1,19 @@
{ Ceci est un fichier ressource g�n�r� automatiquement par Lazarus }
LazarusResources.Add('TfAbout','FORMDATA',[
'TPF0'#7'TfAbout'#6'fAbout'#4'Left'#3#225#1#6'Height'#3#182#0#3'Top'#3'#'#1#5
'TPF0'#7'TfAbout'#6'fAbout'#4'Left'#3#225#1#6'Height'#3#182#0#3'Top'#3#21#1#5
+'Width'#3'+'#1#18'HorzScrollBar.Page'#3'*'#1#18'VertScrollBar.Page'#3#181#0
+#13'ActiveControl'#7#7'Button1'#11'BorderIcons'#11#12'biSystemMenu'#0#11'Bor'
+'derStyle'#7#8'bsDialog'#7'Caption'#6#5'About'#12'ClientHeight'#3#182#0#11'C'
+'lientWidth'#3'+'#1#8'Position'#7#15'poDesktopCenter'#0#6'TLabel'#6'Label1'#4
+'Left'#2','#6'Height'#2#14#3'Top'#2#24#5'Width'#3#211#0#7'Caption'#6'$Web Se'
+'rvices Toolkit for FPC/Lazarus'#10'Font.Style'#11#6'fsBold'#0#11'ParentColo'
+'r'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2']'#6'Height'#2#14#3'Top'#2'@'#5'Widt'
+'h'#2'l'#7'Caption'#6#19'Type Library Editor'#10'Font.Style'#11#6'fsBold'#8
+'fsItalic'#0#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#4'Left'#2'1'#6'Height'
+#2#14#3'Top'#2'p'#5'Width'#3#200#0#7'Caption'#6'$Copyright (c) 2007 Inoussa '
+'OUEDRAOGO'#11'ParentColor'#8#0#0#7'TButton'#7'Button1'#4'Left'#2'p'#6'Heigh'
+'t'#2#25#3'Top'#3#142#0#5'Width'#2'K'#25'BorderSpacing.InnerBorder'#2#4#7'Ca'
+'ption'#6#2'OK'#11'ModalResult'#2#1#8'TabOrder'#2#0#0#0#0
+'lientWidth'#3'+'#1#8'Position'#7#15'poDesktopCenter'#10'LCLVersion'#6#6'0.9'
+'.25'#0#6'TLabel'#6'Label1'#4'Left'#2#21#6'Height'#2#14#3'Top'#2#24#5'Width'
+#3#5#1#7'Caption'#6'.Web Services Toolkit for FPC/Lazarus && Delphi'#10'Font'
+'.Style'#11#6'fsBold'#0#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2
+']'#6'Height'#2#14#3'Top'#2'@'#5'Width'#2'l'#7'Caption'#6#19'Type Library Ed'
+'itor'#10'Font.Style'#11#6'fsBold'#8'fsItalic'#0#11'ParentColor'#8#0#0#6'TLa'
+'bel'#6'Label3'#4'Left'#2' '#6'Height'#2#14#3'Top'#2'p'#5'Width'#3#235#0#7'C'
+'aption'#6'+Copyright (c) 2007, 2008 Inoussa OUEDRAOGO.'#11'ParentColor'#8#0
+#0#7'TButton'#7'Button1'#4'Left'#2'p'#6'Height'#2#25#3'Top'#3#142#0#5'Width'
+#2'K'#25'BorderSpacing.InnerBorder'#2#4#7'Caption'#6#2'OK'#11'ModalResult'#2
+#1#8'TabOrder'#2#0#0#0#0
]);

View File

@ -1,7 +1,7 @@
object fArrayEdit: TfArrayEdit
Left = 327
Left = 772
Height = 375
Top = 132
Top = 42
Width = 392
HorzScrollBar.Page = 391
VertScrollBar.Page = 374
@ -150,10 +150,12 @@ object fArrayEdit: TfArrayEdit
ParentColor = False
TabOrder = 0
BookMarkOptions.Xoffset = 42
BookMarkOptions.OnChange = nil
Gutter.DigitCount = 2
Gutter.ShowLineNumbers = True
Gutter.ShowCodeFolding = True
Gutter.Width = 10
Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14
Highlighter = SynXMLSyn1
Keystrokes = <
@ -478,6 +480,7 @@ object fArrayEdit: TfArrayEdit
ShortCut = 24642
end>
ReadOnly = True
SelectedColor.OnChange = nil
end
end
object tsDependencies: TTabSheet
@ -497,6 +500,21 @@ object fArrayEdit: TfArrayEdit
Options = [tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips]
end
end
object tsDocumentation: TTabSheet
Caption = 'Documentation'
ClientHeight = 299
ClientWidth = 384
object edtDocumentation: TMemo
Left = 12
Height = 266
Top = 18
Width = 352
Anchors = [akTop, akLeft, akRight, akBottom]
ScrollBars = ssAutoBoth
TabOrder = 0
WordWrap = False
end
end
end
object AL: TActionList
left = 215

View File

@ -1,16 +1,16 @@
{ Ceci est un fichier ressource g�n�r� automatiquement par Lazarus }
LazarusResources.Add('TfArrayEdit','FORMDATA',[
'TPF0'#11'TfArrayEdit'#10'fArrayEdit'#4'Left'#3'G'#1#6'Height'#3'w'#1#3'Top'#3
+#132#0#5'Width'#3#136#1#18'HorzScrollBar.Page'#3#135#1#18'VertScrollBar.Page'
+#3'v'#1#13'ActiveControl'#7#2'PC'#11'BorderStyle'#7#13'bsSizeToolWin'#7'Capt'
+'ion'#6#10'fArrayEdit'#12'ClientHeight'#3'w'#1#11'ClientWidth'#3#136#1#8'Pos'
+'ition'#7#16'poMainFormCenter'#10'LCLVersion'#6#6'0.9.25'#0#6'TPanel'#6'Pane'
+'l1'#6'Height'#2'2'#3'Top'#3'E'#1#5'Width'#3#136#1#5'Align'#7#8'alBottom'#12
+'ClientHeight'#2'2'#11'ClientWidth'#3#136#1#8'TabOrder'#2#0#0#7'TButton'#7'B'
+'utton1'#4'Left'#3#129#0#6'Height'#2#25#3'Top'#2#9#5'Width'#2'K'#6'Action'#7
+#5'actOK'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2
+#4#8'TabOrder'#2#0#0#0#7'TButton'#7'Button2'#4'Left'#3#214#0#6'Height'#2#25#3
'TPF0'#11'TfArrayEdit'#10'fArrayEdit'#4'Left'#3#4#3#6'Height'#3'w'#1#3'Top'#2
+'*'#5'Width'#3#136#1#18'HorzScrollBar.Page'#3#135#1#18'VertScrollBar.Page'#3
+'v'#1#13'ActiveControl'#7#2'PC'#11'BorderStyle'#7#13'bsSizeToolWin'#7'Captio'
+'n'#6#10'fArrayEdit'#12'ClientHeight'#3'w'#1#11'ClientWidth'#3#136#1#8'Posit'
+'ion'#7#16'poMainFormCenter'#10'LCLVersion'#6#6'0.9.25'#0#6'TPanel'#6'Panel1'
+#6'Height'#2'2'#3'Top'#3'E'#1#5'Width'#3#136#1#5'Align'#7#8'alBottom'#12'Cli'
+'entHeight'#2'2'#11'ClientWidth'#3#136#1#8'TabOrder'#2#0#0#7'TButton'#7'Butt'
+'on1'#4'Left'#3#129#0#6'Height'#2#25#3'Top'#2#9#5'Width'#2'K'#6'Action'#7#5
+'actOK'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4
+#8'TabOrder'#2#0#0#0#7'TButton'#7'Button2'#4'Left'#3#214#0#6'Height'#2#25#3
+'Top'#2#9#5'Width'#2'K'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing'
+'.InnerBorder'#2#4#6'Cancel'#9#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8
+'TabOrder'#2#1#0#0#7'TButton'#7'Button6'#4'Left'#3'+'#1#6'Height'#2#25#3'Top'
@ -42,63 +42,69 @@ LazarusResources.Add('TfArrayEdit','FORMDATA',[
+#12'edtSourceXSD'#4'Left'#2#13#6'Height'#3#16#1#3'Top'#2#10#5'Width'#3'`'#1#7
+'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#11'Font.Height'#2
+#236#9'Font.Name'#6#7'courier'#11'ParentColor'#8#8'TabOrder'#2#0#23'BookMark'
+'Options.Xoffset'#2'*'#17'Gutter.DigitCount'#2#2#22'Gutter.ShowLineNumbers'#9
+#22'Gutter.ShowCodeFolding'#9#12'Gutter.Width'#2#10#23'Gutter.CodeFoldingWid'
+'th'#2#14#11'Highlighter'#7#10'SynXMLSyn1'#10'Keystrokes'#14#1#7'Command'#2#3
+#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3#211
+#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'
+#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'#2
+#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2#5
+#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8
+'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6#8
+'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2#10
+#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2#14#8
+'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2#9#8
+'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13#8
+'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8
+'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8
+'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8
+'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8
+'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0
+#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3
+'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Comman'
+'d'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Co'
+'mmand'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@'
+#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'Short'
,'Cut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3
+#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Comm'
+'and'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7
+'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@'
+#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3
+'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortC'
+'ut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8
+'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-'
+#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3
+'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Comman'
+'d'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'C'
+'ommand'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1
+#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'
+#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3
+'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCu'
+'t'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'Sh'
+'ortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1
+#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3
+'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Comma'
+'nd'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3'L`'#0#1#7
+'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1
+#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#0#0#0#9'TTabSheet'#14
+'tsDependencies'#7'Caption'#6#7'Used by'#12'ClientHeight'#3'+'#1#11'ClientWi'
+'dth'#3#128#1#0#9'TTreeView'#12'tvDependency'#4'Left'#2#12#6'Height'#3#16#1#3
+'Top'#2#10#5'Width'#3'`'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akB'
+'ottom'#0#17'DefaultItemHeight'#2#15#8'ReadOnly'#9#16'RightClickSelect'#9#8
+'TabOrder'#2#0#7'Options'#11#17'tvoAutoItemHeight'#16'tvoHideSelection'#21't'
+'voKeepCollapsedNodes'#11'tvoReadOnly'#19'tvoRightClickSelect'#14'tvoShowBut'
+'tons'#12'tvoShowLines'#11'tvoShowRoot'#11'tvoToolTips'#0#0#0#0#0#11'TAction'
+'List'#2'AL'#4'left'#3#215#0#3'top'#3#185#0#0#7'TAction'#5'actOK'#7'Caption'
+#6#2'OK'#18'DisableIfNoHandler'#9#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'
+#7#11'actOKUpdate'#0#0#7'TAction'#8'actApply'#7'Caption'#6#5'Apply'#18'Disab'
+'leIfNoHandler'#9#9'OnExecute'#7#15'actApplyExecute'#8'OnUpdate'#7#11'actOKU'
+'pdate'#0#0#0#10'TSynXMLSyn'#10'SynXMLSyn1'#13'DefaultFilter'#6'MDocuments X'
+'ML (*.xml,*.xsd,*.xsl,*.xslt,*.dtd)|*.xml;*.xsd;*.xsl;*.xslt;*.dtd'#7'Enabl'
+'ed'#8#16'WantBracesParsed'#8#4'left'#3#10#1#3'top'#3#227#0#0#0#0
+'Options.Xoffset'#2'*'#24'BookMarkOptions.OnChange'#13#17'Gutter.DigitCount'
+#2#2#22'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#12'Gutter.Wid'
+'th'#2#10#15'Gutter.OnChange'#13#23'Gutter.CodeFoldingWidth'#2#14#11'Highlig'
+'hter'#7#10'SynXMLSyn1'#10'Keystrokes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0
+#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'
+#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0
+#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0
+#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1
+#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8'ShortCut'#2''''#0#1#7
+'Command'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7
+'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7
+'Command'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2#14#8'ShortCut'#3'"@'#0#1#7
+'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2#9#8'ShortCut'#2'!'#0#1#7'C'
+'ommand'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13#8'ShortCut'#3'!@'#0#1#7
+'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8'ShortCut'#2'$'#0#1#7'C'
+'ommand'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8'ShortCut'#3'$@'#0#1#7
+'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8'ShortCut'#2'#'#0#1#7'C'
+'ommand'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8'ShortCut'#3'#@'#0#1#7
+'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0#8'ShortCut'#2'-'#0#1
+#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'- '
+#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3
+'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Command'#3#245#1#8'ShortCu'
+'t'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8
,'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'C'
+'ommand'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3#199#0#8'ShortCut'#3'A@'#0
+#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Command'#3'b'#2#8'ShortCut'#3
+'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7'Command'#3#254#1#8'Short'
+'Cut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@'#0#1#7'Command'#3'c'#2#8
+'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'V@'#0#1#7'Command'#3'['
+#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortCut'#3'Y@'#0#1#7'Command'
+#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Com'
+'mand'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-'#1#8'ShortCut'#3'0@'#0#1#7
+'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3'/'#1#8'ShortCut'#3'2@'#0
+#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Command'#3'1'#1#8'ShortCut'#3'4'
+'@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'Command'#3'3'#1#8'ShortCut'
+#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1#7'Command'#3'5'#1#8'Short'
+'Cut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'Command'#3'_'#1#8
+'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3'1`'#0#1#7'Command'#3'a'
+#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCut'#3'3`'#0#1#7'Command'#3
+'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'ShortCut'#3'5`'#0#1#7'Comman'
+'d'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'C'
+'ommand'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3'h'#1#8'ShortCut'#3'9`'#0#1
+#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Command'#3#232#0#8'ShortCut'#3'C'
+'`'#0#1#7'Command'#3#233#0#8'ShortCut'#3'L`'#0#1#7'Command'#3'd'#2#8'ShortCu'
+'t'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1#7'Command'#3#250#0#8'Sh'
+'ortCut'#3'B`'#0#0#8'ReadOnly'#9#22'SelectedColor.OnChange'#13#0#0#0#9'TTabS'
+'heet'#14'tsDependencies'#7'Caption'#6#7'Used by'#12'ClientHeight'#3'+'#1#11
+'ClientWidth'#3#128#1#0#9'TTreeView'#12'tvDependency'#4'Left'#2#12#6'Height'
+#3#16#1#3'Top'#2#10#5'Width'#3'`'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRig'
+'ht'#8'akBottom'#0#17'DefaultItemHeight'#2#15#8'ReadOnly'#9#16'RightClickSel'
+'ect'#9#8'TabOrder'#2#0#7'Options'#11#17'tvoAutoItemHeight'#16'tvoHideSelect'
+'ion'#21'tvoKeepCollapsedNodes'#11'tvoReadOnly'#19'tvoRightClickSelect'#14't'
+'voShowButtons'#12'tvoShowLines'#11'tvoShowRoot'#11'tvoToolTips'#0#0#0#0#9'T'
+'TabSheet'#15'tsDocumentation'#7'Caption'#6#13'Documentation'#12'ClientHeigh'
+'t'#3'+'#1#11'ClientWidth'#3#128#1#0#5'TMemo'#16'edtDocumentation'#4'Left'#2
+#12#6'Height'#3#10#1#3'Top'#2#18#5'Width'#3'`'#1#7'Anchors'#11#5'akTop'#6'ak'
+'Left'#7'akRight'#8'akBottom'#0#10'ScrollBars'#7#10'ssAutoBoth'#8'TabOrder'#2
+#0#8'WordWrap'#8#0#0#0#0#11'TActionList'#2'AL'#4'left'#3#215#0#3'top'#3#185#0
+#0#7'TAction'#5'actOK'#7'Caption'#6#2'OK'#18'DisableIfNoHandler'#9#9'OnExecu'
+'te'#7#12'actOKExecute'#8'OnUpdate'#7#11'actOKUpdate'#0#0#7'TAction'#8'actAp'
+'ply'#7'Caption'#6#5'Apply'#18'DisableIfNoHandler'#9#9'OnExecute'#7#15'actAp'
+'plyExecute'#8'OnUpdate'#7#11'actOKUpdate'#0#0#0#10'TSynXMLSyn'#10'SynXMLSyn'
+'1'#13'DefaultFilter'#6'MDocuments XML (*.xml,*.xsd,*.xsl,*.xslt,*.dtd)|*.xm'
+'l;*.xsd;*.xsl;*.xslt;*.dtd'#7'Enabled'#8#16'WantBracesParsed'#8#4'left'#3#10
+#1#3'top'#3#227#0#0#0#0
]);

View File

@ -21,6 +21,7 @@ type
Button2 : TButton;
Button6 : TButton;
edtCollection : TCheckBox;
edtDocumentation : TMemo;
edtEmbedded : TCheckBox;
edtElementName : TEdit;
edtElementType : TComboBox;
@ -33,6 +34,7 @@ type
Panel1 : TPanel;
SynXMLSyn1 : TSynXMLSyn;
TabSheet1 : TTabSheet;
tsDocumentation : TTabSheet;
tsDependencies : TTabSheet;
tsSourceXSD : TTabSheet;
tvDependency : TTreeView;
@ -54,6 +56,7 @@ type
procedure ShowSourceXSD();
procedure ShowDependencies();
procedure ShowDocumentation();
public
destructor Destroy();override;
function UpdateObject(
@ -68,7 +71,7 @@ var
implementation
uses
parserutils, view_helper;
parserutils, view_helper, xsd_consts;
{ TfArrayEdit }
@ -91,6 +94,8 @@ begin
ShowSourceXSD();
end else if ( PC.ActivePage = tsDependencies ) then begin
ShowDependencies();
end else if ( PC.ActivePage = tsDocumentation ) then begin
ShowDocumentation();
end;
end;
@ -182,6 +187,8 @@ begin
if ( edtCollection.Checked <> FSymbolTable.IsCollection(FObject) ) then
FSymbolTable.SetCollectionFlag(FObject,edtCollection.Checked);
FSymbolTable.RegisterExternalAlias(locObj,typExtName);
FSymbolTable.Properties.GetList(FObject).Values[s_documentation] :=
EncodeLineBreak(StringReplace(edtDocumentation.Lines.Text,sLineBreak,#10,[rfReplaceAll]));
FApplied := True;
end;
@ -199,6 +206,16 @@ begin
DrawDependencies(tvDependency,FDependencyList);
end;
procedure TfArrayEdit.ShowDocumentation();
var
props : TStrings;
begin
props := FSymbolTable.Properties.FindList(FObject);
if ( props <> nil ) then
edtDocumentation.Lines.Text :=
StringReplace(DecodeLineBreak(props.Values[s_documentation]),#10,sLineBreak,[rfReplaceAll]);
end;
destructor TfArrayEdit.Destroy();
begin
FDependencyList.Free();

View File

@ -1,7 +1,7 @@
object fClassEdit: TfClassEdit
Left = 852
Left = 794
Height = 547
Top = 77
Top = 101
Width = 518
HorzScrollBar.Page = 517
VertScrollBar.Page = 546
@ -534,6 +534,21 @@ object fClassEdit: TfClassEdit
Options = [tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips]
end
end
object tsDocumentation: TTabSheet
Caption = 'Documentation'
ClientHeight = 471
ClientWidth = 510
object edtDocumentation: TMemo
Left = 12
Height = 434
Top = 18
Width = 480
Anchors = [akTop, akLeft, akRight, akBottom]
ScrollBars = ssAutoBoth
TabOrder = 0
WordWrap = False
end
end
end
object ActionList1: TActionList
left = 232

View File

@ -1,8 +1,8 @@
{ Ceci est un fichier ressource g�n�r� automatiquement par Lazarus }
LazarusResources.Add('TfClassEdit','FORMDATA',[
'TPF0'#11'TfClassEdit'#10'fClassEdit'#4'Left'#3'T'#3#6'Height'#3'#'#2#3'Top'#2
+'M'#5'Width'#3#6#2#18'HorzScrollBar.Page'#3#5#2#18'VertScrollBar.Page'#3'"'#2
'TPF0'#11'TfClassEdit'#10'fClassEdit'#4'Left'#3#26#3#6'Height'#3'#'#2#3'Top'#2
+'e'#5'Width'#3#6#2#18'HorzScrollBar.Page'#3#5#2#18'VertScrollBar.Page'#3'"'#2
+#13'ActiveControl'#7#2'PC'#11'BorderStyle'#7#13'bsSizeToolWin'#7'Caption'#6
+#10'fClassEdit'#12'ClientHeight'#3'#'#2#11'ClientWidth'#3#6#2#8'Position'#7
+#15'poDesktopCenter'#10'LCLVersion'#6#6'0.9.25'#0#6'TPanel'#6'Panel1'#6'Heig'
@ -102,22 +102,27 @@ LazarusResources.Add('TfClassEdit','FORMDATA',[
+'adOnly'#9#16'RightClickSelect'#9#8'TabOrder'#2#0#7'Options'#11#17'tvoAutoIt'
+'emHeight'#16'tvoHideSelection'#21'tvoKeepCollapsedNodes'#11'tvoReadOnly'#19
+'tvoRightClickSelect'#14'tvoShowButtons'#12'tvoShowLines'#11'tvoShowRoot'#11
+'tvoToolTips'#0#0#0#0#0#11'TActionList'#11'ActionList1'#4'left'#3#232#0#3'to'
+'p'#3#200#0#0#7'TAction'#5'actOK'#7'Caption'#6#2'OK'#18'DisableIfNoHandler'#9
+#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'#7#11'actOKUpdate'#0#0#7'TAction'
+#10'actPropAdd'#7'Caption'#6#12'New Property'#18'DisableIfNoHandler'#9#9'OnE'
+'xecute'#7#17'actPropAddExecute'#0#0#7'TAction'#11'actPropEdit'#7'Caption'#6
+#13'Edit Property'#18'DisableIfNoHandler'#9#9'OnExecute'#7#18'actPropEditExe'
+'cute'#8'OnUpdate'#7#17'actPropEditUpdate'#0#0#7'TAction'#13'actPropDelete'#7
+'Caption'#6#15'Delete Property'#18'DisableIfNoHandler'#9#9'OnExecute'#7#20'a'
+'ctPropDeleteExecute'#8'OnUpdate'#7#17'actPropEditUpdate'#0#0#7'TAction'#8'a'
+'ctApply'#7'Caption'#6#5'Apply'#18'DisableIfNoHandler'#9#9'OnExecute'#7#15'a'
+'ctApplyExecute'#8'OnUpdate'#7#11'actOKUpdate'#0#0#0#10'TPopupMenu'#10'Popup'
+'Menu1'#4'left'#2'i'#3'top'#3#186#0#0#9'TMenuItem'#9'MenuItem1'#6'Action'#7
+#10'actPropAdd'#7'OnClick'#7#17'actPropAddExecute'#0#0#9'TMenuItem'#9'MenuIt'
+'em2'#6'Action'#7#11'actPropEdit'#7'OnClick'#7#18'actPropEditExecute'#0#0#9
+'TMenuItem'#9'MenuItem3'#6'Action'#7#13'actPropDelete'#7'OnClick'#7#20'actPr'
+'opDeleteExecute'#0#0#0#10'TSynXMLSyn'#10'SynXMLSyn1'#13'DefaultFilter'#6'MD'
+'ocuments XML (*.xml,*.xsd,*.xsl,*.xslt,*.dtd)|*.xml;*.xsd;*.xsl;*.xslt;*.dt'
+'d'#7'Enabled'#8#16'WantBracesParsed'#8#4'left'#3#210#0#3'top'#3#171#0#0#0#0
+'tvoToolTips'#0#0#0#0#9'TTabSheet'#15'tsDocumentation'#7'Caption'#6#13'Docum'
+'entation'#12'ClientHeight'#3#215#1#11'ClientWidth'#3#254#1#0#5'TMemo'#16'ed'
+'tDocumentation'#4'Left'#2#12#6'Height'#3#178#1#3'Top'#2#18#5'Width'#3#224#1
+#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#10'ScrollBars'#7
+#10'ssAutoBoth'#8'TabOrder'#2#0#8'WordWrap'#8#0#0#0#0#11'TActionList'#11'Act'
+'ionList1'#4'left'#3#232#0#3'top'#3#200#0#0#7'TAction'#5'actOK'#7'Caption'#6
+#2'OK'#18'DisableIfNoHandler'#9#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'#7
+#11'actOKUpdate'#0#0#7'TAction'#10'actPropAdd'#7'Caption'#6#12'New Property'
+#18'DisableIfNoHandler'#9#9'OnExecute'#7#17'actPropAddExecute'#0#0#7'TAction'
+#11'actPropEdit'#7'Caption'#6#13'Edit Property'#18'DisableIfNoHandler'#9#9'O'
+'nExecute'#7#18'actPropEditExecute'#8'OnUpdate'#7#17'actPropEditUpdate'#0#0#7
+'TAction'#13'actPropDelete'#7'Caption'#6#15'Delete Property'#18'DisableIfNoH'
+'andler'#9#9'OnExecute'#7#20'actPropDeleteExecute'#8'OnUpdate'#7#17'actPropE'
+'ditUpdate'#0#0#7'TAction'#8'actApply'#7'Caption'#6#5'Apply'#18'DisableIfNoH'
+'andler'#9#9'OnExecute'#7#15'actApplyExecute'#8'OnUpdate'#7#11'actOKUpdate'#0
+#0#0#10'TPopupMenu'#10'PopupMenu1'#4'left'#2'i'#3'top'#3#186#0#0#9'TMenuItem'
+#9'MenuItem1'#6'Action'#7#10'actPropAdd'#7'OnClick'#7#17'actPropAddExecute'#0
+#0#9'TMenuItem'#9'MenuItem2'#6'Action'#7#11'actPropEdit'#7'OnClick'#7#18'act'
+'PropEditExecute'#0#0#9'TMenuItem'#9'MenuItem3'#6'Action'#7#13'actPropDelete'
+#7'OnClick'#7#20'actPropDeleteExecute'#0#0#0#10'TSynXMLSyn'#10'SynXMLSyn1'#13
+'DefaultFilter'#6'MDocuments XML (*.xml,*.xsd,*.xsl,*.xslt,*.dtd)|*.xml;*.xs'
+'d;*.xsl;*.xslt;*.dtd'#7'Enabled'#8#16'WantBracesParsed'#8#4'left'#3#210#0#3
+'top'#3#171#0#0#0#0
]);

View File

@ -46,6 +46,7 @@ type
Label1: TLabel;
edtProp: TListView;
Label2: TLabel;
edtDocumentation : TMemo;
MenuItem1: TMenuItem;
MenuItem2: TMenuItem;
MenuItem3: TMenuItem;
@ -55,6 +56,7 @@ type
edtSourceXSD : TSynEdit;
SynXMLSyn1 : TSynXMLSyn;
TabSheet1: TTabSheet;
tsDocumentation : TTabSheet;
tsDependencies : TTabSheet;
tvDependency : TTreeView;
tsSourceXSD : TTabSheet;
@ -84,6 +86,7 @@ type
procedure ShowSourceXSD();
procedure ShowDependencies();
procedure ShowDocumentation();
public
destructor Destroy();override;
function UpdateObject(
@ -98,7 +101,7 @@ var
implementation
uses
parserutils, ufpropedit, common_gui_utils;
parserutils, ufpropedit, common_gui_utils, xsd_consts;
{ TfClassEdit }
@ -177,6 +180,8 @@ begin
ShowSourceXSD();
end else if ( PC.ActivePage = tsDependencies ) then begin
ShowDependencies();
end else if ( PC.ActivePage = tsDocumentation ) then begin
ShowDocumentation();
end;
end;
@ -347,6 +352,8 @@ begin
if Assigned(locObj.AncestorType) then
locObj.AncestorType.AddRef();
end;
FSymbolTable.Properties.GetList(FObject).Values[s_documentation] :=
EncodeLineBreak(StringReplace(edtDocumentation.Lines.Text,sLineBreak,#10,[rfReplaceAll]));
FOldAncestor := locObj.AncestorType;
FApplied := True;
end;
@ -365,6 +372,16 @@ begin
DrawDependencies(tvDependency,FDependencyList);
end;
procedure TfClassEdit.ShowDocumentation();
var
props : TStrings;
begin
props := FSymbolTable.Properties.FindList(FObject);
if ( props <> nil ) then
edtDocumentation.Lines.Text :=
StringReplace(DecodeLineBreak(props.Values[s_documentation]),#10,sLineBreak,[rfReplaceAll]);
end;
destructor TfClassEdit.Destroy();
begin
FDependencyList.Free();

View File

@ -425,6 +425,21 @@ object fEnumEdit: TfEnumEdit
Options = [tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips]
end
end
object tsDocumentation: TTabSheet
Caption = 'Documentation'
ClientHeight = 292
ClientWidth = 392
object edtDocumentation: TMemo
Left = 12
Height = 258
Top = 18
Width = 360
Anchors = [akTop, akLeft, akRight, akBottom]
ScrollBars = ssAutoBoth
TabOrder = 0
WordWrap = False
end
end
end
object Panel1: TPanel
Height = 50

View File

@ -75,22 +75,27 @@ LazarusResources.Add('TfEnumEdit','FORMDATA',[
+#2#15#8'ReadOnly'#9#16'RightClickSelect'#9#8'TabOrder'#2#0#7'Options'#11#17
+'tvoAutoItemHeight'#16'tvoHideSelection'#21'tvoKeepCollapsedNodes'#11'tvoRea'
+'dOnly'#19'tvoRightClickSelect'#14'tvoShowButtons'#12'tvoShowLines'#11'tvoSh'
+'owRoot'#11'tvoToolTips'#0#0#0#0#0#6'TPanel'#6'Panel1'#6'Height'#2'2'#3'Top'
+#3'>'#1#5'Width'#3#144#1#5'Align'#7#8'alBottom'#12'ClientHeight'#2'2'#11'Cli'
+'entWidth'#3#144#1#8'TabOrder'#2#1#0#7'TButton'#7'Button1'#4'Left'#3#224#0#6
+'Height'#2#25#3'Top'#2#10#5'Width'#2'K'#7'Anchors'#11#5'akTop'#7'akRight'#0
+#25'BorderSpacing.InnerBorder'#2#4#6'Cancel'#9#7'Caption'#6#6'Cancel'#11'Mod'
+'alResult'#2#2#8'TabOrder'#2#0#0#0#7'TButton'#7'Button2'#4'Left'#3#136#0#6'H'
+'eight'#2#25#3'Top'#2#10#5'Width'#2'K'#6'Action'#7#5'actOK'#7'Anchors'#11#5
+'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4#7'Default'#9#8'TabOrd'
+'er'#2#1#0#0#7'TButton'#7'Button3'#4'Left'#3'8'#1#6'Height'#2#25#3'Top'#2#10
+#5'Width'#2'K'#6'Action'#7#8'actApply'#7'Anchors'#11#5'akTop'#7'akRight'#0#25
+'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#2#0#0#0#11'TActionList'#11'Act'
+'ionList1'#4'left'#3#248#0#3'top'#2'x'#0#7'TAction'#5'actOK'#7'Caption'#6#2
+'OK'#18'DisableIfNoHandler'#9#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'#7
+#11'actOKUpdate'#0#0#7'TAction'#8'actApply'#7'Caption'#6#5'Apply'#18'Disable'
+'IfNoHandler'#9#9'OnExecute'#7#15'actApplyExecute'#8'OnUpdate'#7#11'actOKUpd'
+'ate'#0#0#0#10'TSynXMLSyn'#10'SynXMLSyn1'#13'DefaultFilter'#6'MDocuments XML'
+' (*.xml,*.xsd,*.xsl,*.xslt,*.dtd)|*.xml;*.xsd;*.xsl;*.xslt;*.dtd'#7'Enabled'
+#8#16'WantBracesParsed'#8#4'left'#3#10#1#3'top'#3#227#0#0#0#0
+'owRoot'#11'tvoToolTips'#0#0#0#0#9'TTabSheet'#15'tsDocumentation'#7'Caption'
+#6#13'Documentation'#12'ClientHeight'#3'$'#1#11'ClientWidth'#3#136#1#0#5'TMe'
+'mo'#16'edtDocumentation'#4'Left'#2#12#6'Height'#3#2#1#3'Top'#2#18#5'Width'#3
+'h'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#10'ScrollBar'
+'s'#7#10'ssAutoBoth'#8'TabOrder'#2#0#8'WordWrap'#8#0#0#0#0#6'TPanel'#6'Panel'
+'1'#6'Height'#2'2'#3'Top'#3'>'#1#5'Width'#3#144#1#5'Align'#7#8'alBottom'#12
+'ClientHeight'#2'2'#11'ClientWidth'#3#144#1#8'TabOrder'#2#1#0#7'TButton'#7'B'
+'utton1'#4'Left'#3#224#0#6'Height'#2#25#3'Top'#2#10#5'Width'#2'K'#7'Anchors'
+#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4#6'Cancel'#9#7'Ca'
+'ption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#0#0#0#7'TButton'#7'But'
+'ton2'#4'Left'#3#136#0#6'Height'#2#25#3'Top'#2#10#5'Width'#2'K'#6'Action'#7#5
+'actOK'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4
+#7'Default'#9#8'TabOrder'#2#1#0#0#7'TButton'#7'Button3'#4'Left'#3'8'#1#6'Hei'
+'ght'#2#25#3'Top'#2#10#5'Width'#2'K'#6'Action'#7#8'actApply'#7'Anchors'#11#5
+'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#2#0#0#0
+#11'TActionList'#11'ActionList1'#4'left'#3#248#0#3'top'#2'x'#0#7'TAction'#5
+'actOK'#7'Caption'#6#2'OK'#18'DisableIfNoHandler'#9#9'OnExecute'#7#12'actOKE'
+'xecute'#8'OnUpdate'#7#11'actOKUpdate'#0#0#7'TAction'#8'actApply'#7'Caption'
+#6#5'Apply'#18'DisableIfNoHandler'#9#9'OnExecute'#7#15'actApplyExecute'#8'On'
+'Update'#7#11'actOKUpdate'#0#0#0#10'TSynXMLSyn'#10'SynXMLSyn1'#13'DefaultFil'
+'ter'#6'MDocuments XML (*.xml,*.xsd,*.xsl,*.xslt,*.dtd)|*.xml;*.xsd;*.xsl;*.'
+'xslt;*.dtd'#7'Enabled'#8#16'WantBracesParsed'#8#4'left'#3#10#1#3'top'#3#227
+#0#0#0#0
]);

View File

@ -32,6 +32,7 @@ type
Button1: TButton;
Button2: TButton;
Button3 : TButton;
edtDocumentation : TMemo;
edtName: TEdit;
edtSourceXSD : TSynEdit;
GroupBox1: TGroupBox;
@ -41,6 +42,7 @@ type
Panel1: TPanel;
SynXMLSyn1 : TSynXMLSyn;
TabSheet1: TTabSheet;
tsDocumentation : TTabSheet;
tsDependencies : TTabSheet;
tsSourceXSD : TTabSheet;
tvDependency : TTreeView;
@ -62,6 +64,7 @@ type
procedure ShowSourceXSD();
procedure ShowDependencies();
procedure ShowDocumentation();
public
destructor Destroy();override;
function UpdateObject(
@ -75,7 +78,7 @@ var
fEnumEdit: TfEnumEdit;
implementation
uses parserutils, view_helper;
uses parserutils, view_helper, xsd_consts;
function ParseEnum(
const AName : string;
@ -86,7 +89,7 @@ function ParseEnum(
var
buffer : string;
i : Integer;
typExtName, typIntName, itmExtName : string;
typExtName, typIntName, itmExtName, itmIntName : string;
itm : TPasEnumValue;
begin
typExtName := ExtractIdentifier(AName);
@ -109,7 +112,11 @@ begin
end;
for i := 0 to Pred(AItems.Count) do begin
buffer := AItems[i];
itm := TPasEnumValue(ASymbolTable.CreateElement(TPasEnumValue,MakeInternalSymbolNameFrom(buffer),Result,visDefault,'',0));
if IsStrEmpty(buffer) then
itmIntName := Format('%s_EmptyItem',[typIntName])
else
itmIntName := MakeInternalSymbolNameFrom(buffer);
itm := TPasEnumValue(ASymbolTable.CreateElement(TPasEnumValue,itmIntName,Result,visDefault,'',0));
Result.Values.Add(itm);
itmExtName := ExtractIdentifier(buffer);
if not AnsiSameText(itm.Name,itmExtName) then
@ -140,6 +147,8 @@ begin
ShowSourceXSD();
end else if ( PC.ActivePage = tsDependencies ) then begin
ShowDependencies();
end else if ( PC.ActivePage = tsDocumentation ) then begin
ShowDocumentation();
end;
end;
@ -185,6 +194,8 @@ begin
end else begin
ParseEnum(edtName.Text,edtItems.Lines,FObject,FSymbolTable);
end;
FSymbolTable.Properties.GetList(FObject).Values[s_documentation] :=
EncodeLineBreak(StringReplace(edtDocumentation.Lines.Text,sLineBreak,#10,[rfReplaceAll]));
FApplied := True;
end;
@ -202,6 +213,16 @@ begin
DrawDependencies(tvDependency,FDependencyList);
end;
procedure TfEnumEdit.ShowDocumentation();
var
props : TStrings;
begin
props := FSymbolTable.Properties.FindList(FObject);
if ( props <> nil ) then
edtDocumentation.Lines.Text :=
StringReplace(DecodeLineBreak(props.Values[s_documentation]),#10,sLineBreak,[rfReplaceAll]);
end;
destructor TfEnumEdit.Destroy();
begin
FDependencyList.Free();

View File

@ -1,7 +1,7 @@
object fRecordEdit: TfRecordEdit
Left = 859
Left = 719
Height = 542
Top = 104
Top = 233
Width = 517
HorzScrollBar.Page = 516
VertScrollBar.Page = 541
@ -118,10 +118,12 @@ object fRecordEdit: TfRecordEdit
ParentColor = False
TabOrder = 0
BookMarkOptions.Xoffset = 42
BookMarkOptions.OnChange = nil
Gutter.DigitCount = 2
Gutter.ShowLineNumbers = True
Gutter.ShowCodeFolding = True
Gutter.Width = 10
Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14
Highlighter = SynXMLSyn1
Keystrokes = <
@ -446,6 +448,7 @@ object fRecordEdit: TfRecordEdit
ShortCut = 24642
end>
ReadOnly = True
SelectedColor.OnChange = nil
end
end
object tsDependencies: TTabSheet
@ -465,6 +468,21 @@ object fRecordEdit: TfRecordEdit
Options = [tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips]
end
end
object tsDocumentation: TTabSheet
Caption = 'Documentation'
ClientHeight = 466
ClientWidth = 509
object edtDocumentation: TMemo
Left = 12
Height = 434
Top = 18
Width = 480
Anchors = [akTop, akLeft, akRight, akBottom]
ScrollBars = ssAutoBoth
TabOrder = 0
WordWrap = False
end
end
end
object Panel1: TPanel
Height = 50

View File

@ -1,115 +1,121 @@
{ Ceci est un fichier ressource g�n�r� automatiquement par Lazarus }
LazarusResources.Add('TfRecordEdit','FORMDATA',[
'TPF0'#12'TfRecordEdit'#11'fRecordEdit'#4'Left'#3'['#3#6'Height'#3#30#2#3'Top'
+#2'h'#5'Width'#3#5#2#18'HorzScrollBar.Page'#3#4#2#18'VertScrollBar.Page'#3#29
+#2#13'ActiveControl'#7#2'PC'#7'Caption'#6#11'fRecordEdit'#12'ClientHeight'#3
+#30#2#11'ClientWidth'#3#5#2#8'Position'#7#15'poDesktopCenter'#10'LCLVersion'
+#6#6'0.9.25'#0#12'TPageControl'#2'PC'#6'Height'#3#236#1#5'Width'#3#5#2#10'Ac'
+'tivePage'#7#9'TabSheet1'#5'Align'#7#8'alClient'#8'TabIndex'#2#0#8'TabOrder'
+#2#0#8'OnChange'#7#8'PCChange'#13'OnPageChanged'#7#8'PCChange'#0#9'TTabSheet'
+#9'TabSheet1'#7'Caption'#6#11'Record Type'#12'ClientHeight'#3#210#1#11'Clien'
+'tWidth'#3#253#1#0#6'TLabel'#6'Label1'#4'Left'#2#20#6'Height'#2#14#3'Top'#2
+'"'#5'Width'#2#28#7'Caption'#6#4'Name'#11'ParentColor'#8#0#0#5'TEdit'#7'edtN'
+'ame'#4'Left'#2'L'#6'Height'#2#23#3'Top'#2'"'#5'Width'#3#153#1#7'Anchors'#11
+#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#0#0#0#9'TGroupBox'#9'GroupBox'
+'1'#4'Left'#2#20#6'Height'#3'@'#1#3'Top'#2'R'#5'Width'#3#209#1#7'Anchors'#11
+#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#7'Caption'#6#10' Fields '#12
+'ClientHeight'#3'.'#1#11'ClientWidth'#3#205#1#8'TabOrder'#2#1#0#9'TListView'
+#9'edtFields'#6'Height'#3'.'#1#5'Width'#3#205#1#5'Align'#7#8'alClient'#7'Col'
+'umns'#14#1#7'Caption'#6#4'Name'#5'Width'#3#200#0#0#1#7'Caption'#6#4'Type'#5
+'Width'#3#190#0#0#1#7'Caption'#6#9'Attribute'#5'Width'#2'<'#0#0#9'PopupMenu'
+#7#10'PopupMenu1'#8'TabOrder'#2#0#9'ViewStyle'#7#8'vsReport'#0#0#0#7'TButton'
+#7'Button3'#4'Left'#2#20#6'Height'#2#25#3'Top'#3#162#1#5'Width'#2'd'#6'Actio'
+'n'#7#10'actPropAdd'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#25'BorderSpacing.'
+'InnerBorder'#2#4#8'TabOrder'#2#2#0#0#7'TButton'#7'Button4'#4'Left'#3#132#0#6
+'Height'#2#25#3'Top'#3#162#1#5'Width'#2'd'#6'Action'#7#11'actPropEdit'#7'Anc'
+'hors'#11#6'akLeft'#8'akBottom'#0#25'BorderSpacing.InnerBorder'#2#4#8'TabOrd'
+'er'#2#3#0#0#7'TButton'#7'Button5'#4'Left'#3#244#0#6'Height'#2#25#3'Top'#3
+#162#1#5'Width'#2'd'#6'Action'#7#13'actPropDelete'#7'Anchors'#11#6'akLeft'#8
+'akBottom'#0#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#4#0#0#0#9'TTabS'
+'heet'#11'tsSourceXSD'#7'Caption'#6#3'XSD'#12'ClientHeight'#3#210#1#11'Clien'
+'tWidth'#3#253#1#0#8'TSynEdit'#12'edtSourceXSD'#4'Left'#2#12#6'Height'#3#176
+#1#3'Top'#2#18#5'Width'#3#224#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8
+'akBottom'#0#11'Font.Height'#2#236#9'Font.Name'#6#7'courier'#11'ParentColor'
+#8#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'*'#17'Gutter.DigitCount'#2#2
+#22'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#12'Gutter.Width'#2
+#10#23'Gutter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynXMLSyn1'#10'Key'
+'strokes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCu'
+'t'#3'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'Shor'
+'tCut'#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'S'
+'hortCut'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'Sh'
+'ortCut'#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'Sh'
+'ortCut'#3'%`'#0#1#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'Sh'
+'ortCut'#3''' '#0#1#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8
+'ShortCut'#3'''`'#0#1#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8
+'ShortCut'#3'" '#0#1#7'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8
+'ShortCut'#3'"`'#0#1#7'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'S'
+'hortCut'#3'! '#0#1#7'Command'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8
+'ShortCut'#3'!`'#0#1#7'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'S'
+'hortCut'#3'$ '#0#1#7'Command'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8
+'ShortCut'#3'$`'#0#1#7'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'S'
+'hortCut'#3'# '#0#1#7'Command'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8
+'ShortCut'#3'#`'#0#1#7'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201
+#0#8'ShortCut'#3'-@'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3
+#246#1#8'ShortCut'#2'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Comman'
+'d'#3#245#1#8'ShortCut'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7
+'Command'#3#248#1#8'ShortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8
+#128#0#0#0#1#7'Command'#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1
+#8'ShortCut'#2#13#0#1#7'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3
+#201#0#8'ShortCut'#3'C@'#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Comma'
+'nd'#3#253#1#8'ShortCut'#3'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7
+'Command'#3#247#1#8'ShortCut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0
+#1#7'Command'#3'\'#2#8'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X'
+'@'#0#1#7'Command'#3#251#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortC'
+'ut'#3'Y`'#0#1#7'Command'#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'S'
+'hortCut'#3'Z`'#0#1#7'Command'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1
+#8'ShortCut'#3'1@'#0#1#7'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3
,'0'#1#8'ShortCut'#3'3@'#0#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Comman'
+'d'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'C'
+'ommand'#3'4'#1#8'ShortCut'#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1
+#7'Command'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'
+#0#1#7'Command'#3'`'#1#8'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3
+'2`'#0#1#7'Command'#3'b'#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCu'
+'t'#3'4`'#0#1#7'Command'#3'd'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'Sh'
+'ortCut'#3'6`'#0#1#7'Command'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1
+#8'ShortCut'#3'8`'#0#1#7'Command'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3
+#231#0#8'ShortCut'#3'N`'#0#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Comm'
+'and'#3#233#0#8'ShortCut'#3'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7
+'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'
+#0#0#8'ReadOnly'#9#0#0#0#9'TTabSheet'#14'tsDependencies'#7'Caption'#6#7'Used'
+' by'#12'ClientHeight'#3#210#1#11'ClientWidth'#3#253#1#0#9'TTreeView'#12'tvD'
+'ependency'#4'Left'#2#20#6'Height'#3#177#1#3'Top'#2#18#5'Width'#3#208#1#7'An'
+'chors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#17'DefaultItemHeight'
+#2#15#8'ReadOnly'#9#16'RightClickSelect'#9#8'TabOrder'#2#0#7'Options'#11#17
+'tvoAutoItemHeight'#16'tvoHideSelection'#21'tvoKeepCollapsedNodes'#11'tvoRea'
+'dOnly'#19'tvoRightClickSelect'#14'tvoShowButtons'#12'tvoShowLines'#11'tvoSh'
+'owRoot'#11'tvoToolTips'#0#0#0#0#0#6'TPanel'#6'Panel1'#6'Height'#2'2'#3'Top'
+#3#236#1#5'Width'#3#5#2#5'Align'#7#8'alBottom'#12'ClientHeight'#2'2'#11'Clie'
+'ntWidth'#3#5#2#8'TabOrder'#2#1#0#7'TButton'#7'Button1'#4'Left'#3#253#0#6'He'
+'ight'#2#25#3'Top'#2#10#5'Width'#2'K'#6'Action'#7#5'actOK'#7'Anchors'#11#5'a'
+'kTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#0#0#0#7
+'TButton'#7'Button2'#4'Left'#3'U'#1#6'Height'#2#25#3'Top'#2#10#5'Width'#2'K'
+#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4#6'Can'
+'cel'#9#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#1#0#0#7'TBu'
+'tton'#7'Button6'#4'Left'#3#173#1#6'Height'#2#25#3'Top'#2#10#5'Width'#2'K'#6
+'Action'#7#8'actApply'#7'Anchors'#11#5'akTop'#7'akRight'#0#8'TabOrder'#2#2#0
+#0#0#11'TActionList'#11'ActionList1'#4'left'#3#128#0#3'top'#3#208#0#0#7'TAct'
+'ion'#5'actOK'#7'Caption'#6#2'OK'#18'DisableIfNoHandler'#9#9'OnExecute'#7#12
+'actOKExecute'#8'OnUpdate'#7#11'actOKUpdate'#0#0#7'TAction'#10'actPropAdd'#7
+'Caption'#6#12'New Property'#18'DisableIfNoHandler'#9#9'OnExecute'#7#17'actP'
+'ropAddExecute'#0#0#7'TAction'#11'actPropEdit'#7'Caption'#6#13'Edit Property'
+#18'DisableIfNoHandler'#9#9'OnExecute'#7#18'actPropEditExecute'#8'OnUpdate'#7
+#17'actPropEditUpdate'#0#0#7'TAction'#13'actPropDelete'#7'Caption'#6#15'Dele'
+'te Property'#18'DisableIfNoHandler'#9#9'OnExecute'#7#20'actPropDeleteExecut'
+'e'#8'OnUpdate'#7#17'actPropEditUpdate'#0#0#7'TAction'#8'actApply'#7'Caption'
+#6#5'Apply'#18'DisableIfNoHandler'#9#9'OnExecute'#7#15'actApplyExecute'#8'On'
+'Update'#7#11'actOKUpdate'#0#0#0#10'TPopupMenu'#10'PopupMenu1'#4'left'#2'p'#3
+'top'#3#0#1#0#9'TMenuItem'#9'MenuItem1'#6'Action'#7#10'actPropAdd'#7'OnClick'
+#7#17'actPropAddExecute'#0#0#9'TMenuItem'#9'MenuItem2'#6'Action'#7#11'actPro'
+'pEdit'#7'OnClick'#7#18'actPropEditExecute'#0#0#9'TMenuItem'#9'MenuItem3'#6
+'Action'#7#13'actPropDelete'#7'OnClick'#7#20'actPropDeleteExecute'#0#0#0#10
+'TSynXMLSyn'#10'SynXMLSyn1'#13'DefaultFilter'#6'MDocuments XML (*.xml,*.xsd,'
+'*.xsl,*.xslt,*.dtd)|*.xml;*.xsd;*.xsl;*.xslt;*.dtd'#7'Enabled'#8#16'WantBra'
+'cesParsed'#8#4'left'#3#238#0#3'top'#3#199#0#0#0#0
'TPF0'#12'TfRecordEdit'#11'fRecordEdit'#4'Left'#3#207#2#6'Height'#3#30#2#3'To'
+'p'#3#233#0#5'Width'#3#5#2#18'HorzScrollBar.Page'#3#4#2#18'VertScrollBar.Pag'
+'e'#3#29#2#13'ActiveControl'#7#2'PC'#7'Caption'#6#11'fRecordEdit'#12'ClientH'
+'eight'#3#30#2#11'ClientWidth'#3#5#2#8'Position'#7#15'poDesktopCenter'#10'LC'
+'LVersion'#6#6'0.9.25'#0#12'TPageControl'#2'PC'#6'Height'#3#236#1#5'Width'#3
+#5#2#10'ActivePage'#7#9'TabSheet1'#5'Align'#7#8'alClient'#8'TabIndex'#2#0#8
+'TabOrder'#2#0#8'OnChange'#7#8'PCChange'#13'OnPageChanged'#7#8'PCChange'#0#9
+'TTabSheet'#9'TabSheet1'#7'Caption'#6#11'Record Type'#12'ClientHeight'#3#210
+#1#11'ClientWidth'#3#253#1#0#6'TLabel'#6'Label1'#4'Left'#2#20#6'Height'#2#14
+#3'Top'#2'"'#5'Width'#2#28#7'Caption'#6#4'Name'#11'ParentColor'#8#0#0#5'TEdi'
+'t'#7'edtName'#4'Left'#2'L'#6'Height'#2#23#3'Top'#2'"'#5'Width'#3#153#1#7'An'
+'chors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#0#0#0#9'TGroupBox'#9
+'GroupBox1'#4'Left'#2#20#6'Height'#3'@'#1#3'Top'#2'R'#5'Width'#3#209#1#7'Anc'
+'hors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#7'Caption'#6#10' Fiel'
+'ds '#12'ClientHeight'#3'.'#1#11'ClientWidth'#3#205#1#8'TabOrder'#2#1#0#9'T'
+'ListView'#9'edtFields'#6'Height'#3'.'#1#5'Width'#3#205#1#5'Align'#7#8'alCli'
+'ent'#7'Columns'#14#1#7'Caption'#6#4'Name'#5'Width'#3#200#0#0#1#7'Caption'#6
+#4'Type'#5'Width'#3#190#0#0#1#7'Caption'#6#9'Attribute'#5'Width'#2'<'#0#0#9
+'PopupMenu'#7#10'PopupMenu1'#8'TabOrder'#2#0#9'ViewStyle'#7#8'vsReport'#0#0#0
+#7'TButton'#7'Button3'#4'Left'#2#20#6'Height'#2#25#3'Top'#3#162#1#5'Width'#2
+'d'#6'Action'#7#10'actPropAdd'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#25'Bord'
+'erSpacing.InnerBorder'#2#4#8'TabOrder'#2#2#0#0#7'TButton'#7'Button4'#4'Left'
+#3#132#0#6'Height'#2#25#3'Top'#3#162#1#5'Width'#2'd'#6'Action'#7#11'actPropE'
+'dit'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#25'BorderSpacing.InnerBorder'#2#4
+#8'TabOrder'#2#3#0#0#7'TButton'#7'Button5'#4'Left'#3#244#0#6'Height'#2#25#3
+'Top'#3#162#1#5'Width'#2'd'#6'Action'#7#13'actPropDelete'#7'Anchors'#11#6'ak'
+'Left'#8'akBottom'#0#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#4#0#0#0
+#9'TTabSheet'#11'tsSourceXSD'#7'Caption'#6#3'XSD'#12'ClientHeight'#3#210#1#11
+'ClientWidth'#3#253#1#0#8'TSynEdit'#12'edtSourceXSD'#4'Left'#2#12#6'Height'#3
+#176#1#3'Top'#2#18#5'Width'#3#224#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRig'
+'ht'#8'akBottom'#0#11'Font.Height'#2#236#9'Font.Name'#6#7'courier'#11'Parent'
+'Color'#8#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'*'#24'BookMarkOption'
+'s.OnChange'#13#17'Gutter.DigitCount'#2#2#22'Gutter.ShowLineNumbers'#9#22'Gu'
+'tter.ShowCodeFolding'#9#12'Gutter.Width'#2#10#15'Gutter.OnChange'#13#23'Gut'
+'ter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynXMLSyn1'#10'Keystrokes'
+#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0
+#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0
+#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'
+#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0
+#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1
+#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1
+#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1
+#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7
+'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7
+'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'C'
+'ommand'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7
+'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'C'
+'ommand'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7
+'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'C'
+'ommand'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7
+'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0
+#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2
+'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCu'
+'t'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'S'
+'hortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'
+#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7
+'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'
+#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3
+'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'Short'
+'Cut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8
+'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251
+#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'
+#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Comm'
+'and'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7
,'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0
+#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5'
+'@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'
+#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'Short'
+'Cut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8
+'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'
+#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3
+'d'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Comman'
+'d'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'C'
+'ommand'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0
+#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3
+'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'
+#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#22'Select'
+'edColor.OnChange'#13#0#0#0#9'TTabSheet'#14'tsDependencies'#7'Caption'#6#7'U'
+'sed by'#12'ClientHeight'#3#210#1#11'ClientWidth'#3#253#1#0#9'TTreeView'#12
+'tvDependency'#4'Left'#2#20#6'Height'#3#177#1#3'Top'#2#18#5'Width'#3#208#1#7
+'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#17'DefaultItemHeigh'
+'t'#2#15#8'ReadOnly'#9#16'RightClickSelect'#9#8'TabOrder'#2#0#7'Options'#11
+#17'tvoAutoItemHeight'#16'tvoHideSelection'#21'tvoKeepCollapsedNodes'#11'tvo'
+'ReadOnly'#19'tvoRightClickSelect'#14'tvoShowButtons'#12'tvoShowLines'#11'tv'
+'oShowRoot'#11'tvoToolTips'#0#0#0#0#9'TTabSheet'#15'tsDocumentation'#7'Capti'
+'on'#6#13'Documentation'#12'ClientHeight'#3#210#1#11'ClientWidth'#3#253#1#0#5
+'TMemo'#16'edtDocumentation'#4'Left'#2#12#6'Height'#3#178#1#3'Top'#2#18#5'Wi'
+'dth'#3#224#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#10'S'
+'crollBars'#7#10'ssAutoBoth'#8'TabOrder'#2#0#8'WordWrap'#8#0#0#0#0#6'TPanel'
+#6'Panel1'#6'Height'#2'2'#3'Top'#3#236#1#5'Width'#3#5#2#5'Align'#7#8'alBotto'
+'m'#12'ClientHeight'#2'2'#11'ClientWidth'#3#5#2#8'TabOrder'#2#1#0#7'TButton'
+#7'Button1'#4'Left'#3#253#0#6'Height'#2#25#3'Top'#2#10#5'Width'#2'K'#6'Actio'
+'n'#7#5'actOK'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBor'
+'der'#2#4#8'TabOrder'#2#0#0#0#7'TButton'#7'Button2'#4'Left'#3'U'#1#6'Height'
+#2#25#3'Top'#2#10#5'Width'#2'K'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'Borde'
+'rSpacing.InnerBorder'#2#4#6'Cancel'#9#7'Caption'#6#6'Cancel'#11'ModalResult'
+#2#2#8'TabOrder'#2#1#0#0#7'TButton'#7'Button6'#4'Left'#3#173#1#6'Height'#2#25
+#3'Top'#2#10#5'Width'#2'K'#6'Action'#7#8'actApply'#7'Anchors'#11#5'akTop'#7
+'akRight'#0#8'TabOrder'#2#2#0#0#0#11'TActionList'#11'ActionList1'#4'left'#3
+#128#0#3'top'#3#208#0#0#7'TAction'#5'actOK'#7'Caption'#6#2'OK'#18'DisableIfN'
+'oHandler'#9#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'#7#11'actOKUpdate'#0
+#0#7'TAction'#10'actPropAdd'#7'Caption'#6#12'New Property'#18'DisableIfNoHan'
+'dler'#9#9'OnExecute'#7#17'actPropAddExecute'#0#0#7'TAction'#11'actPropEdit'
+#7'Caption'#6#13'Edit Property'#18'DisableIfNoHandler'#9#9'OnExecute'#7#18'a'
+'ctPropEditExecute'#8'OnUpdate'#7#17'actPropEditUpdate'#0#0#7'TAction'#13'ac'
+'tPropDelete'#7'Caption'#6#15'Delete Property'#18'DisableIfNoHandler'#9#9'On'
+'Execute'#7#20'actPropDeleteExecute'#8'OnUpdate'#7#17'actPropEditUpdate'#0#0
+#7'TAction'#8'actApply'#7'Caption'#6#5'Apply'#18'DisableIfNoHandler'#9#9'OnE'
+'xecute'#7#15'actApplyExecute'#8'OnUpdate'#7#11'actOKUpdate'#0#0#0#10'TPopup'
+'Menu'#10'PopupMenu1'#4'left'#2'p'#3'top'#3#0#1#0#9'TMenuItem'#9'MenuItem1'#6
+'Action'#7#10'actPropAdd'#7'OnClick'#7#17'actPropAddExecute'#0#0#9'TMenuItem'
+#9'MenuItem2'#6'Action'#7#11'actPropEdit'#7'OnClick'#7#18'actPropEditExecute'
+#0#0#9'TMenuItem'#9'MenuItem3'#6'Action'#7#13'actPropDelete'#7'OnClick'#7#20
+'actPropDeleteExecute'#0#0#0#10'TSynXMLSyn'#10'SynXMLSyn1'#13'DefaultFilter'
+#6'MDocuments XML (*.xml,*.xsd,*.xsl,*.xslt,*.dtd)|*.xml;*.xsd;*.xsl;*.xslt;'
+'*.dtd'#7'Enabled'#8#16'WantBracesParsed'#8#4'left'#3#238#0#3'top'#3#199#0#0
+#0#0
]);

View File

@ -39,6 +39,7 @@ type
Button4 : TButton;
Button5 : TButton;
Button6 : TButton;
edtDocumentation : TMemo;
edtName : TEdit;
edtSourceXSD : TSynEdit;
GroupBox1 : TGroupBox;
@ -52,6 +53,7 @@ type
PopupMenu1 : TPopupMenu;
SynXMLSyn1 : TSynXMLSyn;
TabSheet1 : TTabSheet;
tsDocumentation : TTabSheet;
tsDependencies : TTabSheet;
tsSourceXSD : TTabSheet;
tvDependency : TTreeView;
@ -78,6 +80,7 @@ type
procedure ShowSourceXSD();
procedure ShowDependencies();
procedure ShowDocumentation();
public
destructor Destroy();override;
function UpdateObject(
@ -91,7 +94,7 @@ var
fRecordEdit : TfRecordEdit;
implementation
uses common_gui_utils, parserutils, ufpropedit, view_helper;
uses common_gui_utils, parserutils, ufpropedit, view_helper, xsd_consts;
{ TfRecordEdit }
@ -148,6 +151,8 @@ begin
ShowSourceXSD();
end else if ( PC.ActivePage = tsDependencies ) then begin
ShowDependencies();
end else if ( PC.ActivePage = tsDocumentation ) then begin
ShowDocumentation();
end;
end;
@ -218,6 +223,8 @@ begin
locObj := FObject;
locObj.Name := typIntName;
FSymbolTable.RegisterExternalAlias(locObj,typExtName);
FSymbolTable.Properties.GetList(FObject).Values[s_documentation] :=
EncodeLineBreak(StringReplace(edtDocumentation.Lines.Text,sLineBreak,#10,[rfReplaceAll]));
FApplied := True;
end;
@ -235,6 +242,16 @@ begin
DrawDependencies(tvDependency,FDependencyList);
end;
procedure TfRecordEdit.ShowDocumentation();
var
props : TStrings;
begin
props := FSymbolTable.Properties.FindList(FObject);
if ( props <> nil ) then
edtDocumentation.Lines.Text :=
StringReplace(DecodeLineBreak(props.Values[s_documentation]),#10,sLineBreak,[rfReplaceAll]);
end;
destructor TfRecordEdit.Destroy();
begin
FDependencyList.Free();

View File

@ -1,25 +1,25 @@
object frmSaveOptions: TfrmSaveOptions
Left = 158
Height = 322
Top = 380
Left = 459
Height = 338
Top = 273
Width = 402
HorzScrollBar.Page = 401
VertScrollBar.Page = 321
VertScrollBar.Page = 337
ActiveControl = edtInterface
BorderStyle = bsSizeToolWin
Caption = 'Export file options ...'
ClientHeight = 322
ClientHeight = 338
ClientWidth = 402
Position = poMainFormCenter
LCLVersion = '0.9.25'
object Panel1: TPanel
Height = 50
Top = 272
Top = 288
Width = 402
Align = alBottom
ClientHeight = 50
ClientWidth = 402
TabOrder = 0
TabOrder = 1
object Button1: TButton
Left = 312
Height = 25
@ -45,12 +45,12 @@ object frmSaveOptions: TfrmSaveOptions
end
end
object Panel2: TPanel
Height = 272
Height = 288
Width = 402
Align = alClient
ClientHeight = 272
ClientHeight = 288
ClientWidth = 402
TabOrder = 1
TabOrder = 0
object Label1: TLabel
Left = 16
Height = 14
@ -61,14 +61,14 @@ object frmSaveOptions: TfrmSaveOptions
end
object GroupBox1: TGroupBox
Left = 16
Height = 105
Height = 104
Top = 80
Width = 369
Anchors = [akTop, akLeft, akRight, akBottom]
Caption = ' File type '
ClientHeight = 87
ClientHeight = 86
ClientWidth = 365
TabOrder = 0
TabOrder = 2
object edtInterface: TCheckBox
Left = 14
Height = 19
@ -80,11 +80,11 @@ object frmSaveOptions: TfrmSaveOptions
object edtProxy: TCheckBox
Left = 14
Height = 19
Top = 38
Top = 51
Width = 52
Anchors = [akLeft, akBottom]
Caption = 'Proxy'
TabOrder = 1
TabOrder = 2
end
object edtImplementation: TCheckBox
Left = 227
@ -93,12 +93,12 @@ object frmSaveOptions: TfrmSaveOptions
Width = 97
Anchors = [akTop, akRight]
Caption = 'Implementation'
TabOrder = 2
TabOrder = 1
end
object edtBinder: TCheckBox
Left = 227
Height = 19
Top = 38
Top = 51
Width = 56
Anchors = [akRight, akBottom]
Caption = 'Binder'
@ -111,7 +111,7 @@ object frmSaveOptions: TfrmSaveOptions
Top = 38
Width = 336
Anchors = [akTop, akLeft, akRight]
TabOrder = 1
TabOrder = 0
end
object btnSelectDir: TButton
Left = 362
@ -122,36 +122,44 @@ object frmSaveOptions: TfrmSaveOptions
BorderSpacing.InnerBorder = 4
Caption = '...'
OnClick = btnSelectDirClick
TabOrder = 2
TabOrder = 1
end
object btnSelectAll: TButton
Left = 16
Height = 25
Top = 233
Top = 249
Width = 100
Anchors = [akLeft, akBottom]
Caption = 'Select All'
OnClick = btnSelectAllClick
TabOrder = 3
TabOrder = 5
end
object btnUnselectAll: TButton
Left = 256
Height = 25
Top = 233
Top = 249
Width = 100
Anchors = [akRight, akBottom]
Caption = 'Unselect All'
OnClick = btnUnselectAllClick
TabOrder = 4
TabOrder = 6
end
object edtWrappedParams: TCheckBox
Left = 16
Height = 19
Top = 200
Top = 196
Width = 290
Anchors = [akLeft, akBottom]
Caption = 'Generate easy access interface for wrapped parameters'
TabOrder = 5
TabOrder = 3
end
object edtDocAsComments: TCheckBox
Left = 16
Height = 19
Top = 224
Width = 208
Caption = 'Generate documentation as comments'
TabOrder = 4
end
end
object AL: TActionList

View File

@ -1,50 +1,52 @@
{ Ceci est un fichier ressource g�n�r� automatiquement par Lazarus }
LazarusResources.Add('TfrmSaveOptions','FORMDATA',[
'TPF0'#15'TfrmSaveOptions'#14'frmSaveOptions'#4'Left'#3#158#0#6'Height'#3'B'#1
+#3'Top'#3'|'#1#5'Width'#3#146#1#18'HorzScrollBar.Page'#3#145#1#18'VertScroll'
+'Bar.Page'#3'A'#1#13'ActiveControl'#7#12'edtInterface'#11'BorderStyle'#7#13
'TPF0'#15'TfrmSaveOptions'#14'frmSaveOptions'#4'Left'#3#203#1#6'Height'#3'R'#1
+#3'Top'#3#17#1#5'Width'#3#146#1#18'HorzScrollBar.Page'#3#145#1#18'VertScroll'
+'Bar.Page'#3'Q'#1#13'ActiveControl'#7#12'edtInterface'#11'BorderStyle'#7#13
+'bsSizeToolWin'#7'Caption'#6#23'Export file options ...'#12'ClientHeight'#3
+'B'#1#11'ClientWidth'#3#146#1#8'Position'#7#16'poMainFormCenter'#10'LCLVersi'
+'on'#6#6'0.9.25'#0#6'TPanel'#6'Panel1'#6'Height'#2'2'#3'Top'#3#16#1#5'Width'
+'R'#1#11'ClientWidth'#3#146#1#8'Position'#7#16'poMainFormCenter'#10'LCLVersi'
+'on'#6#6'0.9.25'#0#6'TPanel'#6'Panel1'#6'Height'#2'2'#3'Top'#3' '#1#5'Width'
+#3#146#1#5'Align'#7#8'alBottom'#12'ClientHeight'#2'2'#11'ClientWidth'#3#146#1
+#8'TabOrder'#2#0#0#7'TButton'#7'Button1'#4'Left'#3'8'#1#6'Height'#2#25#3'Top'
+#8'TabOrder'#2#1#0#7'TButton'#7'Button1'#4'Left'#3'8'#1#6'Height'#2#25#3'Top'
+#2#14#5'Width'#2'K'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.Inn'
+'erBorder'#2#4#6'Cancel'#9#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabO'
+'rder'#2#0#0#0#7'TButton'#7'Button2'#4'Left'#3#224#0#6'Height'#2#25#3'Top'#2
+#14#5'Width'#2'K'#6'Action'#7#5'actOK'#7'Anchors'#11#5'akTop'#7'akRight'#0#25
+'BorderSpacing.InnerBorder'#2#4#7'Default'#9#8'TabOrder'#2#1#0#0#0#6'TPanel'
+#6'Panel2'#6'Height'#3#16#1#5'Width'#3#146#1#5'Align'#7#8'alClient'#12'Clien'
+'tHeight'#3#16#1#11'ClientWidth'#3#146#1#8'TabOrder'#2#1#0#6'TLabel'#6'Label'
+#6'Panel2'#6'Height'#3' '#1#5'Width'#3#146#1#5'Align'#7#8'alClient'#12'Clien'
+'tHeight'#3' '#1#11'ClientWidth'#3#146#1#8'TabOrder'#2#0#0#6'TLabel'#6'Label'
+'1'#4'Left'#2#16#6'Height'#2#14#3'Top'#2#16#5'Width'#2'Q'#7'Caption'#6#16'Ou'
+'tput directory'#11'ParentColor'#8#0#0#9'TGroupBox'#9'GroupBox1'#4'Left'#2#16
+#6'Height'#2'i'#3'Top'#2'P'#5'Width'#3'q'#1#7'Anchors'#11#5'akTop'#6'akLeft'
+#6'Height'#2'h'#3'Top'#2'P'#5'Width'#3'q'#1#7'Anchors'#11#5'akTop'#6'akLeft'
+#7'akRight'#8'akBottom'#0#7'Caption'#6#13' File type '#12'ClientHeight'#2
+'W'#11'ClientWidth'#3'm'#1#8'TabOrder'#2#0#0#9'TCheckBox'#12'edtInterface'#4
+'V'#11'ClientWidth'#3'm'#1#8'TabOrder'#2#2#0#9'TCheckBox'#12'edtInterface'#4
+'Left'#2#14#6'Height'#2#19#3'Top'#2#16#5'Width'#2'D'#7'Caption'#6#9'Interfac'
+'e'#8'TabOrder'#2#0#0#0#9'TCheckBox'#8'edtProxy'#4'Left'#2#14#6'Height'#2#19
+#3'Top'#2'&'#5'Width'#2'4'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6
+#5'Proxy'#8'TabOrder'#2#1#0#0#9'TCheckBox'#17'edtImplementation'#4'Left'#3
+#3'Top'#2'3'#5'Width'#2'4'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6
+#5'Proxy'#8'TabOrder'#2#2#0#0#9'TCheckBox'#17'edtImplementation'#4'Left'#3
+#227#0#6'Height'#2#19#3'Top'#2#14#5'Width'#2'a'#7'Anchors'#11#5'akTop'#7'akR'
+'ight'#0#7'Caption'#6#14'Implementation'#8'TabOrder'#2#2#0#0#9'TCheckBox'#9
+'edtBinder'#4'Left'#3#227#0#6'Height'#2#19#3'Top'#2'&'#5'Width'#2'8'#7'Ancho'
+'ight'#0#7'Caption'#6#14'Implementation'#8'TabOrder'#2#1#0#0#9'TCheckBox'#9
+'edtBinder'#4'Left'#3#227#0#6'Height'#2#19#3'Top'#2'3'#5'Width'#2'8'#7'Ancho'
+'rs'#11#7'akRight'#8'akBottom'#0#7'Caption'#6#6'Binder'#8'TabOrder'#2#3#0#0#0
+#5'TEdit'#12'edtOutputDir'#4'Left'#2#16#6'Height'#2#23#3'Top'#2'&'#5'Width'#3
+'P'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#1#0#0#7'TB'
+'P'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#0#0#0#7'TB'
+'utton'#12'btnSelectDir'#4'Left'#3'j'#1#6'Height'#2#25#3'Top'#2'$'#5'Width'#2
+#25#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4#7
+'Caption'#6#3'...'#7'OnClick'#7#17'btnSelectDirClick'#8'TabOrder'#2#2#0#0#7
+'TButton'#12'btnSelectAll'#4'Left'#2#16#6'Height'#2#25#3'Top'#3#233#0#5'Widt'
+'Caption'#6#3'...'#7'OnClick'#7#17'btnSelectDirClick'#8'TabOrder'#2#1#0#0#7
+'TButton'#12'btnSelectAll'#4'Left'#2#16#6'Height'#2#25#3'Top'#3#249#0#5'Widt'
+'h'#2'd'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6#10'Select All'#7
+'OnClick'#7#17'btnSelectAllClick'#8'TabOrder'#2#3#0#0#7'TButton'#14'btnUnsel'
+'ectAll'#4'Left'#3#0#1#6'Height'#2#25#3'Top'#3#233#0#5'Width'#2'd'#7'Anchors'
+'OnClick'#7#17'btnSelectAllClick'#8'TabOrder'#2#5#0#0#7'TButton'#14'btnUnsel'
+'ectAll'#4'Left'#3#0#1#6'Height'#2#25#3'Top'#3#249#0#5'Width'#2'd'#7'Anchors'
+#11#7'akRight'#8'akBottom'#0#7'Caption'#6#12'Unselect All'#7'OnClick'#7#19'b'
+'tnUnselectAllClick'#8'TabOrder'#2#4#0#0#9'TCheckBox'#16'edtWrappedParams'#4
+'Left'#2#16#6'Height'#2#19#3'Top'#3#200#0#5'Width'#3'"'#1#7'Anchors'#11#6'ak'
+'tnUnselectAllClick'#8'TabOrder'#2#6#0#0#9'TCheckBox'#16'edtWrappedParams'#4
+'Left'#2#16#6'Height'#2#19#3'Top'#3#196#0#5'Width'#3'"'#1#7'Anchors'#11#6'ak'
+'Left'#8'akBottom'#0#7'Caption'#6'5Generate easy access interface for wrappe'
+'d parameters'#8'TabOrder'#2#5#0#0#0#11'TActionList'#2'AL'#4'left'#3#144#0#3
+'top'#3#128#0#0#7'TAction'#5'actOK'#7'Caption'#6#2'OK'#18'DisableIfNoHandler'
+#9#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'#7#11'actOKUpdate'#0#0#0#22'TS'
+'electDirectoryDialog'#2'SD'#11'FilterIndex'#2#0#4'left'#2'e'#3'top'#3#142#0
+#0#0#0
+'d parameters'#8'TabOrder'#2#3#0#0#9'TCheckBox'#16'edtDocAsComments'#4'Left'
+#2#16#6'Height'#2#19#3'Top'#3#224#0#5'Width'#3#208#0#7'Caption'#6'"Generate '
+'documentation as comments'#8'TabOrder'#2#4#0#0#0#11'TActionList'#2'AL'#4'le'
+'ft'#3#144#0#3'top'#3#128#0#0#7'TAction'#5'actOK'#7'Caption'#6#2'OK'#18'Disa'
+'bleIfNoHandler'#9#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'#7#11'actOKUpd'
+'ate'#0#0#0#22'TSelectDirectoryDialog'#2'SD'#11'FilterIndex'#2#0#4'left'#2'e'
+#3'top'#3#142#0#0#0#0
]);

View File

@ -20,6 +20,7 @@ type
btnSelectDir : TButton;
btnSelectAll: TButton;
btnUnselectAll: TButton;
edtDocAsComments : TCheckBox;
edtInterface : TCheckBox;
edtProxy : TCheckBox;
edtImplementation : TCheckBox;

View File

@ -118,12 +118,10 @@ object fTypeAliasEdit: TfTypeAliasEdit
ParentColor = False
TabOrder = 0
BookMarkOptions.Xoffset = 42
BookMarkOptions.OnChange = nil
Gutter.DigitCount = 2
Gutter.ShowLineNumbers = True
Gutter.ShowCodeFolding = True
Gutter.Width = 10
Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14
Highlighter = SynXMLSyn1
Keystrokes = <
@ -448,7 +446,6 @@ object fTypeAliasEdit: TfTypeAliasEdit
ShortCut = 24642
end>
ReadOnly = True
SelectedColor.OnChange = nil
end
end
object tsDependencies: TTabSheet
@ -468,6 +465,21 @@ object fTypeAliasEdit: TfTypeAliasEdit
Options = [tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips]
end
end
object tsDocumentation: TTabSheet
Caption = 'Documentation'
ClientHeight = 224
ClientWidth = 392
object edtDocumentation: TMemo
Left = 13
Height = 200
Top = 10
Width = 360
Anchors = [akTop, akLeft, akRight, akBottom]
ScrollBars = ssAutoBoth
TabOrder = 0
WordWrap = False
end
end
end
object AL: TActionList
left = 147

View File

@ -33,65 +33,68 @@ LazarusResources.Add('TfTypeAliasEdit','FORMDATA',[
+#11'ClientWidth'#3#136#1#0#8'TSynEdit'#12'edtSourceXSD'#4'Left'#2#13#6'Heigh'
+'t'#3#200#0#3'Top'#2#10#5'Width'#3'h'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'a'
+'kRight'#8'akBottom'#0#11'Font.Height'#2#236#9'Font.Name'#6#7'courier'#11'Pa'
+'rentColor'#8#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'*'#24'BookMarkOp'
+'tions.OnChange'#13#17'Gutter.DigitCount'#2#2#22'Gutter.ShowLineNumbers'#9#22
+'Gutter.ShowCodeFolding'#9#12'Gutter.Width'#2#10#15'Gutter.OnChange'#13#23'G'
+'utter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynXMLSyn1'#10'Keystrokes'
+#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0
+#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0
+#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'
+#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0
+#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1
+#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1
+#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1
+#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7
+'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7
+'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'C'
+'ommand'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7
+'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'C'
+'ommand'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7
+'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'C'
+'ommand'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7
+'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0
+#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2
+'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCu'
+'t'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'S'
+'hortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'
+#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7
+'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'
+#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3
+'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'Short'
+'Cut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8
+'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251
+#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'
+#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Comm'
,'and'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7
+'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0
+#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5'
+'@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'
+#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'Short'
+'Cut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8
+'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'
+#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3
+'d'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Comman'
+'d'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'C'
+'ommand'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0
+#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3
+'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'
+#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#22'Select'
+'edColor.OnChange'#13#0#0#0#9'TTabSheet'#14'tsDependencies'#7'Caption'#6#7'U'
+'sed by'#12'ClientHeight'#3#224#0#11'ClientWidth'#3#136#1#0#9'TTreeView'#12
+'tvDependency'#4'Left'#2#12#6'Height'#3#194#0#3'Top'#2#13#5'Width'#3'h'#1#7
+'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#17'DefaultItemHeigh'
+'t'#2#15#8'ReadOnly'#9#16'RightClickSelect'#9#8'TabOrder'#2#0#7'Options'#11
+#17'tvoAutoItemHeight'#16'tvoHideSelection'#21'tvoKeepCollapsedNodes'#11'tvo'
+'ReadOnly'#19'tvoRightClickSelect'#14'tvoShowButtons'#12'tvoShowLines'#11'tv'
+'oShowRoot'#11'tvoToolTips'#0#0#0#0#0#11'TActionList'#2'AL'#4'left'#3#147#0#3
+'top'#2'x'#0#7'TAction'#5'actOK'#7'Caption'#6#2'OK'#18'DisableIfNoHandler'#9
+#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'#7#11'actOKUpdate'#0#0#7'TAction'
+#8'actApply'#7'Caption'#6#5'Apply'#18'DisableIfNoHandler'#9#9'OnExecute'#7#15
+'actApplyExecute'#8'OnUpdate'#7#11'actOKUpdate'#0#0#0#10'TSynXMLSyn'#10'SynX'
+'MLSyn1'#13'DefaultFilter'#6'MDocuments XML (*.xml,*.xsd,*.xsl,*.xslt,*.dtd)'
+'|*.xml;*.xsd;*.xsl;*.xslt;*.dtd'#7'Enabled'#8#16'WantBracesParsed'#8#4'left'
+#3#200#0#3'top'#3#168#0#0#0#0
+'rentColor'#8#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'*'#17'Gutter.Dig'
+'itCount'#2#2#22'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#12'G'
+'utter.Width'#2#10#23'Gutter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'Syn'
+'XMLSyn1'#10'Keystrokes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'
+#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Comma'
+'nd'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Comman'
+'d'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Comm'
+'and'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Comm'
+'and'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'Comm'
+'and'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Co'
+'mmand'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7'C'
+'ommand'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2#14#8'ShortCut'#3'"@'#0#1#7
+'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2#9#8'ShortCut'#2'!'#0#1#7'C'
+'ommand'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13#8'ShortCut'#3'!@'#0#1#7
+'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8'ShortCut'#2'$'#0#1#7'C'
+'ommand'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8'ShortCut'#3'$@'#0#1#7
+'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8'ShortCut'#2'#'#0#1#7'C'
+'ommand'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8'ShortCut'#3'#@'#0#1#7
+'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0#8'ShortCut'#2'-'#0#1
+#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'- '
+#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3
+'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Command'#3#245#1#8'ShortCu'
+'t'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8
+'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'C'
+'ommand'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3#199#0#8'ShortCut'#3'A@'#0
+#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Command'#3'b'#2#8'ShortCut'#3
+'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7'Command'#3#254#1#8'Short'
+'Cut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@'#0#1#7'Command'#3'c'#2#8
+'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'V@'#0#1#7'Command'#3'['
+#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortCut'#3'Y@'#0#1#7'Command'
+#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Com'
+'mand'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-'#1#8'ShortCut'#3'0@'#0#1#7
,'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3'/'#1#8'ShortCut'#3'2@'#0
+#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Command'#3'1'#1#8'ShortCut'#3'4'
+'@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'Command'#3'3'#1#8'ShortCut'
+#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1#7'Command'#3'5'#1#8'Short'
+'Cut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'Command'#3'_'#1#8
+'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3'1`'#0#1#7'Command'#3'a'
+#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCut'#3'3`'#0#1#7'Command'#3
+'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'ShortCut'#3'5`'#0#1#7'Comman'
+'d'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'C'
+'ommand'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3'h'#1#8'ShortCut'#3'9`'#0#1
+#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Command'#3#232#0#8'ShortCut'#3'C'
+'`'#0#1#7'Command'#3#233#0#8'ShortCut'#3'L`'#0#1#7'Command'#3'd'#2#8'ShortCu'
+'t'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1#7'Command'#3#250#0#8'Sh'
+'ortCut'#3'B`'#0#0#8'ReadOnly'#9#0#0#0#9'TTabSheet'#14'tsDependencies'#7'Cap'
+'tion'#6#7'Used by'#12'ClientHeight'#3#224#0#11'ClientWidth'#3#136#1#0#9'TTr'
+'eeView'#12'tvDependency'#4'Left'#2#12#6'Height'#3#194#0#3'Top'#2#13#5'Width'
+#3'h'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#17'Default'
+'ItemHeight'#2#15#8'ReadOnly'#9#16'RightClickSelect'#9#8'TabOrder'#2#0#7'Opt'
+'ions'#11#17'tvoAutoItemHeight'#16'tvoHideSelection'#21'tvoKeepCollapsedNode'
+'s'#11'tvoReadOnly'#19'tvoRightClickSelect'#14'tvoShowButtons'#12'tvoShowLin'
+'es'#11'tvoShowRoot'#11'tvoToolTips'#0#0#0#0#9'TTabSheet'#15'tsDocumentation'
+#7'Caption'#6#13'Documentation'#12'ClientHeight'#3#224#0#11'ClientWidth'#3
+#136#1#0#5'TMemo'#16'edtDocumentation'#4'Left'#2#13#6'Height'#3#200#0#3'Top'
+#2#10#5'Width'#3'h'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'
+#0#10'ScrollBars'#7#10'ssAutoBoth'#8'TabOrder'#2#0#8'WordWrap'#8#0#0#0#0#11
+'TActionList'#2'AL'#4'left'#3#147#0#3'top'#2'x'#0#7'TAction'#5'actOK'#7'Capt'
+'ion'#6#2'OK'#18'DisableIfNoHandler'#9#9'OnExecute'#7#12'actOKExecute'#8'OnU'
+'pdate'#7#11'actOKUpdate'#0#0#7'TAction'#8'actApply'#7'Caption'#6#5'Apply'#18
+'DisableIfNoHandler'#9#9'OnExecute'#7#15'actApplyExecute'#8'OnUpdate'#7#11'a'
+'ctOKUpdate'#0#0#0#10'TSynXMLSyn'#10'SynXMLSyn1'#13'DefaultFilter'#6'MDocume'
+'nts XML (*.xml,*.xsd,*.xsl,*.xslt,*.dtd)|*.xml;*.xsd;*.xsl;*.xslt;*.dtd'#7
+'Enabled'#8#16'WantBracesParsed'#8#4'left'#3#200#0#3'top'#3#168#0#0#0#0
]);

View File

@ -22,6 +22,7 @@ type
Button2 : TButton;
Button3 : TButton;
edtBaseType : TComboBox;
edtDocumentation : TMemo;
edtName : TEdit;
edtSourceXSD : TSynEdit;
Label1 : TLabel;
@ -30,6 +31,7 @@ type
Panel1 : TPanel;
SynXMLSyn1 : TSynXMLSyn;
TabSheet1 : TTabSheet;
tsDocumentation : TTabSheet;
tsDependencies : TTabSheet;
tsSourceXSD : TTabSheet;
tvDependency : TTreeView;
@ -53,6 +55,7 @@ type
procedure ShowSourceXSD();
procedure ShowDependencies();
procedure ShowDocumentation();
public
destructor Destroy();override;
function UpdateObject(
@ -67,7 +70,7 @@ var
fTypeAliasEdit : TfTypeAliasEdit;
implementation
uses parserutils, view_helper;
uses parserutils, view_helper, xsd_consts;
{ TfTypeAliasEdit }
@ -84,6 +87,8 @@ begin
ShowSourceXSD();
end else if ( PC.ActivePage = tsDependencies ) then begin
ShowDependencies();
end else if ( PC.ActivePage = tsDocumentation ) then begin
ShowDocumentation();
end;
end;
@ -155,6 +160,8 @@ begin
locObj.DestType.AddRef();
end;
FOldBaseType := locObj.DestType;
FSymbolTable.Properties.GetList(FObject).Values[s_documentation] :=
EncodeLineBreak(StringReplace(edtDocumentation.Lines.Text,sLineBreak,#10,[rfReplaceAll]));
FApplied := True;
end;
@ -172,6 +179,16 @@ begin
DrawDependencies(tvDependency,FDependencyList);
end;
procedure TfTypeAliasEdit.ShowDocumentation();
var
props : TStrings;
begin
props := FSymbolTable.Properties.FindList(FObject);
if ( props <> nil ) then
edtDocumentation.Lines.Text :=
StringReplace(DecodeLineBreak(props.Values[s_documentation]),#10,sLineBreak,[rfReplaceAll]);
end;
destructor TfTypeAliasEdit.Destroy();
begin
FDependencyList.Free();

File diff suppressed because it is too large Load Diff

View File

@ -1,11 +1,11 @@
{ Ceci est un fichier ressource g�n�r� automatiquement par Lazarus }
LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
'TPF0'#20'TfWstTypeLibraryEdit'#19'fWstTypeLibraryEdit'#4'Left'#3#155#0#6'Hei'
+'ght'#3#132#2#3'Top'#3#166#0#5'Width'#3'A'#3#18'HorzScrollBar.Page'#3'@'#3#18
+'VertScrollBar.Page'#3'o'#2#13'ActiveControl'#7#9'trvSchema'#7'Caption'#6'+['
+'Web Services Toolkit ] Type Library Editor'#12'ClientHeight'#3'p'#2#11'Clie'
+'ntWidth'#3'A'#3#4'Menu'#7#9'MainMenu1'#7'OnClose'#7#9'FormClose'#6'OnShow'#7
'TPF0'#20'TfWstTypeLibraryEdit'#19'fWstTypeLibraryEdit'#4'Left'#3#231#0#6'Hei'
+'ght'#3#132#2#3'Top'#2's'#5'Width'#3'A'#3#18'HorzScrollBar.Page'#3'@'#3#18'V'
+'ertScrollBar.Page'#3'o'#2#13'ActiveControl'#7#9'trvSchema'#7'Caption'#6'+[W'
+'eb Services Toolkit ] Type Library Editor'#12'ClientHeight'#3'p'#2#11'Clien'
+'tWidth'#3'A'#3#4'Menu'#7#9'MainMenu1'#7'OnClose'#7#9'FormClose'#6'OnShow'#7
+#8'FormShow'#8'Position'#7#15'poDesktopCenter'#10'LCLVersion'#6#6'0.9.25'#0
+#10'TStatusBar'#2'SB'#6'Height'#2#23#3'Top'#3'Y'#2#5'Width'#3'A'#3#6'Panels'
+#14#1#5'Width'#3','#1#0#1#5'Width'#2'2'#0#0#11'SimplePanel'#8#0#0#6'TPanel'#6
@ -13,118 +13,118 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+'ht'#3'Y'#2#11'ClientWidth'#3':'#1#8'TabOrder'#2#0#0#9'TTreeView'#9'trvSchem'
+'a'#4'Left'#2#1#6'Height'#3'W'#2#3'Top'#2#1#5'Width'#3'8'#1#5'Align'#7#8'alC'
+'lient'#17'DefaultItemHeight'#2#15#9'PopupMenu'#7#10'PopupMenu1'#8'TabOrder'
+#2#0#0#0#0#6'TPanel'#6'Panel2'#4'Left'#3'B'#1#6'Height'#3'Y'#2#5'Width'#3#255
+#1#5'Align'#7#8'alClient'#12'ClientHeight'#3'Y'#2#11'ClientWidth'#3#255#1#8
+'TabOrder'#2#1#0#12'TPageControl'#2'PC'#4'Left'#2#1#6'Height'#3'W'#2#3'Top'#2
+#1#5'Width'#3#253#1#10'ActivePage'#7#11'tsInterface'#5'Align'#7#8'alClient'#8
+'TabIndex'#2#0#8'TabOrder'#2#0#0#9'TTabSheet'#11'tsInterface'#7'Caption'#6#10
+'&Interface'#12'ClientHeight'#3'='#2#11'ClientWidth'#3#245#1#0#8'TSynEdit'#12
+'srcInterface'#6'Height'#3'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'#12'F'
+'ont.CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7#7'clBlack'#11'Font.Height'
+#2#236#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7#7'fpFixed'#11'ParentColor'
+#8#9'PopupMenu'#7#10'PopupMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'
+#2'Q'#24'BookMarkOptions.OnChange'#13#17'Gutter.DigitCount'#2#5#22'Gutter.Sh'
+'owLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#15'Gutter.OnChange'#13#23'Gut'
+'ter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'
+#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0
+#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0
+#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'
+#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0
+#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1
+#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1
+#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1
+#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7
+'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7
+'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'C'
+'ommand'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7
+'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'C'
+'ommand'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7
+'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'C'
+'ommand'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7
+'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0
+#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2
+'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCu'
+'t'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'S'
+'hortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'
+#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7
+'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'
+#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3
+'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'Short'
+'Cut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8
+'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251
+#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'
+#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Comm'
+'and'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7
+'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0
+#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5'
+'@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'
+#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'Short'
+'Cut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8
+'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'
+#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3
+'d'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Comman'
+'d'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'C'
+'ommand'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0
,#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3
+'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'
+#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#22'Select'
+'edColor.OnChange'#13#0#0#0#9'TTabSheet'#6'tsWSDL'#7'Caption'#6#5'&WSDL'#0#8
+'TSynEdit'#7'srcWSDL'#6'Height'#3'='#2#5'Width'#3#245#1#5'Align'#7#8'alClien'
+'t'#12'Font.CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7#7'clBlack'#11'Font.'
+'Height'#2#233#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7#7'fpFixed'#11'Pare'
+'ntColor'#8#9'PopupMenu'#7#10'PopupMenu2'#8'TabOrder'#2#0#23'BookMarkOptions'
+'.Xoffset'#2'6'#24'BookMarkOptions.OnChange'#13#22'Gutter.ShowLineNumbers'#9
+#15'Gutter.OnChange'#13#23'Gutter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10
+'SynXMLSyn1'#10'Keystrokes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Comma'
+'nd'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'C'
+'ommand'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Co'
+'mmand'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7
+'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7
+'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8'ShortCut'#2''''#0#1#7
+'Command'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7
+'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7
+'Command'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2#14#8'ShortCut'#3'"@'#0#1#7
+'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2#9#8'ShortCut'#2'!'#0#1#7'C'
+'ommand'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13#8'ShortCut'#3'!@'#0#1#7
+'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8'ShortCut'#2'$'#0#1#7'C'
+'ommand'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8'ShortCut'#3'$@'#0#1#7
+'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8'ShortCut'#2'#'#0#1#7'C'
+'ommand'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8'ShortCut'#3'#@'#0#1#7
+'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0#8'ShortCut'#2'-'#0#1
+#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'- '
+#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3
+'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Command'#3#245#1#8'ShortCu'
+'t'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8
+'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'C'
+'ommand'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3#199#0#8'ShortCut'#3'A@'#0
+#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Command'#3'b'#2#8'ShortCut'#3
+'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7'Command'#3#254#1#8'Short'
+'Cut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@'#0#1#7'Command'#3'c'#2#8
+'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'V@'#0#1#7'Command'#3'['
+#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortCut'#3'Y@'#0#1#7'Command'
+#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Com'
+'mand'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-'#1#8'ShortCut'#3'0@'#0#1#7
+'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3'/'#1#8'ShortCut'#3'2@'#0
+#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Command'#3'1'#1#8'ShortCut'#3'4'
+'@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'Command'#3'3'#1#8'ShortCut'
+#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1#7'Command'#3'5'#1#8'Short'
+'Cut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'Command'#3'_'#1#8
+'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3'1`'#0#1#7'Command'#3'a'
+#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCut'#3'3`'#0#1#7'Command'#3
+'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'ShortCut'#3'5`'#0#1#7'Comman'
+'d'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'C'
+'ommand'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3'h'#1#8'ShortCut'#3'9`'#0#1
+#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Command'#3#232#0#8'ShortCut'#3'C'
+'`'#0#1#7'Command'#3#233#0#8'ShortCut'#3'L`'#0#1#7'Command'#3'd'#2#8'ShortCu'
+'t'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1#7'Command'#3#250#0#8'Sh'
+'ortCut'#3'B`'#0#0#8'ReadOnly'#9#22'SelectedColor.OnChange'#13#0#0#0#9'TTabS'
+'heet'#7'tsProxy'#7'Caption'#6#6'&Proxy'#0#8'TSynEdit'#8'srcProxy'#6'Height'
+#3'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_C'
+'HARSET'#10'Font.Color'#7#7'clBlack'#11'Font.Height'#2#236#9'Font.Name'#6#7
+'Courier'#10'Font.Pitch'#7#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10'Po'
+'pupMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'Q'#17'Gutter.DigitC'
+'ount'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#23'Gutt'
+'er.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'#14
+#2#0#18'OnSelectionChanged'#7#25'trvSchemaSelectionChanged'#0#0#0#6'TPanel'#6
+'Panel2'#4'Left'#3'B'#1#6'Height'#3'Y'#2#5'Width'#3#255#1#5'Align'#7#8'alCli'
+'ent'#12'ClientHeight'#3'Y'#2#11'ClientWidth'#3#255#1#8'TabOrder'#2#1#0#12'T'
+'PageControl'#2'PC'#4'Left'#2#1#6'Height'#3#207#1#3'Top'#2#1#5'Width'#3#253#1
+#10'ActivePage'#7#11'tsInterface'#5'Align'#7#8'alClient'#8'TabIndex'#2#0#8'T'
+'abOrder'#2#0#0#9'TTabSheet'#11'tsInterface'#7'Caption'#6#10'&Interface'#12
+'ClientHeight'#3#181#1#11'ClientWidth'#3#245#1#0#8'TSynEdit'#12'srcInterface'
+#6'Height'#3#181#1#5'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7
+#12'ANSI_CHARSET'#10'Font.Color'#7#7'clBlack'#11'Font.Height'#2#236#9'Font.N'
+'ame'#6#7'Courier'#10'Font.Pitch'#7#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'
+#7#10'PopupMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'Q'#17'Gutter'
+'.DigitCount'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9
+#23'Gutter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystr'
+'okes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3
+'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'
+#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCu'
+'t'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'
+#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3
+'%`'#0#1#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3
+''' '#0#1#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3
+'''`'#0#1#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3
+'" '#0#1#7'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3
+'"`'#0#1#7'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'!'
+' '#0#1#7'Command'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3
+'!`'#0#1#7'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$'
+' '#0#1#7'Command'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3
+'$`'#0#1#7'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'#'
+' '#0#1#7'Command'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3
+'#`'#0#1#7'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortC'
+'ut'#3'-@'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8
+'ShortCut'#2'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245
+#1#8'ShortCut'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3
+#248#1#8'ShortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7
+'Command'#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2
+#13#0#1#7'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortC'
+'ut'#3'C@'#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8
+'ShortCut'#3'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3
+#247#1#8'ShortCut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Comma'
+'nd'#3'\'#2#8'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7
+'Command'#3#251#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'
+#0#1#7'Command'#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3
+'Z`'#0#1#7'Command'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCu'
+'t'#3'1@'#0#1#7'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'Sh'
+'ortCut'#3'3@'#0#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1
+#8'ShortCut'#3'5@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3
+'4'#1#8'ShortCut'#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Comman'
+'d'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'C'
+'ommand'#3'`'#1#8'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1
+#7'Command'#3'b'#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'
+#0#1#7'Command'#3'd'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3
+'6`'#0#1#7'Command'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCu'
+'t'#3'8`'#0#1#7'Command'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'S'
,'hortCut'#3'N`'#0#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233
+#0#8'ShortCut'#3'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3
+'e'#2#8'ShortCut'#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'Read'
+'Only'#9#0#0#0#9'TTabSheet'#6'tsWSDL'#7'Caption'#6#5'&WSDL'#12'ClientHeight'
+#3#181#1#11'ClientWidth'#3#245#1#0#8'TSynEdit'#7'srcWSDL'#6'Height'#3#181#1#5
+'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_CHARSET'#10
+'Font.Color'#7#7'clBlack'#11'Font.Height'#2#233#9'Font.Name'#6#7'Courier'#10
+'Font.Pitch'#7#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10'PopupMenu2'#8
+'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'6'#22'Gutter.ShowLineNumbers'#9
+#23'Gutter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynXMLSyn1'#10'Keystr'
+'okes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3
+'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'
+#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCu'
+'t'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'
+#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3
+'%`'#0#1#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3
+''' '#0#1#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3
+'''`'#0#1#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3
+'" '#0#1#7'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3
+'"`'#0#1#7'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'!'
+' '#0#1#7'Command'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3
+'!`'#0#1#7'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$'
+' '#0#1#7'Command'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3
+'$`'#0#1#7'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'#'
+' '#0#1#7'Command'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3
+'#`'#0#1#7'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortC'
+'ut'#3'-@'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8
+'ShortCut'#2'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245
+#1#8'ShortCut'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3
+#248#1#8'ShortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7
+'Command'#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2
+#13#0#1#7'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortC'
+'ut'#3'C@'#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8
+'ShortCut'#3'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3
+#247#1#8'ShortCut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Comma'
+'nd'#3'\'#2#8'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7
+'Command'#3#251#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'
+#0#1#7'Command'#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3
+'Z`'#0#1#7'Command'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCu'
+'t'#3'1@'#0#1#7'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'Sh'
+'ortCut'#3'3@'#0#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1
+#8'ShortCut'#3'5@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3
+'4'#1#8'ShortCut'#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Comman'
+'d'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'C'
+'ommand'#3'`'#1#8'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1
+#7'Command'#3'b'#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'
+#0#1#7'Command'#3'd'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3
+'6`'#0#1#7'Command'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCu'
+'t'#3'8`'#0#1#7'Command'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'S'
+'hortCut'#3'N`'#0#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233
+#0#8'ShortCut'#3'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3
+'e'#2#8'ShortCut'#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'Read'
+'Only'#9#0#0#0#9'TTabSheet'#7'tsProxy'#7'Caption'#6#6'&Proxy'#0#8'TSynEdit'#8
+'srcProxy'#6'Height'#3'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.'
+'CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7#7'clBlack'#11'Font.Height'#2
+#236#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7#7'fpFixed'#11'ParentColor'#8
+#9'PopupMenu'#7#10'PopupMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2
+'Q'#24'BookMarkOptions.OnChange'#13#17'Gutter.DigitCount'#2#5#22'Gutter.Show'
+'LineNumbers'#9#22'Gutter.ShowCodeFolding'#9#15'Gutter.OnChange'#13#23'Gutte'
+'r.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'#14
+#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1
+#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1
+#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0
@ -166,118 +166,186 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+'ommand'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0
+#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3
+'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'
+#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#0#0#0#9'T'
+'TabSheet'#5'tsImp'#7'Caption'#6#24'Im&plementation Skeleton'#0#8'TSynEdit'#6
+'srcImp'#6'Height'#3'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.Ch'
+'arSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7#7'clBlack'#11'Font.Height'#2#236
+#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7#7'fpFixed'#11'ParentColor'#8#9'P'
+'opupMenu'#7#10'PopupMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'Q'
+#17'Gutter.DigitCount'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFo'
+'lding'#9#23'Gutter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'
+#10'Keystrokes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'S'
+'hortCut'#3'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8
+'ShortCut'#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0
+#8'ShortCut'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8
+'ShortCut'#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8
+'ShortCut'#3'%`'#0#1#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8
+'ShortCut'#3''' '#0#1#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8
+'ShortCut'#3'''`'#0#1#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8
+'ShortCut'#3'" '#0#1#7'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8
+'ShortCut'#3'"`'#0#1#7'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'S'
+'hortCut'#3'! '#0#1#7'Command'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8
+'ShortCut'#3'!`'#0#1#7'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'S'
+'hortCut'#3'$ '#0#1#7'Command'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8
+'ShortCut'#3'$`'#0#1#7'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'S'
+'hortCut'#3'# '#0#1#7'Command'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8
+'ShortCut'#3'#`'#0#1#7'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201
+#0#8'ShortCut'#3'-@'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3
+#246#1#8'ShortCut'#2'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Comman'
+'d'#3#245#1#8'ShortCut'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7
,'Command'#3#248#1#8'ShortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8
+#128#0#0#0#1#7'Command'#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1
+#8'ShortCut'#2#13#0#1#7'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3
+#201#0#8'ShortCut'#3'C@'#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Comma'
+'nd'#3#253#1#8'ShortCut'#3'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7
+'Command'#3#247#1#8'ShortCut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0
+#1#7'Command'#3'\'#2#8'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X'
+'@'#0#1#7'Command'#3#251#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortC'
+'ut'#3'Y`'#0#1#7'Command'#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'S'
+'hortCut'#3'Z`'#0#1#7'Command'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1
+#8'ShortCut'#3'1@'#0#1#7'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3
+'0'#1#8'ShortCut'#3'3@'#0#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Comman'
+'d'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'C'
+'ommand'#3'4'#1#8'ShortCut'#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1
+#7'Command'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'
+#0#1#7'Command'#3'`'#1#8'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3
+'2`'#0#1#7'Command'#3'b'#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCu'
+'t'#3'4`'#0#1#7'Command'#3'd'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'Sh'
+'ortCut'#3'6`'#0#1#7'Command'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1
+#8'ShortCut'#3'8`'#0#1#7'Command'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3
+#231#0#8'ShortCut'#3'N`'#0#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Comm'
+'and'#3#233#0#8'ShortCut'#3'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7
+'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'
+#0#0#8'ReadOnly'#9#0#0#0#9'TTabSheet'#8'tsBinder'#7'Caption'#6#7'&Binder'#0#8
+'TSynEdit'#9'srcBinder'#6'Height'#3'='#2#5'Width'#3#245#1#5'Align'#7#8'alCli'
+'ent'#12'Font.CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7#7'clBlack'#11'Fon'
+'t.Height'#2#236#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7#7'fpFixed'#11'Pa'
+'rentColor'#8#9'PopupMenu'#7#10'PopupMenu2'#8'TabOrder'#2#0#23'BookMarkOptio'
+'ns.Xoffset'#2'Q'#15'Gutter.AutoSize'#9#17'Gutter.DigitCount'#2#5#22'Gutter.'
+'ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#23'Gutter.CodeFoldingWidth'
+#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'#14#1#7'Command'#2#3#8
+'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3#211#0
+#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'#8
+'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'#2#1
+#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2#5#8
+'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8
+'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6#8
+'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2#10
+#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2#14#8
+'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2#9#8
+'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13#8
+'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8
+'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8
+'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8
+'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8
+'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0
+#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3
+'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Comman'
+'d'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Co'
+'mmand'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@'
+#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'Short'
+'Cut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3
+#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Comm'
+'and'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7
+'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@'
+#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3
+'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortC'
+'ut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8
+'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-'
+#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3
+'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Comman'
+'d'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'C'
+'ommand'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1
+#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'
,#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3
+'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCu'
+'t'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'Sh'
+'ortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1
+#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3
+'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Comma'
+'nd'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3'L`'#0#1#7
+'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1
+#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#0#0#0#9'TTabSheet'#5
+'tsLog'#7'Caption'#6#4'&Log'#0#5'TMemo'#6'mmoLog'#6'Height'#3'='#2#5'Width'#3
+#245#1#5'Align'#7#8'alClient'#13'Lines.Strings'#1#6#0#0#10'ScrollBars'#7#6's'
+'sBoth'#8'TabOrder'#2#0#0#0#0#0#0#9'TSplitter'#9'Splitter1'#4'Left'#3':'#1#6
+'Height'#3'Y'#2#5'Width'#2#8#5'Color'#7#7'clBlack'#11'ParentColor'#8#0#0#9'T'
+'MainMenu'#9'MainMenu1'#4'left'#3'`'#1#3'top'#2'p'#0#9'TMenuItem'#9'MenuItem'
+'1'#7'Caption'#6#6'&Files'#0#9'TMenuItem'#10'MenuItem16'#6'Action'#7#10'actN'
+'ewFile'#7'OnClick'#7#17'actNewFileExecute'#0#0#9'TMenuItem'#9'MenuItem2'#7
+'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem5'#6'Action'#7#11'actOpenFile'#7
+'OnClick'#7#18'actOpenFileExecute'#0#0#9'TMenuItem'#9'MenuItem3'#6'Action'#7
+#9'actExport'#7'OnClick'#7#16'actExportExecute'#0#0#9'TMenuItem'#9'MenuItem7'
+#6'Action'#7#7'actSave'#7'OnClick'#7#14'actSaveExecute'#0#0#9'TMenuItem'#10
+'MenuItem32'#6'Action'#7#9'actSaveAs'#7'OnClick'#7#16'actSaveAsExecute'#0#0#9
+#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#22'Select'
+'edColor.OnChange'#13#0#0#0#9'TTabSheet'#5'tsImp'#7'Caption'#6#24'Im&plement'
+'ation Skeleton'#12'ClientHeight'#3#181#1#11'ClientWidth'#3#245#1#0#8'TSynEd'
+'it'#6'srcImp'#6'Height'#3#181#1#5'Width'#3#245#1#5'Align'#7#8'alClient'#12
+'Font.CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7#7'clBlack'#11'Font.Height'
+#2#236#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7#7'fpFixed'#11'ParentColor'
+#8#9'PopupMenu'#7#10'PopupMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'
+#2'Q'#24'BookMarkOptions.OnChange'#13#17'Gutter.DigitCount'#2#5#22'Gutter.Sh'
+'owLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#15'Gutter.OnChange'#13#23'Gut'
+'ter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'
+#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0
+#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0
+#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'
+#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0
+#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1
+#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1
+#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1
+#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7
+'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7
+'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'C'
+'ommand'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7
+'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'C'
+'ommand'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7
+'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'C'
+'ommand'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7
+'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0
+#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2
,'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCu'
+'t'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'S'
+'hortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'
+#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7
+'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'
+#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3
+'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'Short'
+'Cut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8
+'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251
+#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'
+#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Comm'
+'and'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7
+'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0
+#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5'
+'@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'
+#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'Short'
+'Cut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8
+'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'
+#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3
+'d'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Comman'
+'d'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'C'
+'ommand'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0
+#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3
+'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'
+#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#22'Select'
+'edColor.OnChange'#13#0#0#0#9'TTabSheet'#8'tsBinder'#7'Caption'#6#7'&Binder'
+#0#8'TSynEdit'#9'srcBinder'#6'Height'#3'='#2#5'Width'#3#245#1#5'Align'#7#8'a'
+'lClient'#12'Font.CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7#7'clBlack'#11
+'Font.Height'#2#236#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7#7'fpFixed'#11
+'ParentColor'#8#9'PopupMenu'#7#10'PopupMenu2'#8'TabOrder'#2#0#23'BookMarkOpt'
+'ions.Xoffset'#2'Q'#24'BookMarkOptions.OnChange'#13#15'Gutter.AutoSize'#9#17
+'Gutter.DigitCount'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFoldi'
+'ng'#9#15'Gutter.OnChange'#13#23'Gutter.CodeFoldingWidth'#2#14#11'Highlighte'
+'r'#7#10'SynPasSyn1'#10'Keystrokes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1
+#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0
+#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1
+#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1
+#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7
+'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8'ShortCut'#2''''#0#1#7
+'Command'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7
+'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7
+'Command'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2#14#8'ShortCut'#3'"@'#0#1#7
+'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2#9#8'ShortCut'#2'!'#0#1#7'C'
+'ommand'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13#8'ShortCut'#3'!@'#0#1#7
+'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8'ShortCut'#2'$'#0#1#7'C'
+'ommand'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8'ShortCut'#3'$@'#0#1#7
+'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8'ShortCut'#2'#'#0#1#7'C'
+'ommand'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8'ShortCut'#3'#@'#0#1#7
+'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0#8'ShortCut'#2'-'#0#1
+#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'- '
+#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3
+'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Command'#3#245#1#8'ShortCu'
+'t'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8
+'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'C'
+'ommand'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3#199#0#8'ShortCut'#3'A@'#0
+#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Command'#3'b'#2#8'ShortCut'#3
+'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7'Command'#3#254#1#8'Short'
+'Cut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@'#0#1#7'Command'#3'c'#2#8
+'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'V@'#0#1#7'Command'#3'['
+#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortCut'#3'Y@'#0#1#7'Command'
+#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Com'
+'mand'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-'#1#8'ShortCut'#3'0@'#0#1#7
+'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3'/'#1#8'ShortCut'#3'2@'#0
+#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Command'#3'1'#1#8'ShortCut'#3'4'
,'@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'Command'#3'3'#1#8'ShortCut'
+#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1#7'Command'#3'5'#1#8'Short'
+'Cut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'Command'#3'_'#1#8
+'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3'1`'#0#1#7'Command'#3'a'
+#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCut'#3'3`'#0#1#7'Command'#3
+'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'ShortCut'#3'5`'#0#1#7'Comman'
+'d'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'C'
+'ommand'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3'h'#1#8'ShortCut'#3'9`'#0#1
+#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Command'#3#232#0#8'ShortCut'#3'C'
+'`'#0#1#7'Command'#3#233#0#8'ShortCut'#3'L`'#0#1#7'Command'#3'd'#2#8'ShortCu'
+'t'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1#7'Command'#3#250#0#8'Sh'
+'ortCut'#3'B`'#0#0#8'ReadOnly'#9#22'SelectedColor.OnChange'#13#0#0#0#9'TTabS'
+'heet'#5'tsLog'#7'Caption'#6#4'&Log'#0#5'TMemo'#6'mmoLog'#6'Height'#3'='#2#5
+'Width'#3#245#1#5'Align'#7#8'alClient'#13'Lines.Strings'#1#6#0#0#10'ScrollBa'
+'rs'#7#6'ssBoth'#8'TabOrder'#2#0#0#0#0#0#12'TPageControl'#7'PCInfos'#4'Left'
+#2#1#6'Height'#3#128#0#3'Top'#3#216#1#5'Width'#3#253#1#10'ActivePage'#7#15't'
+'sDocumentation'#5'Align'#7#8'alBottom'#8'TabIndex'#2#0#8'TabOrder'#2#1#0#9
+'TTabSheet'#15'tsDocumentation'#7'Caption'#6#13'Documentation'#12'ClientHeig'
+'ht'#2'f'#11'ClientWidth'#3#245#1#0#5'TMemo'#16'edtDocumentation'#6'Height'#2
+'f'#5'Width'#3#245#1#5'Align'#7#8'alClient'#5'Color'#7#8'clSilver'#8'ReadOnl'
+'y'#9#10'ScrollBars'#7#10'ssAutoBoth'#8'TabOrder'#2#0#8'WordWrap'#8#0#0#0#9
+'TTabSheet'#5'tsXSD'#7'Caption'#6#29'XML Schema Definition ( XSD )'#12'Clien'
+'tHeight'#2'f'#11'ClientWidth'#3#245#1#0#8'TSynEdit'#6'edtXSD'#6'Height'#2'f'
+#5'Width'#3#245#1#5'Align'#7#8'alClient'#5'Color'#7#8'clSilver'#11'Font.Heig'
+'ht'#2#240#9'Font.Name'#6#7'courier'#11'ParentColor'#8#8'TabOrder'#2#0#23'Bo'
+'okMarkOptions.Xoffset'#2#238#24'BookMarkOptions.OnChange'#13#14'Gutter.Visi'
+'ble'#8#15'Gutter.OnChange'#13#23'Gutter.CodeFoldingWidth'#2#14#11'Highlight'
+'er'#7#10'SynXMLSyn1'#10'Keystrokes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1
+#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0
+#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1
+#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1
+#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7
+'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8'ShortCut'#2''''#0#1#7
+'Command'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7
+'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7
+'Command'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2#14#8'ShortCut'#3'"@'#0#1#7
+'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2#9#8'ShortCut'#2'!'#0#1#7'C'
+'ommand'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13#8'ShortCut'#3'!@'#0#1#7
+'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8'ShortCut'#2'$'#0#1#7'C'
+'ommand'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8'ShortCut'#3'$@'#0#1#7
+'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8'ShortCut'#2'#'#0#1#7'C'
+'ommand'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8'ShortCut'#3'#@'#0#1#7
+'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0#8'ShortCut'#2'-'#0#1
+#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'- '
+#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3
+'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Command'#3#245#1#8'ShortCu'
+'t'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8
+'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'C'
+'ommand'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3#199#0#8'ShortCut'#3'A@'#0
+#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Command'#3'b'#2#8'ShortCut'#3
+'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7'Command'#3#254#1#8'Short'
+'Cut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@'#0#1#7'Command'#3'c'#2#8
+'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'V@'#0#1#7'Command'#3'['
+#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortCut'#3'Y@'#0#1#7'Command'
+#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Com'
+'mand'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-'#1#8'ShortCut'#3'0@'#0#1#7
+'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3'/'#1#8'ShortCut'#3'2@'#0
+#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Command'#3'1'#1#8'ShortCut'#3'4'
+'@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'Command'#3'3'#1#8'ShortCut'
+#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1#7'Command'#3'5'#1#8'Short'
+'Cut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'Command'#3'_'#1#8
+'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3'1`'#0#1#7'Command'#3'a'
+#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCut'#3'3`'#0#1#7'Command'#3
+'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'ShortCut'#3'5`'#0#1#7'Comman'
,'d'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'C'
+'ommand'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3'h'#1#8'ShortCut'#3'9`'#0#1
+#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Command'#3#232#0#8'ShortCut'#3'C'
+'`'#0#1#7'Command'#3#233#0#8'ShortCut'#3'L`'#0#1#7'Command'#3'd'#2#8'ShortCu'
+'t'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1#7'Command'#3#250#0#8'Sh'
+'ortCut'#3'B`'#0#0#8'ReadOnly'#9#22'SelectedColor.OnChange'#13#0#0#0#9'TTabS'
+'heet'#14'tsDependencies'#7'Caption'#6#7'Used by'#12'ClientHeight'#2'f'#11'C'
+'lientWidth'#3#245#1#0#9'TTreeView'#12'tvDependency'#6'Height'#2'f'#5'Width'
+#3#245#1#5'Align'#7#8'alClient'#15'BackgroundColor'#7#8'clSilver'#17'Default'
+'ItemHeight'#2#15#8'ReadOnly'#9#16'RightClickSelect'#9#8'TabOrder'#2#0#7'Opt'
+'ions'#11#17'tvoAutoItemHeight'#16'tvoHideSelection'#21'tvoKeepCollapsedNode'
+'s'#11'tvoReadOnly'#19'tvoRightClickSelect'#14'tvoShowButtons'#12'tvoShowLin'
+'es'#11'tvoShowRoot'#11'tvoToolTips'#0#0#0#0#0#9'TSplitter'#9'Splitter2'#6'C'
+'ursor'#7#8'crVSplit'#4'Left'#2#1#6'Height'#2#8#3'Top'#3#208#1#5'Width'#3#253
+#1#5'Align'#7#8'alBottom'#5'Color'#7#7'clBlack'#11'ParentColor'#8#12'ResizeA'
+'nchor'#7#8'akBottom'#0#0#0#9'TSplitter'#9'Splitter1'#4'Left'#3':'#1#6'Heigh'
+'t'#3'Y'#2#5'Width'#2#8#5'Color'#7#7'clBlack'#11'ParentColor'#8#0#0#9'TMainM'
+'enu'#9'MainMenu1'#4'left'#3'`'#1#3'top'#2'p'#0#9'TMenuItem'#9'MenuItem1'#7
+'Caption'#6#6'&Files'#0#9'TMenuItem'#10'MenuItem16'#6'Action'#7#10'actNewFil'
+'e'#7'OnClick'#7#17'actNewFileExecute'#0#0#9'TMenuItem'#9'MenuItem2'#7'Capti'
+'on'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem5'#6'Action'#7#11'actOpenFile'#7'OnCl'
+'ick'#7#18'actOpenFileExecute'#0#0#9'TMenuItem'#9'MenuItem3'#6'Action'#7#9'a'
+'ctExport'#7'OnClick'#7#16'actExportExecute'#0#0#9'TMenuItem'#9'MenuItem7'#6
+'Action'#7#7'actSave'#7'OnClick'#7#14'actSaveExecute'#0#0#9'TMenuItem'#10'Me'
+'nuItem32'#6'Action'#7#9'actSaveAs'#7'OnClick'#7#16'actSaveAsExecute'#0#0#9
+'TMenuItem'#10'MenuItem17'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem4'#6
+'Action'#7#7'actExit'#7'OnClick'#7#14'actExitExecute'#0#0#0#9'TMenuItem'#10
+'MenuItem14'#7'Caption'#6#5'&View'#0#9'TMenuItem'#10'MenuItem15'#6'Action'#7
@ -317,11 +385,11 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+'nUpdate'#7#21'actUpdateObjectUpdate'#0#0#7'TAction'#14'actRefreshView'#7'Ca'
+'ption'#6#14'&Refresh Views'#18'DisableIfNoHandler'#9#9'OnExecute'#7#21'actR'
+'efreshViewExecute'#8'ShortCut'#2't'#0#0#7'TAction'#10'actNewFile'#7'Caption'
+#6#8'New File'#18'DisableIfNoHandler'#9#9'OnExecute'#7#17'actNewFileExecute'
,#6#8'New File'#18'DisableIfNoHandler'#9#9'OnExecute'#7#17'actNewFileExecute'
+#8'ShortCut'#3'N@'#0#0#7'TAction'#17'actCompoundCreate'#7'Caption'#6#17'Crea'
+'te Class Type'#18'DisableIfNoHandler'#9#9'OnExecute'#7#24'actCompoundCreate'
+'Execute'#0#0#7'TAction'#13'actIntfCreate'#7'Caption'#6#16'Create Interface'
,#18'DisableIfNoHandler'#9#9'OnExecute'#7#20'actIntfCreateExecute'#0#0#7'TAct'
+#18'DisableIfNoHandler'#9#9'OnExecute'#7#20'actIntfCreateExecute'#0#0#7'TAct'
+'ion'#13'actFullExpand'#7'Caption'#6#11'Full expand'#18'DisableIfNoHandler'#9
+#9'OnExecute'#7#20'actFullExpandExecute'#0#0#7'TAction'#15'actFullCollapse'#7
+'Caption'#6#13'Full Collapse'#18'DisableIfNoHandler'#9#9'OnExecute'#7#22'act'
@ -381,11 +449,11 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+'tRecordCreate'#7'OnClick'#7#22'actRecordCreateExecute'#0#0#9'TMenuItem'#10
+'MenuItem44'#6'Action'#7#13'actEnumCreate'#7'OnClick'#7#20'actEnumCreateExec'
+'ute'#0#0#9'TMenuItem'#10'MenuItem43'#6'Action'#7#13'actIntfCreate'#7'OnClic'
+'k'#7#20'actIntfCreateExecute'#0#0#9'TMenuItem'#10'MenuItem42'#6'Action'#7#18
,'k'#7#20'actIntfCreateExecute'#0#0#9'TMenuItem'#10'MenuItem42'#6'Action'#7#18
+'actTypeALiasCreate'#7'OnClick'#7#25'actTypeALiasCreateExecute'#0#0#0#10'TSy'
+'nXMLSyn'#10'SynXMLSyn1'#13'DefaultFilter'#6#30'Documents WSDL (*.wsdl)|*.ws'
+'dl'#7'Enabled'#8#23'ElementAttri.Foreground'#7#6'clNavy'#30'AttributeValueA'
,'ttri.Foreground'#7#8'clPurple'#16'WantBracesParsed'#8#4'left'#3#210#1#3'top'
+'ttri.Foreground'#7#8'clPurple'#16'WantBracesParsed'#8#4'left'#3#210#1#3'top'
+#3#252#0#0#0#11'TFindDialog'#2'FD'#6'OnShow'#7#6'FDShow'#5'Title'#6#6'Search'
+#6'OnFind'#7#6'FDFind'#4'left'#3'@'#2#3'top'#3#143#0#0#0#0
]);

View File

@ -18,7 +18,7 @@ interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ComCtrls,
ExtCtrls, Menus, ActnList,
ExtCtrls, Menus, ActnList, Contnrs,
pastree, pascal_parser_intf, logger_intf,
SynHighlighterPas, SynEdit, StdCtrls, SynHighlighterXML
{$IFDEF WST_IDE},ProjectIntf{$ENDIF};
@ -53,6 +53,7 @@ type
AL: TActionList;
FD : TFindDialog;
MainMenu1: TMainMenu;
edtDocumentation : TMemo;
MenuItem10: TMenuItem;
MenuItem11: TMenuItem;
MenuItem12: TMenuItem;
@ -107,6 +108,7 @@ type
MenuItem3: TMenuItem;
MenuItem4: TMenuItem;
OD: TOpenDialog;
PCInfos : TPageControl;
PC: TPageControl;
Panel1: TPanel;
Panel2: TPanel;
@ -114,14 +116,20 @@ type
PopupMenu2: TPopupMenu;
SD: TSaveDialog;
Splitter1: TSplitter;
Splitter2 : TSplitter;
srcInterface: TSynEdit;
SB: TStatusBar;
srcImp: TSynEdit;
srcBinder: TSynEdit;
srcProxy: TSynEdit;
srcWSDL: TSynEdit;
edtXSD : TSynEdit;
SynPasSyn1: TSynPasSyn;
SynXMLSyn1: TSynXMLSyn;
tvDependency : TTreeView;
tsDependencies : TTabSheet;
tsXSD : TTabSheet;
tsDocumentation : TTabSheet;
tsWSDL: TTabSheet;
tsLog: TTabSheet;
tsImp: TTabSheet;
@ -157,13 +165,17 @@ type
procedure FDShow(Sender : TObject);
procedure FormClose (Sender : TObject; var CloseAction : TCloseAction );
procedure FormShow(Sender: TObject);
procedure trvSchemaSelectionChanged(Sender : TObject);
private
FSymbolTable : TwstPasTreeContainer;
FStatusMessageTag : PtrInt;
FCurrentFileName : string;
{$IFDEF WST_IDE}FProjectLibrary : TLazProjectFile;{$ENDIF}
{$IFDEF WST_IDE}
FProjectLibrary : TLazProjectFile;
{$ENDIF}
FSearchArea : TSearchArea;
FFoundNode : TTreeNode;
FDependencyList : TObjectList;
private
function FindCurrentEditor() : TSynEdit;
function Search(const AText : string) : Boolean;
@ -177,6 +189,9 @@ type
procedure RenderSymbols();
procedure RenderSources();
procedure RenderWSDL();
procedure ShowDocumentation();
procedure ShowSourceXSD();
procedure ShowDependencies();
procedure OpenFile(const AFileName : string; const AContent : TStream = nil);
procedure SaveToFile(const AFileName : string);
public
@ -188,11 +203,13 @@ var
fWstTypeLibraryEdit: TfWstTypeLibraryEdit;
implementation
uses view_helper, DOM, XMLRead, XMLWrite, //HeapTrc,
uses
view_helper, DOM, XMLRead, XMLWrite, //HeapTrc,
xsd_parser, wsdl_parser, source_utils, command_line_parser, generator, metadata_generator,
binary_streamer, wst_resources_utils, xsd_generator, wsdl_generator,
uabout, edit_helper, udm, ufrmsaveoption, pparser, SynEditTypes
{$IFDEF WST_IDE},LazIDEIntf,IDEMsgIntf{$ENDIF};
{$IFDEF WST_IDE},LazIDEIntf,IDEMsgIntf{$ENDIF}
, xsd_consts, parserutils;
{$IFDEF WST_IDE}
@ -213,11 +230,9 @@ end;
const
DEF_FILE_NAME = 'library1';
sWST_META = 'wst_meta';
type
TSourceType = cloInterface .. cloBinder;
TSourceTypes = set of TSourceType;
TSourceOptions = set of TComandLineOption;
function ParsePascalFile(
const AFileName : string;
@ -317,7 +332,7 @@ end;
type TOutputType = ( otMemory, otFileSystem );
function GenerateSource(
ASymbolTable : TwstPasTreeContainer;
AOptions : TSourceTypes;
AOptions : TSourceOptions;
const AOutputType : TOutputType;
const AOutPath : string;
const ANotifier : TOnParserMessage
@ -346,6 +361,8 @@ begin
if ( cloInterface in AOptions ) then begin
Notify('Interface file generation...');
g := TInftGenerator.Create(ASymbolTable,Result);
if ( cloGenerateDocAsComments in AOptions ) then
g.Options := g.Options + [goGenerateDocAsComments];
g.Execute();
FreeAndNil(g);
end;
@ -376,7 +393,7 @@ begin
mtdaFS := TMemoryStream.Create();
mg := TMetadataGenerator.Create(ASymbolTable,CreateBinaryWriter(mtdaFS));
mg.Execute();
mtdaFS.SaveToFile(AOutPath + Format('%s.%s',[ASymbolTable.CurrentModule.Name,sWST_META]));
//mtdaFS.SaveToFile(AOutPath + Format('%s.%s',[ASymbolTable.CurrentModule.Name,sWST_META]));
rsrcStrm := TMemoryStream.Create();
mtdaFS.Position := 0;
BinToWstRessource(UpperCase(ASymbolTable.CurrentModule.Name),mtdaFS,rsrcStrm);
@ -596,6 +613,13 @@ begin
RenderSymbols();
end;
procedure TfWstTypeLibraryEdit.trvSchemaSelectionChanged(Sender : TObject);
begin
ShowDocumentation();
ShowSourceXSD();
ShowDependencies();
end;
function TfWstTypeLibraryEdit.FindCurrentEditor() : TSynEdit;
var
edt : TSynEdit;
@ -770,6 +794,8 @@ begin
Include(saveOpts,cloProxy);
if f.edtWrappedParams.Checked then
Include(saveOpts,cloHandleWrappedParameters);
if f.edtDocAsComments.Checked then
Include(saveOpts,cloGenerateDocAsComments);
curLok := SetCursorHourGlass();
GenerateSource(
@ -878,7 +904,7 @@ var
begin
if Assigned(FSymbolTable) then begin
if ( FSymbolTable.CurrentModule.InterfaceSection.Declarations.Count > 0 ) then begin
srcMngr := GenerateSource(FSymbolTable,[cloInterface,cloProxy,cloBinder,cloImp],otMemory,'',@ShowStatusMessage);
srcMngr := GenerateSource(FSymbolTable,[cloInterface,cloProxy,cloBinder,cloImp,cloGenerateDocAsComments],otMemory,'',@ShowStatusMessage);
if Assigned(srcMngr) and ( srcMngr.GetCount() > 0 ) then begin
LoadText(srcInterface.Lines,srcMngr.GetItem(0));
LoadText(srcProxy.Lines,srcMngr.GetItem(1));
@ -909,6 +935,64 @@ begin
end;
end;
procedure TfWstTypeLibraryEdit.ShowDocumentation();
var
docString : string;
props : TStrings;
elt : TPasElement;
begin
docString := '';
if ( trvSchema.Selected <> nil ) and
( trvSchema.Selected.Data <> nil ) and
TObject(trvSchema.Selected.Data).InheritsFrom(TPasElement)
then begin
elt := TPasElement(trvSchema.Selected.Data);
props := FSymbolTable.Properties.FindList(elt);
if ( props <> nil ) then
docString :=
StringReplace(DecodeLineBreak(props.Values[s_documentation]),#10,sLineBreak,[rfReplaceAll]);
if IsStrEmpty(docString) then
docString := '< No documentation available for this item. >';
docString := Format('%s : %s%s',[FSymbolTable.GetExternalName(elt),sLineBreak,docString]);
end;
edtDocumentation.Lines.Text := docString;
end;
procedure TfWstTypeLibraryEdit.ShowSourceXSD();
var
docString : string;
elt : TPasElement;
begin
docString := '';
if ( trvSchema.Selected <> nil ) and
( trvSchema.Selected.Data <> nil ) and
TObject(trvSchema.Selected.Data).InheritsFrom(TPasType)
then begin
elt := TPasElement(trvSchema.Selected.Data);
docString := XsdGenerateSourceForObject(elt,FSymbolTable);
end;
edtXSD.Lines.Text := docString;
end;
procedure TfWstTypeLibraryEdit.ShowDependencies();
var
elt : TPasType;
begin
if ( csDestroying in Self.ComponentState ) then
Exit;
if ( FDependencyList = nil ) then
FDependencyList := TObjectList.Create(True);
FDependencyList.Clear();
if ( trvSchema.Selected <> nil ) and
( trvSchema.Selected.Data <> nil ) and
TObject(trvSchema.Selected.Data).InheritsFrom(TPasType)
then begin
elt := TPasType(trvSchema.Selected.Data);
FindDependencies(elt,FSymbolTable,FDependencyList);
end;
DrawDependencies(tvDependency,FDependencyList);
end;
procedure TfWstTypeLibraryEdit.OpenFile (const AFileName : string; const AContent : TStream);
var
tmpTable : TwstPasTreeContainer;
@ -969,6 +1053,7 @@ end;
destructor TfWstTypeLibraryEdit.Destroy();
begin
FDependencyList.Free();
trvSchema.Items.Clear();
FreeAndNil(FSymbolTable);
inherited Destroy();

View File

@ -333,6 +333,8 @@ begin
ScanClassType(TPasClassType(e));
end else if e.InheritsFrom(TPasRecordType) then begin
ScanRecordType(TPasRecordType(e));
end else if e.InheritsFrom(TPasArrayType) then begin
ScanArrayType(TPasArrayType(e));
end;
end;
end;

View File

@ -28,7 +28,8 @@ Type
TComandLineOption = (
cloInterface, cloProxy, cloImp, cloBinder, cloWsdl, cloXsd,
cloOutPutDirRelative, cloOutPutDirAbsolute, cloHandleWrappedParameters
cloOutPutDirRelative, cloOutPutDirAbsolute, cloHandleWrappedParameters,
cloGenerateDocAsComments
);
TComandLineOptions = set of TComandLineOption;
@ -76,6 +77,7 @@ begin
'w' : Include(AAppOptions,cloWsdl);
'x' : Include(AAppOptions,cloXsd);
'y' : Include(AAppOptions,cloHandleWrappedParameters);
'd' : Include(AAppOptions,cloGenerateDocAsComments);
end;
until ( c = EndOfOptions );
Result := OptInd;

View File

@ -32,7 +32,10 @@ const
type
TGeneratorOption = ( goDocumentWrappedParameter );
TGeneratorOption = (
goDocumentWrappedParameter { .Net style wrapped parameters },
goGenerateDocAsComments { Documentation include in the XSD/WSDL schema will be generated as comments }
);
TGeneratorOptions = set of TGeneratorOption;
{ TBaseGenerator }
@ -154,6 +157,8 @@ type
FImpLastStream : ISourceStream;
FRttiFunc : ISourceStream;
private
procedure WriteDocumetation(AElement : TPasElement);
procedure WriteDocIfEnabled(AElement : TPasElement);{$IFDEF USE_INLINE}inline;{$ENDIF}
// Array handling helper routines
procedure WriteObjectArray(ASymbol : TPasArrayType);
procedure WriteSimpleTypeArray(ASymbol : TPasArrayType);
@ -202,6 +207,7 @@ Const sPROXY_BASE_CLASS = 'TBaseProxy';
sINPUT_PARAM = 'inputParam';
sOUTPUT_PARAM = 'outputParam';
sTEMP_OBJ = 'tmpObj';
sDOCUMENTATION = 'documentation';
function DeduceEasyInterfaceForDocStyle(
@ -1761,10 +1767,37 @@ end;
{ TInftGenerator }
procedure TInftGenerator.WriteDocumetation(AElement : TPasElement);
var
pl : TStrings;
docString : string;
i : PtrInt;
begin
pl := FSymbolTable.Properties.FindList(AElement);
if ( pl <> nil ) then begin
i := pl.IndexOfName(sDOCUMENTATION);
if ( i >= 0 ) then begin
docString:= StringReplace(DecodeLineBreak(pl.ValueFromIndex[i]),#10,sLineBreak,[rfReplaceAll]);
if not IsStrEmpty(docString) then begin
WriteLn('{ %s',[AElement.Name]);
WriteLn(docString);
WriteLn('}');
end;
end;
end;
end;
procedure TInftGenerator.WriteDocIfEnabled(AElement : TPasElement);
begin
if ( goGenerateDocAsComments in Options ) then
WriteDocumetation(AElement);
end;
procedure TInftGenerator.WriteObjectArray(ASymbol : TPasArrayType);
begin
SetCurrentStream(FDecStream);
NewLine();
WriteDocIfEnabled(ASymbol);
IncIndent();
BeginAutoIndent();
try
@ -1805,6 +1838,7 @@ procedure TInftGenerator.WriteSimpleTypeArray(ASymbol : TPasArrayType);
begin
SetCurrentStream(FDecStream);
NewLine();
WriteDocIfEnabled(ASymbol);
IncIndent();
BeginAutoIndent();
try
@ -1931,6 +1965,7 @@ procedure TInftGenerator.WriteObjectCollection(ASymbol : TPasArrayType);
begin
SetCurrentStream(FDecStream);
NewLine();
WriteDocIfEnabled(ASymbol);
IncIndent();
BeginAutoIndent();
try
@ -1987,7 +2022,7 @@ end;
function TInftGenerator.GenerateIntfName(AIntf: TPasElement): string;
begin
Result := ExtractserviceName(AIntf);
Result := AIntf.Name;//ExtractserviceName(AIntf);
end;
procedure TInftGenerator.GenerateUnitHeader();
@ -2124,6 +2159,7 @@ var
begin
try
SetCurrentStream(FDecStream);
WriteDocIfEnabled(ASymbol);
if ASymbol.InheritsFrom(TPasTypeAliasType) then begin
typeModifier := 'type ';
end else begin
@ -2408,6 +2444,7 @@ begin
try
SetCurrentStream(FDecStream);
NewLine();
WriteDocIfEnabled(ASymbol);
IncIndent();
WriteDec();
WriteProperties();
@ -2438,6 +2475,7 @@ begin
try
SetCurrentStream(FDecStream);
NewLine();
WriteDocIfEnabled(ASymbol);
IncIndent();
Indent();WriteLn('%s = ( ',[ASymbol.Name]);
@ -2517,6 +2555,7 @@ var
begin
SetCurrentStream(FDecStream);
NewLine();
WriteDocIfEnabled(ASymbol);
IncIndent();
Indent(); WriteLn('%s = record',[ASymbol.Name]);
IncIndent();

View File

@ -35,6 +35,10 @@ const
function IsStrEmpty(Const AStr : String):Boolean;
function ExtractIdentifier(const AValue : string) : string ;
{$IFDEF WST_HANDLE_DOC}
function EncodeLineBreak(const AInStr : string) : string;
function DecodeLineBreak(const AInStr : string) : string;
{$ENDIF}
function IsReservedKeyWord(const AValue : string):Boolean ;
@ -131,6 +135,78 @@ begin
end;
end;
{$IFDEF WST_HANDLE_DOC}
const
REPLACE_CHAR_A = '#'; TARGET_SEQUENCE_A = sLineBreak;
REPLACE_CHAR_B = '|'; TARGET_SEQUENCE_B = #10;
function EncodeLineBreak(const AInStr : string) : string;
begin
Result :=
StringReplace(
StringReplace(AInStr,REPLACE_CHAR_A,(REPLACE_CHAR_A + REPLACE_CHAR_A),[rfReplaceAll]),
TARGET_SEQUENCE_A,REPLACE_CHAR_A,[rfIgnoreCase,rfReplaceAll]
);
Result :=
StringReplace(
StringReplace(Result,REPLACE_CHAR_B,(REPLACE_CHAR_B + REPLACE_CHAR_B),[rfReplaceAll]),
TARGET_SEQUENCE_B,REPLACE_CHAR_B,[rfIgnoreCase,rfReplaceAll]
);
end;
function DecodeLineBreak(const AInStr : string) : string;
var
i, c : PtrInt;
pc : PChar;
tmp, res : string;
begin
res := '';
pc := PChar(AInStr);
i := 1;
c := Length(AInStr);
while ( i <= c ) do begin
if ( pc^ = REPLACE_CHAR_B ) then begin
if ( i < c ) then begin
Inc(pc); Inc(i);
if ( pc^ = REPLACE_CHAR_B ) then
res := res + REPLACE_CHAR_B
else
res := res + TARGET_SEQUENCE_B + pc^;
end else begin
res := res + TARGET_SEQUENCE_B;
end;
end else begin
res := res + pc^;
end;
Inc(pc); Inc(i);
end;
tmp := res;
res := '';
pc := PChar(tmp);
i := 1;
c := Length(tmp);
while ( i <= c ) do begin
if ( pc^ = REPLACE_CHAR_A ) then begin
if ( i < c ) then begin
Inc(pc); Inc(i);
if ( pc^ = REPLACE_CHAR_A ) then
res := res + REPLACE_CHAR_A
else
res := res + TARGET_SEQUENCE_A + pc^;
end else begin
res := res + TARGET_SEQUENCE_A;
end;
end else begin
res := res + pc^;
end;
Inc(pc); Inc(i);
end;
Result := res;
end;
{$ENDIF WST_HANDLE_DOC}
function ExtractNameFromQName(const AQName : string):string ;
var
i : Integer;

View File

@ -155,7 +155,7 @@
</Linking>
<Other>
<CustomOptions Value="-Xi
-dWST_HANDLE_DOC
"/>
<CompilerPath Value="$(CompPath)"/>
</Other>

View File

@ -1,20 +1,18 @@
resourcestring
sUSAGE = 'ws_helper [-uMODE] [-p] [-b] [-i] [-oPATH] [-aPATH] [-w] inputFilename' + sNEW_LINE +
sUSAGE = 'ws_helper [-uMODE] [-p] [-b] [-i] [-w] [-x] [-y] [-d] [-oPATH] [-aPATH] inputFilename' + sNEW_LINE +
' -u MODE Generate the pascal translation of the WSDL input file ' + sNEW_LINE +
' MODE value may be U for used types or A for all types' + sNEW_LINE +
' -p Generate service proxy' + sNEW_LINE +
' -b Generate service binder' + sNEW_LINE +
' -i Generate service minimal implementation' + sNEW_LINE +
' -i Generate service minimal implementation. This will erase any existing implementation file!' + sNEW_LINE +
' -o PATH Relative output directory' + sNEW_LINE +
' -a PATH Absolute output directory' + sNEW_LINE +
' -w Generate WSDL file; Can be used to get wsdl from pascal' + sNEW_LINE +
' -x Generate XSD file; Can be used to get xsd from pascal' + sNEW_LINE +
' -y Generate easy access interface for wrapped parameters' + sNEW_LINE;
sCOPYRIGHT = 'ws_helper, Web Service Toolkit 0.5 Copyright (c) 2006, 2008 by Inoussa OUEDRAOGO';
const
sWST_META = 'wst_meta';
' -y Generate easy access interface for wrapped parameters' + sNEW_LINE +
' -d Generate documentation as comment in the interface file.';
sCOPYRIGHT = 'ws_helper, Web Service Toolkit 0.6 Copyright (c) 2006, 2007, 2008 by Inoussa OUEDRAOGO';
type
TSourceFileType = ( sftPascal, sftWSDL, sftXsd );
@ -223,7 +221,7 @@ var
mtdaFS := TMemoryStream.Create();
mg := TMetadataGenerator.Create(symtable,CreateBinaryWriter(mtdaFS));
mg.Execute();
mtdaFS.SaveToFile(ChangeFileExt(inFileName,'.' + sWST_META));
//mtdaFS.SaveToFile(ChangeFileExt(inFileName,'.' + sWST_META));
rsrcStrm := TMemoryStream.Create();
mtdaFS.Position := 0;
BinToWstRessource(UpperCase(symtable.CurrentModule.Name),mtdaFS,rsrcStrm);

View File

@ -45,6 +45,9 @@ type
const ASpaceType : TNameSpaceValueType
) : TPasElement;
function FindElement(const ALocalName : string) : TPasElement; {$IFDEF USE_INLINE}inline;{$ENDIF}
{$IFDEF WST_HANDLE_DOC}
procedure ParseDocumentation(AType : TPasType);
{$ENDIF WST_HANDLE_DOC}
public
constructor Create(
AOwner : IParserContext;
@ -309,6 +312,55 @@ begin
Result := FSymbols.FindElementInModule(ALocalName,Module);
end;
{$IFDEF WST_HANDLE_DOC}
procedure TAbstractTypeParser.ParseDocumentation(AType : TPasType);
var
tmpCursor : IObjectCursor;
props : TStrings;
docString : string;
i : PtrInt;
tempNode : TDOMNode;
begin
if FTypeNode.HasChildNodes() then begin
tmpCursor := CreateCursorOn(
CreateChildrenCursor(FTypeNode,cetRttiNode),
ParseFilter(CreateQualifiedNameFilterStr(s_annotation,FContext.GetXsShortNames()),TDOMNodeRttiExposer)
);
if ( tmpCursor <> nil ) then begin
tmpCursor.Reset();
if tmpCursor.MoveNext() then begin
tmpCursor := CreateCursorOn(
CreateChildrenCursor(TDOMNodeRttiExposer(tmpCursor.GetCurrent()).InnerObject,cetRttiNode),
ParseFilter(CreateQualifiedNameFilterStr(s_documentation,FContext.GetXsShortNames()),TDOMNodeRttiExposer)
);
if ( tmpCursor <> nil ) then begin
tmpCursor.Reset();
if tmpCursor.MoveNext() then begin
tempNode := TDOMNodeRttiExposer(tmpCursor.GetCurrent()).InnerObject.FirstChild;
if ( tempNode <> nil ) then
docString := tempNode.NodeValue
else
docString := '';
props := FSymbols.Properties.FindList(AType);
if IsStrEmpty(docString) then begin
if ( props <> nil ) then begin
i := props.IndexOfName(s_documentation);
if ( i >= 0 ) then
props.Values[s_documentation] := '';
end
end else begin
if ( props = nil ) then
props := FSymbols.Properties.GetList(AType);
props.Values[s_documentation] := EncodeLineBreak(docString);
end;
end;
end;
end;
end;
end;
end;
{$ENDIF WST_HANDLE_DOC}
{ TComplexTypeParser }
function TComplexTypeParser.ExtractElementCursor(out AAttCursor : IObjectCursor) : IObjectCursor;
@ -1174,6 +1226,10 @@ begin
else
Result := ParseSimpleContent(FTypeName);
end;
{$IFDEF WST_HANDLE_DOC}
if ( Result <> nil ) then
ParseDocumentation(Result);
{$ENDIF WST_HANDLE_DOC}
end;
end;
@ -1392,6 +1448,10 @@ begin
FBaseNameSpace := s_xs;
Result := ParseOtherContent();
end;
{$IFDEF WST_HANDLE_DOC}
if ( Result <> nil ) then
ParseDocumentation(Result);
{$ENDIF WST_HANDLE_DOC}
end;
end;

View File

@ -39,6 +39,7 @@ const
s_definitions = 'definitions';
s_default = 'default';
s_document : WideString = 'document';
s_documentation = 'documentation';
s_element : WideString = 'element';
s_enumeration : WideString = 'enumeration';
s_extension : WideString = 'extension';

View File

@ -141,7 +141,7 @@ type
implementation
uses
xsd_consts, Contnrs, StrUtils, wst_types;
xsd_consts, Contnrs, StrUtils, wst_types, parserutils;
type
@ -174,6 +174,13 @@ type
ADocument : TDOMDocument
);override;
class function CanHandle(ASymbol : TObject) : Boolean;override;
{$IFDEF WST_HANDLE_DOC}
procedure GenerateDocumentation(
AContainerNode : TDOMElement;
const ADocString : string;
ADocument : TDOMDocument
);
{$ENDIF WST_HANDLE_DOC}
end;
{ TTypeAliasDefinition_TypeHandler }
@ -437,6 +444,23 @@ begin
Result := Assigned(ASymbol) and ASymbol.InheritsFrom(TPasType);
end;
{$IFDEF WST_HANDLE_DOC}
procedure TTypeDefinition_TypeHandler.GenerateDocumentation(
AContainerNode : TDOMElement;
const ADocString : string;
ADocument : TDOMDocument
);
var
tmpNode : TDOMElement;
begin
if ( Length(Trim(ADocString)) > 0 ) then begin
tmpNode := CreateElement(Format('%s:%s',[s_xs_short,s_annotation]),AContainerNode,ADocument);
tmpNode := CreateElement(Format('%s:%s',[s_xs_short,s_documentation]),tmpNode,ADocument);
tmpNode.AppendChild(ADocument.CreateTextNode(ADocString));
end;
end;
{$ENDIF WST_HANDLE_DOC}
{ TTypeAliasDefinition_TypeHandler }
procedure TTypeAliasDefinition_TypeHandler.Generate(
@ -449,6 +473,10 @@ var
ns_shortName, s : string;
defSchemaNode, resNode : TDOMElement;
unitExternalName, baseUnitExternalName : string;
{$IFDEF WST_HANDLE_DOC}
i : PtrInt;
ls : TStrings;
{$ENDIF WST_HANDLE_DOC}
begin
inherited;
typItm := ASymbol as TPasAliasType;
@ -466,6 +494,15 @@ begin
resNode := CreateElement(s,defSchemaNode,ADocument);
resNode.SetAttribute(s_name, AContainer.GetExternalName(typItm)) ;
{$IFDEF WST_HANDLE_DOC}
ls := AContainer.Properties.FindList(typItm);
if ( ls <> nil ) then begin
i := ls.IndexOfName(s_documentation);
if ( i >= 0 ) then
GenerateDocumentation(resNode,DecodeLineBreak(ls.ValueFromIndex[i]),ADocument);
end;
{$ENDIF WST_HANDLE_DOC}
baseUnitExternalName := GetTypeNameSpace(AContainer,typItm.DestType);
s := GetNameSpaceShortName(baseUnitExternalName,ADocument,GetOwner().GetPreferedShortNames());
s := Format('%s:%s',[s,AContainer.GetExternalName(typItm.DestType)]);
@ -491,6 +528,9 @@ var
defSchemaNode, resNode, restrictNode : TDOMElement;
i, c : Integer;
unitExternalName : string;
{$IFDEF WST_HANDLE_DOC}
ls : TStrings;
{$ENDIF WST_HANDLE_DOC}
begin
typItm := ASymbol as TPasEnumType;
if Assigned(typItm) then begin
@ -506,6 +546,15 @@ begin
s := Format('%s:%s',[s_xs_short,s_simpleType]);
resNode := CreateElement(s,defSchemaNode,ADocument);
resNode.SetAttribute(s_name, AContainer.GetExternalName(typItm)) ;
{$IFDEF WST_HANDLE_DOC}
ls := AContainer.Properties.FindList(typItm);
if ( ls <> nil ) then begin
i := ls.IndexOfName(s_documentation);
if ( i >= 0 ) then
GenerateDocumentation(resNode,DecodeLineBreak(ls.ValueFromIndex[i]),ADocument);
end;
{$ENDIF WST_HANDLE_DOC}
s := Format('%s:%s',[s_xs_short,s_restriction]);
restrictNode := CreateElement(s,resNode,ADocument);
restrictNode.SetAttribute(s_base,Format('%s:%s',[s_xs_short,'string'])) ;
@ -653,6 +702,9 @@ var
typeCategory : TTypeCategory;
hasSequence : Boolean;
trueParent : TPasType;
{$IFDEF WST_HANDLE_DOC}
ls : TStrings;
{$ENDIF WST_HANDLE_DOC}
begin
inherited;
typItm := ASymbol as TPasClassType;
@ -664,11 +716,22 @@ begin
cplxNode := CreateElement(s,defSchemaNode,ADocument);
cplxNode.SetAttribute(s_name, AContainer.GetExternalName(typItm)) ;
{$IFDEF WST_HANDLE_DOC}
ls := AContainer.Properties.FindList(typItm);
if ( ls <> nil ) then begin
i := ls.IndexOfName(s_documentation);
if ( i >= 0 ) then
GenerateDocumentation(cplxNode,DecodeLineBreak(ls.ValueFromIndex[i]),ADocument);
end;
{$ENDIF WST_HANDLE_DOC}
typeCategory := tcComplexContent;
derivationNode := nil;
hasSequence := True;
if Assigned(typItm.AncestorType) then begin
trueParent := typItm.AncestorType;
if trueParent.InheritsFrom(TPasUnresolvedTypeRef) then
trueParent := AContainer.FindElement(AContainer.GetExternalName(trueParent)) as TPasType;
if trueParent.InheritsFrom(TPasNativeClassType) and AnsiSameText('THeaderBlock',trueParent.Name) then begin
DeclareNameSpaceOf_WST(ADocument);
DeclareAttributeOf_WST(cplxNode,s_WST_headerBlock,'true');
@ -739,6 +802,9 @@ var
p : TPasVariable;
hasSequence : Boolean;
storeOption : string;
{$IFDEF WST_HANDLE_DOC}
ls : TStrings;
{$ENDIF WST_HANDLE_DOC}
begin
inherited;
typItm := ASymbol as TPasRecordType;
@ -752,6 +818,14 @@ begin
DeclareNameSpaceOf_WST(ADocument);
DeclareAttributeOf_WST(cplxNode,s_WST_record,'true');
{$IFDEF WST_HANDLE_DOC}
ls := AContainer.Properties.FindList(typItm);
if ( ls <> nil ) then begin
i := ls.IndexOfName(s_documentation);
if ( i >= 0 ) then
GenerateDocumentation(cplxNode,DecodeLineBreak(ls.ValueFromIndex[i]),ADocument);
end;
{$ENDIF WST_HANDLE_DOC}
hasSequence := False;
for i := 0 to Pred(typItm.Members.Count) do begin
@ -839,6 +913,10 @@ var
s, prop_ns_shortName : string;
defSchemaNode, cplxNode, sqcNode, propNode : TDOMElement;
unitExternalName : string;
{$IFDEF WST_HANDLE_DOC}
i : PtrInt;
ls : TStrings;
{$ENDIF WST_HANDLE_DOC}
begin
inherited;
typItm := ASymbol as TPasArrayType;
@ -852,6 +930,14 @@ begin
s := Format('%s:%s',[s_xs_short,s_complexType]);
cplxNode := CreateElement(s,defSchemaNode,ADocument);
cplxNode.SetAttribute(s_name, AContainer.GetExternalName(typItm)) ;
{$IFDEF WST_HANDLE_DOC}
ls := AContainer.Properties.FindList(typItm);
if ( ls <> nil ) then begin
i := ls.IndexOfName(s_documentation);
if ( i >= 0 ) then
GenerateDocumentation(cplxNode,DecodeLineBreak(ls.ValueFromIndex[i]),ADocument);
end;
{$ENDIF WST_HANDLE_DOC}
s := Format('%s:%s',[s_xs_short,s_sequence]);
sqcNode := CreateElement(s,cplxNode,ADocument);

View File

@ -119,7 +119,7 @@ type
end;
implementation
uses ws_parser_imp, dom_cursors, parserutils, StrUtils, xsd_consts
uses ws_parser_imp, dom_cursors, parserutils, xsd_consts
{$IFDEF FPC}
,wst_fpc_xml
{$ENDIF}