diff --git a/wst/trunk/base_service_intf.pas b/wst/trunk/base_service_intf.pas
index 933b35804..c784a2c8e 100644
--- a/wst/trunk/base_service_intf.pas
+++ b/wst/trunk/base_service_intf.pas
@@ -4691,7 +4691,6 @@ begin
end;
if ( ss <> AStore.GetSerializationStyle() ) then
AStore.SetSerializationStyle(ss);
- AStore.SetSerializationStyle(ss);
prpName := typRegItem.GetExternalPropertyName(p^.Name);
recFieldAddress := recStart;
Inc(recFieldAddress,p^.Offset);
@@ -4795,7 +4794,6 @@ begin
end;
if ( ss <> AStore.GetSerializationStyle() ) then
AStore.SetSerializationStyle(ss);
- AStore.SetSerializationStyle(ss);
recFieldAddress := recStart;
Inc(recFieldAddress,p^.Offset);
//try
diff --git a/wst/trunk/doc/WebServiceToolKit.odt b/wst/trunk/doc/WebServiceToolKit.odt
index 3f3c31a9d..0a6291349 100644
Binary files a/wst/trunk/doc/WebServiceToolKit.odt and b/wst/trunk/doc/WebServiceToolKit.odt differ
diff --git a/wst/trunk/samples/delphi/user_client_console/user_client_console.dpr b/wst/trunk/samples/delphi/user_client_console/user_client_console.dpr
index a9d8178dc..6262f1db4 100644
--- a/wst/trunk/samples/delphi/user_client_console/user_client_console.dpr
+++ b/wst/trunk/samples/delphi/user_client_console/user_client_console.dpr
@@ -18,10 +18,6 @@ uses
{$INCLUDE wst.inc}
-type
- TUser = TUser_Type;
- TUserCategory = TUserCategory_Type;
-
var
UserServiceInst : UserService;
diff --git a/wst/trunk/samples/http_server/http_server.lpi b/wst/trunk/samples/http_server/http_server.lpi
index cac463067..048c0d4f7 100644
--- a/wst/trunk/samples/http_server/http_server.lpi
+++ b/wst/trunk/samples/http_server/http_server.lpi
@@ -12,7 +12,7 @@
-
+
@@ -35,7 +35,7 @@
-
+
@@ -58,7 +58,7 @@
-
+
@@ -67,7 +67,7 @@
-
+
@@ -81,18 +81,18 @@
-
-
-
+
+
+
-
-
-
+
+
+
@@ -100,9 +100,9 @@
-
+
-
+
@@ -111,7 +111,7 @@
-
+
@@ -127,7 +127,7 @@
-
+
@@ -339,7 +339,9 @@
+
+
@@ -439,7 +441,7 @@
-
+
@@ -561,11 +563,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
diff --git a/wst/trunk/samples/user_client_console/user_client_console.lpi b/wst/trunk/samples/user_client_console/user_client_console.lpi
index 9f085688f..b2cfee300 100644
--- a/wst/trunk/samples/user_client_console/user_client_console.lpi
+++ b/wst/trunk/samples/user_client_console/user_client_console.lpi
@@ -35,7 +35,7 @@
-
+
@@ -176,7 +176,7 @@
-
+
@@ -355,7 +355,16 @@
-
+
+
+
+
+
+
+
+
+
+
diff --git a/wst/trunk/samples/user_client_console/user_client_console.pas b/wst/trunk/samples/user_client_console/user_client_console.pas
index a1872e60b..1b1dc887c 100644
--- a/wst/trunk/samples/user_client_console/user_client_console.pas
+++ b/wst/trunk/samples/user_client_console/user_client_console.pas
@@ -9,10 +9,6 @@ uses
soap_formatter, binary_formatter,
user_service_intf, xmlrpc_formatter;
-type
- TUser = TUser_Type;
- TUserCategory = TUserCategory_Type;
-
var
UserServiceInst : UserService;
diff --git a/wst/trunk/samples/user_service_intf.pas b/wst/trunk/samples/user_service_intf.pas
index e2049709d..0c015b4ac 100644
--- a/wst/trunk/samples/user_service_intf.pas
+++ b/wst/trunk/samples/user_service_intf.pas
@@ -2,10 +2,15 @@
This unit has been produced by ws_helper.
Input unit name : "user_service_intf".
This unit name : "user_service_intf".
- Date : "14/08/2007 21:45:00".
+ Date : "26/08/2007 01:03:09".
}
unit user_service_intf;
-{$IFDEF FPC} {$mode objfpc}{$H+} {$ENDIF}
+{$IFDEF FPC}
+ {$mode objfpc} {$H+}
+{$ENDIF}
+{$IFNDEF FPC}
+ {$DEFINE WST_RECORD_RTTI}
+{$ENDIF}
interface
uses SysUtils, Classes, TypInfo, base_service_intf, service_intf;
@@ -17,33 +22,33 @@ const
type
TUserArray = class;
- TUser_Type = class;
- TNote_Type = class;
+ TUser = class;
+ TNote = class;
- TUserCategory_Type = (
+ TUserCategory = (
Normal
,Admin
);
- TUser_Type = class(TBaseComplexRemotable)
+ TUser = class(TBaseComplexRemotable)
private
- FCategory : TUserCategory_Type;
+ FCategory : TUserCategory;
FUserName : string;
FeMail : string;
FPreferences : string;
- FNote : TNote_Type;
+ FNote : TNote;
public
constructor Create();override;
destructor Destroy();override;
published
- property Category : TUserCategory_Type read FCategory write FCategory;
+ property Category : TUserCategory read FCategory write FCategory;
property UserName : string read FUserName write FUserName;
property eMail : string read FeMail write FeMail;
property Preferences : string read FPreferences write FPreferences;
- property Note : TNote_Type read FNote write FNote;
+ property Note : TNote read FNote write FNote;
end;
- TNote_Type = class(TBaseComplexRemotable)
+ TNote = class(TBaseComplexRemotable)
private
FHeader : string;
FAuthor : string;
@@ -56,24 +61,24 @@ type
TUserArray = class(TBaseObjectArrayRemotable)
private
- function GetItem(AIndex: Integer): TUser_Type;
+ function GetItem(AIndex: Integer): TUser;
public
class function GetItemClass():TBaseRemotableClass;override;
- property Item[AIndex:Integer] : TUser_Type Read GetItem;Default;
+ property Item[AIndex:Integer] : TUser Read GetItem;Default;
end;
UserService = interface(IInvokable)
['{F49D8FA4-9BBC-4321-9869-5BA745070ABC}']
function GetList():TUserArray;
procedure Add(
- const AUser : TUser_Type
+ const AUser : TUser
);
procedure Update(
- const AUser : TUser_Type
+ const AUser : TUser
);
function Find(
const AName : string
- ):TUser_Type;
+ ):TUser;
function Delete(
const AName : string
):boolean;
@@ -82,17 +87,17 @@ type
procedure Register_user_service_intf_ServiceMetadata();
Implementation
-uses metadata_repository;
+uses metadata_repository, record_rtti, wst_types;
-{ TUser_Type }
+{ TUser }
-constructor TUser_Type.Create();
+constructor TUser.Create();
begin
inherited Create();
- FNote := TNote_Type.Create();
+ FNote := TNote.Create();
end;
-destructor TUser_Type.Destroy();
+destructor TUser.Destroy();
begin
if Assigned(FNote) then
FreeAndNil(FNote);
@@ -101,14 +106,14 @@ end;
{ TUserArray }
-function TUserArray.GetItem(AIndex: Integer): TUser_Type;
+function TUserArray.GetItem(AIndex: Integer): TUser;
begin
- Result := Inherited GetItem(AIndex) As TUser_Type;
+ Result := Inherited GetItem(AIndex) As TUser;
end;
class function TUserArray.GetItemClass(): TBaseRemotableClass;
begin
- Result:= TUser_Type;
+ Result:= TUser;
end;
@@ -274,11 +279,12 @@ end;
initialization
- GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(TUserCategory_Type),'TUserCategory');
- GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(TUser_Type),'TUser');
- GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(TNote_Type),'TNote');
+ GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(TUserCategory),'TUserCategory');
+ GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(TUser),'TUser');
+ GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(TNote),'TNote');
GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(TUserArray),'TUserArray');
GetTypeRegistry().ItemByTypeInfo[TypeInfo(TUserArray)].RegisterExternalPropertyName(sARRAY_ITEM,'item');
+
End.
diff --git a/wst/trunk/samples/user_service_intf_binder.pas b/wst/trunk/samples/user_service_intf_binder.pas
index a8da14d43..98fd8dec1 100644
--- a/wst/trunk/samples/user_service_intf_binder.pas
+++ b/wst/trunk/samples/user_service_intf_binder.pas
@@ -2,7 +2,7 @@
This unit has been produced by ws_helper.
Input unit name : "user_service_intf".
This unit name : "user_service_intf_binder".
- Date : "16/07/2007 19:01:46".
+ Date : "26/08/2007 01:03:09".
}
unit user_service_intf_binder;
{$IFDEF FPC} {$mode objfpc}{$H+} {$ENDIF}
@@ -52,7 +52,7 @@ var
returnVal : TUserArray;
begin
callCtx := AContext;
- TObject(returnVal) := nil;
+ Fillchar(returnVal,SizeOf(TUserArray),#0);
tmpObj := Self.GetFactory().CreateInstance() as UserService;
@@ -90,12 +90,12 @@ var
callCtx : ICallContext;
strPrmName : string;
procName,trgName : string;
- AUser : TUser_Type;
+ AUser : TUser;
begin
callCtx := AContext;
- TObject(AUser) := nil;
+ Fillchar(AUser,SizeOf(TUser),#0);
- strPrmName := 'AUser'; AFormatter.Get(TypeInfo(TUser_Type),strPrmName,AUser);
+ strPrmName := 'AUser'; AFormatter.Get(TypeInfo(TUser),strPrmName,AUser);
if Assigned(Pointer(AUser)) then
callCtx.AddObjectToFree(TObject(AUser));
@@ -131,12 +131,12 @@ var
callCtx : ICallContext;
strPrmName : string;
procName,trgName : string;
- AUser : TUser_Type;
+ AUser : TUser;
begin
callCtx := AContext;
- TObject(AUser) := nil;
+ Fillchar(AUser,SizeOf(TUser),#0);
- strPrmName := 'AUser'; AFormatter.Get(TypeInfo(TUser_Type),strPrmName,AUser);
+ strPrmName := 'AUser'; AFormatter.Get(TypeInfo(TUser),strPrmName,AUser);
if Assigned(Pointer(AUser)) then
callCtx.AddObjectToFree(TObject(AUser));
@@ -173,10 +173,10 @@ var
strPrmName : string;
procName,trgName : string;
AName : string;
- returnVal : TUser_Type;
+ returnVal : TUser;
begin
callCtx := AContext;
- TObject(returnVal) := nil;
+ Fillchar(returnVal,SizeOf(TUser),#0);
strPrmName := 'AName'; AFormatter.Get(TypeInfo(string),strPrmName,AName);
@@ -195,7 +195,7 @@ begin
trgName := AFormatter.GetCallTarget();
AFormatter.Clear();
AFormatter.BeginCallResponse(procName,trgName);
- AFormatter.Put('result',TypeInfo(TUser_Type),returnVal);
+ AFormatter.Put('result',TypeInfo(TUser),returnVal);
AFormatter.EndCallResponse();
callCtx := nil;
diff --git a/wst/trunk/samples/user_service_intf_imp.pas b/wst/trunk/samples/user_service_intf_imp.pas
index 0449f5629..388f3b8c5 100644
--- a/wst/trunk/samples/user_service_intf_imp.pas
+++ b/wst/trunk/samples/user_service_intf_imp.pas
@@ -14,8 +14,6 @@ Uses SysUtils, Classes,
Type
- TUser = TUser_Type;
-
{ TUserService_ServiceImp }
TUserService_ServiceImp=class(TActivableServiceImplementation,UserService)
diff --git a/wst/trunk/samples/user_service_intf_proxy.pas b/wst/trunk/samples/user_service_intf_proxy.pas
index 01318691a..e1f3765cb 100644
--- a/wst/trunk/samples/user_service_intf_proxy.pas
+++ b/wst/trunk/samples/user_service_intf_proxy.pas
@@ -2,7 +2,7 @@
This unit has been produced by ws_helper.
Input unit name : "user_service_intf".
This unit name : "user_service_intf_proxy".
- Date : "14/08/2007 21:45:00".
+ Date : "26/08/2007 01:03:09".
}
Unit user_service_intf_proxy;
@@ -19,14 +19,14 @@ Type
class function GetServiceType() : PTypeInfo;override;
function GetList():TUserArray;
procedure Add(
- const AUser : TUser_Type
+ const AUser : TUser
);
procedure Update(
- const AUser : TUser_Type
+ const AUser : TUser
);
function Find(
const AName : string
- ):TUser_Type;
+ ):TUser;
function Delete(
const AName : string
):boolean;
@@ -73,7 +73,7 @@ Begin
End;
procedure TUserService_Proxy.Add(
- const AUser : TUser_Type
+ const AUser : TUser
);
Var
locSerializer : IFormatterClient;
@@ -82,7 +82,7 @@ Begin
locSerializer := GetSerializer();
Try
locSerializer.BeginCall('Add', GetTarget(),(Self as ICallContext));
- locSerializer.Put('AUser', TypeInfo(TUser_Type), AUser);
+ locSerializer.Put('AUser', TypeInfo(TUser), AUser);
locSerializer.EndCall();
MakeCall();
@@ -95,7 +95,7 @@ Begin
End;
procedure TUserService_Proxy.Update(
- const AUser : TUser_Type
+ const AUser : TUser
);
Var
locSerializer : IFormatterClient;
@@ -104,7 +104,7 @@ Begin
locSerializer := GetSerializer();
Try
locSerializer.BeginCall('Update', GetTarget(),(Self as ICallContext));
- locSerializer.Put('AUser', TypeInfo(TUser_Type), AUser);
+ locSerializer.Put('AUser', TypeInfo(TUser), AUser);
locSerializer.EndCall();
MakeCall();
@@ -118,7 +118,7 @@ End;
function TUserService_Proxy.Find(
const AName : string
-):TUser_Type;
+):TUser;
Var
locSerializer : IFormatterClient;
strPrmName : string;
@@ -134,7 +134,7 @@ Begin
locSerializer.BeginCallRead((Self as ICallContext));
TObject(Result) := Nil;
strPrmName := 'result';
- locSerializer.Get(TypeInfo(TUser_Type), strPrmName, Result);
+ locSerializer.Get(TypeInfo(TUser), strPrmName, Result);
Finally
locSerializer.Clear();
diff --git a/wst/trunk/tests/amazon/amazon.lpi b/wst/trunk/tests/amazon/amazon.lpi
index 5062dffb7..1de8add8a 100644
--- a/wst/trunk/tests/amazon/amazon.lpi
+++ b/wst/trunk/tests/amazon/amazon.lpi
@@ -7,7 +7,7 @@
-
+
@@ -38,7 +38,9 @@
+
+
@@ -54,7 +56,6 @@
-
@@ -67,7 +68,7 @@
-
+
@@ -217,87 +218,12 @@
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/wst/trunk/tests/amazon/amazon.lpr b/wst/trunk/tests/amazon/amazon.lpr
index 06b1db083..a9fc64952 100644
--- a/wst/trunk/tests/amazon/amazon.lpr
+++ b/wst/trunk/tests/amazon/amazon.lpr
@@ -8,7 +8,7 @@ uses
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms,
- umain, AWSECommerceService;
+ umain;
begin
Application.Initialize;
diff --git a/wst/trunk/tests/record/record_sample.pas b/wst/trunk/tests/record/record_sample.pas
index 1ad78aa21..8fef55571 100644
--- a/wst/trunk/tests/record/record_sample.pas
+++ b/wst/trunk/tests/record/record_sample.pas
@@ -2,7 +2,7 @@
This unit has been produced by ws_helper.
Input unit name : "record_sample".
This unit name : "record_sample".
- Date : "17/08/2007 19:37:26".
+ Date : "26/08/2007 01:12:11".
}
unit record_sample;
{$IFDEF FPC}
@@ -16,40 +16,27 @@ interface
uses SysUtils, Classes, TypInfo, base_service_intf, service_intf;
const
- sNAME_SPACE = 'record_sample';
+ sNAME_SPACE = 'urn:record_sample';
sUNIT_NAME = 'record_sample';
type
+ TRecordClass = class;
- RecordA = record
- fieldB : Single;
- fieldA : Integer;
- comment : String;
- end;
-
- RecordB = record
- singleField : Single;
- intField : Integer;
- comment : String;
- RecordField : RecordA;
- end;
-
- RecordC = record
- intField : Integer;
- RecordField : RecordB;
+ TRecordClass = class(TBaseComplexRemotable)
+ private
+ FfieldA : integer;
+ FfieldB : Single;
+ published
+ property fieldA : integer read FfieldA write FfieldA;
+ property fieldB : Single read FfieldB write FfieldB;
end;
RecordService = interface(IInvokable)
['{E42B7653-4B50-4956-88B4-FBCEC57B667A}']
function Add(
- const AValue : RecordA
- ):RecordB;
- function AddRec(
- const AA : RecordA;
- const AB : RecordB;
- const AC : RecordC
- ):RecordC;
+ const AValue : TRecordClass
+ ):Int64;
end;
procedure Register_record_sample_ServiceMetadata();
@@ -64,83 +51,45 @@ var
begin
mm := GetModuleMetadataMngr();
mm.SetRepositoryNameSpace(sUNIT_NAME, sNAME_SPACE);
-end;
-
-
-
-{$IFDEF WST_RECORD_RTTI}
-function __RecordA_TYPEINFO_FUNC__() : PTypeInfo;
-var
- p : ^RecordA;
- r : RecordA;
-begin
- p := @r;
- Result := MakeRawTypeInfo(
- 'RecordA',
- SizeOf(RecordA),
- [ PtrUInt(@(p^.fieldB)) - PtrUInt(p), PtrUInt(@(p^.fieldA)) - PtrUInt(p), PtrUInt(@(p^.comment)) - PtrUInt(p) ],
- [ TypeInfo(Single), TypeInfo(Integer), TypeInfo(String) ]
+ mm.SetServiceCustomData(
+ sUNIT_NAME,
+ 'RecordService',
+ 'TRANSPORT_Address',
+ 'http://127.0.0.1:20000'
+ );
+ mm.SetServiceCustomData(
+ sUNIT_NAME,
+ 'RecordService',
+ 'FORMAT_Style',
+ 'rpc'
+ );
+ mm.SetOperationCustomData(
+ sUNIT_NAME,
+ 'RecordService',
+ 'Add',
+ '_E_N_',
+ 'Add'
+ );
+ mm.SetOperationCustomData(
+ sUNIT_NAME,
+ 'RecordService',
+ 'Add',
+ 'FORMAT_Input_EncodingStyle',
+ 'literal'
+ );
+ mm.SetOperationCustomData(
+ sUNIT_NAME,
+ 'RecordService',
+ 'Add',
+ 'FORMAT_OutputEncodingStyle',
+ 'literal'
);
end;
-{$ENDIF WST_RECORD_RTTI}
-{$IFDEF WST_RECORD_RTTI}
-function __RecordB_TYPEINFO_FUNC__() : PTypeInfo;
-var
- p : ^RecordB;
- r : RecordB;
-begin
- p := @r;
- Result := MakeRawTypeInfo(
- 'RecordB',
- SizeOf(RecordB),
- [ PtrUInt(@(p^.singleField)) - PtrUInt(p), PtrUInt(@(p^.intField)) - PtrUInt(p), PtrUInt(@(p^.comment)) - PtrUInt(p), PtrUInt(@(p^.RecordField)) - PtrUInt(p) ],
- [ TypeInfo(Single), TypeInfo(Integer), TypeInfo(String), TypeInfo(RecordA) ]
- );
-end;
-{$ENDIF WST_RECORD_RTTI}
-{$IFDEF WST_RECORD_RTTI}
-function __RecordC_TYPEINFO_FUNC__() : PTypeInfo;
-var
- p : ^RecordC;
- r : RecordC;
-begin
- p := @r;
- Result := MakeRawTypeInfo(
- 'RecordC',
- SizeOf(RecordC),
- [ PtrUInt(@(p^.intField)) - PtrUInt(p), PtrUInt(@(p^.RecordField)) - PtrUInt(p) ],
- [ TypeInfo(Integer), TypeInfo(RecordB) ]
- );
-end;
-{$ENDIF WST_RECORD_RTTI}
initialization
+ GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(TRecordClass),'TRecordClass');
- GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(RecordA),'RecordA').RegisterExternalPropertyName('__FIELDS__','fieldB;fieldA;comment');
-{$IFNDEF WST_RECORD_RTTI}
- GetTypeRegistry().ItemByTypeInfo[TypeInfo(RecordA)].RegisterObject(FIELDS_STRING,TRecordRttiDataObject.Create(MakeRecordTypeInfo(TypeInfo(RecordA)),GetTypeRegistry().ItemByTypeInfo[TypeInfo(RecordA)].GetExternalPropertyName('__FIELDS__')));
-{$ENDIF WST_RECORD_RTTI}
-{$IFDEF WST_RECORD_RTTI}
- GetTypeRegistry().ItemByTypeInfo[TypeInfo(RecordA)].RegisterObject(FIELDS_STRING,TRecordRttiDataObject.Create(MakeRecordTypeInfo(__RecordA_TYPEINFO_FUNC__()),GetTypeRegistry().ItemByTypeInfo[TypeInfo(RecordA)].GetExternalPropertyName('__FIELDS__')));
-{$ENDIF WST_RECORD_RTTI}
-
- GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(RecordB),'RecordB').RegisterExternalPropertyName('__FIELDS__','singleField;intField;comment;RecordField');
-{$IFNDEF WST_RECORD_RTTI}
- GetTypeRegistry().ItemByTypeInfo[TypeInfo(RecordB)].RegisterObject(FIELDS_STRING,TRecordRttiDataObject.Create(MakeRecordTypeInfo(TypeInfo(RecordB)),GetTypeRegistry().ItemByTypeInfo[TypeInfo(RecordB)].GetExternalPropertyName('__FIELDS__')));
-{$ENDIF WST_RECORD_RTTI}
-{$IFDEF WST_RECORD_RTTI}
- GetTypeRegistry().ItemByTypeInfo[TypeInfo(RecordB)].RegisterObject(FIELDS_STRING,TRecordRttiDataObject.Create(MakeRecordTypeInfo(__RecordB_TYPEINFO_FUNC__()),GetTypeRegistry().ItemByTypeInfo[TypeInfo(RecordB)].GetExternalPropertyName('__FIELDS__')));
-{$ENDIF WST_RECORD_RTTI}
-
- GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(RecordC),'RecordC').RegisterExternalPropertyName('__FIELDS__','intField;RecordField');
-{$IFNDEF WST_RECORD_RTTI}
- GetTypeRegistry().ItemByTypeInfo[TypeInfo(RecordC)].RegisterObject(FIELDS_STRING,TRecordRttiDataObject.Create(MakeRecordTypeInfo(TypeInfo(RecordC)),GetTypeRegistry().ItemByTypeInfo[TypeInfo(RecordC)].GetExternalPropertyName('__FIELDS__')));
-{$ENDIF WST_RECORD_RTTI}
-{$IFDEF WST_RECORD_RTTI}
- GetTypeRegistry().ItemByTypeInfo[TypeInfo(RecordC)].RegisterObject(FIELDS_STRING,TRecordRttiDataObject.Create(MakeRecordTypeInfo(__RecordC_TYPEINFO_FUNC__()),GetTypeRegistry().ItemByTypeInfo[TypeInfo(RecordC)].GetExternalPropertyName('__FIELDS__')));
-{$ENDIF WST_RECORD_RTTI}
-
End.
diff --git a/wst/trunk/tests/record/record_sample_binder.pas b/wst/trunk/tests/record/record_sample_binder.pas
index 7dee77048..482fa0897 100644
--- a/wst/trunk/tests/record/record_sample_binder.pas
+++ b/wst/trunk/tests/record/record_sample_binder.pas
@@ -2,7 +2,7 @@
This unit has been produced by ws_helper.
Input unit name : "record_sample".
This unit name : "record_sample_binder".
- Date : "17/08/2007 19:37:26".
+ Date : "26/08/2007 01:12:11".
}
unit record_sample_binder;
{$IFDEF FPC} {$mode objfpc}{$H+} {$ENDIF}
@@ -16,7 +16,6 @@ type
TRecordService_ServiceBinder = class(TBaseServiceBinder)
protected
procedure AddHandler(AFormatter : IFormatterResponse; AContext : ICallContext);
- procedure AddRecHandler(AFormatter : IFormatterResponse; AContext : ICallContext);
public
constructor Create();
end;
@@ -46,12 +45,15 @@ var
callCtx : ICallContext;
strPrmName : string;
procName,trgName : string;
- AValue : RecordA;
- returnVal : RecordB;
+ AValue : TRecordClass;
+ returnVal : Int64;
begin
callCtx := AContext;
+ Fillchar(AValue,SizeOf(TRecordClass),#0);
- strPrmName := 'AValue'; AFormatter.Get(TypeInfo(RecordA),strPrmName,AValue);
+ strPrmName := 'AValue'; AFormatter.Get(TypeInfo(TRecordClass),strPrmName,AValue);
+ if Assigned(Pointer(AValue)) then
+ callCtx.AddObjectToFree(TObject(AValue));
tmpObj := Self.GetFactory().CreateInstance() as RecordService;
if Supports(tmpObj,ICallControl,cllCntrl) then
@@ -66,51 +68,7 @@ begin
trgName := AFormatter.GetCallTarget();
AFormatter.Clear();
AFormatter.BeginCallResponse(procName,trgName);
- AFormatter.Put('Result',TypeInfo(RecordB),returnVal);
- AFormatter.EndCallResponse();
-
- callCtx := nil;
- finally
- if hasObjCntrl then
- objCntrl.Deactivate();
- Self.GetFactory().ReleaseInstance(tmpObj);
- end;
-end;
-
-procedure TRecordService_ServiceBinder.AddRecHandler(AFormatter : IFormatterResponse; AContext : ICallContext);
-var
- cllCntrl : ICallControl;
- objCntrl : IObjectControl;
- hasObjCntrl : Boolean;
- tmpObj : RecordService;
- callCtx : ICallContext;
- strPrmName : string;
- procName,trgName : string;
- AA : RecordA;
- AB : RecordB;
- AC : RecordC;
- returnVal : RecordC;
-begin
- callCtx := AContext;
-
- strPrmName := 'AA'; AFormatter.Get(TypeInfo(RecordA),strPrmName,AA);
- strPrmName := 'AB'; AFormatter.Get(TypeInfo(RecordB),strPrmName,AB);
- strPrmName := 'AC'; AFormatter.Get(TypeInfo(RecordC),strPrmName,AC);
-
- tmpObj := Self.GetFactory().CreateInstance() as RecordService;
- if Supports(tmpObj,ICallControl,cllCntrl) then
- cllCntrl.SetCallContext(callCtx);
- hasObjCntrl := Supports(tmpObj,IObjectControl,objCntrl);
- if hasObjCntrl then
- objCntrl.Activate();
- try
- returnVal := tmpObj.AddRec(AA,AB,AC);
-
- procName := AFormatter.GetCallProcedureName();
- trgName := AFormatter.GetCallTarget();
- AFormatter.Clear();
- AFormatter.BeginCallResponse(procName,trgName);
- AFormatter.Put('Result',TypeInfo(RecordC),returnVal);
+ AFormatter.Put('result',TypeInfo(Int64),returnVal);
AFormatter.EndCallResponse();
callCtx := nil;
@@ -126,7 +84,6 @@ constructor TRecordService_ServiceBinder.Create();
begin
inherited Create(GetServiceImplementationRegistry().FindFactory('RecordService'));
RegisterVerbHandler('Add',{$IFDEF FPC}@{$ENDIF}AddHandler);
- RegisterVerbHandler('AddRec',{$IFDEF FPC}@{$ENDIF}AddRecHandler);
end;
diff --git a/wst/trunk/tests/record/record_sample_proxy.pas b/wst/trunk/tests/record/record_sample_proxy.pas
index cbb34c5b5..052f91c70 100644
--- a/wst/trunk/tests/record/record_sample_proxy.pas
+++ b/wst/trunk/tests/record/record_sample_proxy.pas
@@ -2,7 +2,7 @@
This unit has been produced by ws_helper.
Input unit name : "record_sample".
This unit name : "record_sample_proxy".
- Date : "17/08/2007 19:37:26".
+ Date : "26/08/2007 01:12:11".
}
Unit record_sample_proxy;
@@ -18,13 +18,8 @@ Type
Protected
class function GetServiceType() : PTypeInfo;override;
function Add(
- const AValue : RecordA
- ):RecordB;
- function AddRec(
- const AA : RecordA;
- const AB : RecordB;
- const AC : RecordC
- ):RecordC;
+ const AValue : TRecordClass
+ ):Int64;
End;
Function wst_CreateInstance_RecordService(const AFormat : string = 'SOAP:'; const ATransport : string = 'HTTP:'):RecordService;
@@ -46,8 +41,8 @@ begin
end;
function TRecordService_Proxy.Add(
- const AValue : RecordA
-):RecordB;
+ const AValue : TRecordClass
+):Int64;
Var
locSerializer : IFormatterClient;
strPrmName : string;
@@ -55,42 +50,14 @@ Begin
locSerializer := GetSerializer();
Try
locSerializer.BeginCall('Add', GetTarget(),(Self as ICallContext));
- locSerializer.Put('AValue', TypeInfo(RecordA), AValue);
+ locSerializer.Put('AValue', TypeInfo(TRecordClass), AValue);
locSerializer.EndCall();
MakeCall();
locSerializer.BeginCallRead((Self as ICallContext));
- strPrmName := 'Result';
- locSerializer.Get(TypeInfo(RecordB), strPrmName, Result);
-
- Finally
- locSerializer.Clear();
- End;
-End;
-
-function TRecordService_Proxy.AddRec(
- const AA : RecordA;
- const AB : RecordB;
- const AC : RecordC
-):RecordC;
-Var
- locSerializer : IFormatterClient;
- strPrmName : string;
-Begin
- locSerializer := GetSerializer();
- Try
- locSerializer.BeginCall('AddRec', GetTarget(),(Self as ICallContext));
- locSerializer.Put('AA', TypeInfo(RecordA), AA);
- locSerializer.Put('AB', TypeInfo(RecordB), AB);
- locSerializer.Put('AC', TypeInfo(RecordC), AC);
- locSerializer.EndCall();
-
- MakeCall();
-
- locSerializer.BeginCallRead((Self as ICallContext));
- strPrmName := 'Result';
- locSerializer.Get(TypeInfo(RecordC), strPrmName, Result);
+ strPrmName := 'result';
+ locSerializer.Get(TypeInfo(Int64), strPrmName, Result);
Finally
locSerializer.Clear();
diff --git a/wst/trunk/tests/record/server/record_server.lpi b/wst/trunk/tests/record/server/record_server.lpi
index 698534c17..e0bbee6c5 100644
--- a/wst/trunk/tests/record/server/record_server.lpi
+++ b/wst/trunk/tests/record/server/record_server.lpi
@@ -12,7 +12,7 @@
-
+
@@ -60,8 +60,8 @@
-
-
+
+
@@ -188,16 +188,7 @@
-
-
-
-
-
-
-
-
-
-
+
diff --git a/wst/trunk/type_lib_edtr/typ_lib_edtr.lpi b/wst/trunk/type_lib_edtr/typ_lib_edtr.lpi
index b521e0bf9..788e90f1c 100644
--- a/wst/trunk/type_lib_edtr/typ_lib_edtr.lpi
+++ b/wst/trunk/type_lib_edtr/typ_lib_edtr.lpi
@@ -7,7 +7,7 @@
-
+
@@ -32,13 +32,15 @@
-
+
-
+
+
+
@@ -47,8 +49,8 @@
-
-
+
+
@@ -63,9 +65,9 @@
-
-
-
+
+
+
@@ -74,13 +76,10 @@
-
-
-
-
+
+
-
@@ -108,8 +107,8 @@
-
-
+
+
@@ -118,9 +117,9 @@
-
-
-
+
+
+
@@ -130,7 +129,7 @@
-
+
@@ -143,7 +142,7 @@
-
+
@@ -155,7 +154,7 @@
-
+
@@ -171,8 +170,8 @@
-
-
+
+
@@ -287,10 +286,10 @@
-
-
-
-
+
+
+
+
@@ -299,7 +298,7 @@
-
+
@@ -312,15 +311,15 @@
-
-
-
+
+
+
-
+
@@ -345,12 +344,12 @@
-
-
-
-
+
+
+
+
-
+
@@ -441,7 +440,7 @@
-
+
@@ -456,8 +455,8 @@
-
-
+
+
@@ -475,7 +474,7 @@
-
+
@@ -499,7 +498,7 @@
-
+
@@ -516,7 +515,7 @@
-
+
@@ -532,22 +531,22 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -557,7 +556,7 @@
-
+
@@ -600,7 +599,7 @@
-
+
@@ -610,7 +609,7 @@
-
+
@@ -683,21 +682,22 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
diff --git a/wst/trunk/type_lib_edtr/typ_lib_edtr.lpr b/wst/trunk/type_lib_edtr/typ_lib_edtr.lpr
index 463c9007e..17be7f5f2 100644
--- a/wst/trunk/type_lib_edtr/typ_lib_edtr.lpr
+++ b/wst/trunk/type_lib_edtr/typ_lib_edtr.lpr
@@ -9,10 +9,10 @@ uses
Interfaces, // this includes the LCL widgetset
Forms
, uwsttypelibraryedit, view_helper, uabout, ufEnumedit,
- edit_helper, ufclassedit, wsdl_generator, ufpropedit, uinterfaceedit, udm,
+ edit_helper, ufclassedit, ufpropedit, uinterfaceedit, udm,
pascal_parser_intf, PasTree, PParser, uprocedit, common_gui_utils, uargedit,
umoduleedit, ubindingedit, ufrmsaveoption, ufarrayedit, generator,
- uftypealiasedit, ufrecordedit;
+ uftypealiasedit, ufrecordedit, wsdl_generator;
begin
Application.Initialize;
diff --git a/wst/trunk/type_lib_edtr/ufclassedit.lrs b/wst/trunk/type_lib_edtr/ufclassedit.lrs
index a4e8405ce..f913534bd 100644
--- a/wst/trunk/type_lib_edtr/ufclassedit.lrs
+++ b/wst/trunk/type_lib_edtr/ufclassedit.lrs
@@ -1,5 +1,3 @@
-{ Ceci est un fichier ressource généré automatiquement par Lazarus }
-
LazarusResources.Add('TfClassEdit','FORMDATA',[
'TPF0'#11'TfClassEdit'#10'fClassEdit'#4'Left'#3#16#1#6'Height'#3'#'#2#3'Top'#2
+'*'#5'Width'#3#6#2#18'HorzScrollBar.Page'#3#5#2#18'VertScrollBar.Page'#3'"'#2
diff --git a/wst/trunk/type_lib_edtr/uwsttypelibraryedit.lfm b/wst/trunk/type_lib_edtr/uwsttypelibraryedit.lfm
index 23e37dba6..0dde68c23 100644
--- a/wst/trunk/type_lib_edtr/uwsttypelibraryedit.lfm
+++ b/wst/trunk/type_lib_edtr/uwsttypelibraryedit.lfm
@@ -1,7 +1,7 @@
object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
- Left = 137
+ Left = 84
Height = 644
- Top = 257
+ Top = 315
Width = 833
HorzScrollBar.Page = 832
VertScrollBar.Page = 623
@@ -78,9 +78,11 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
PopupMenu = PopupMenu2
TabOrder = 0
BookMarkOptions.Xoffset = 81
+ BookMarkOptions.OnChange = nil
Gutter.DigitCount = 5
Gutter.ShowLineNumbers = True
Gutter.ShowCodeFolding = True
+ Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14
Highlighter = SynPasSyn1
Keystrokes = <
@@ -405,6 +407,7 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
ShortCut = 24642
end>
ReadOnly = True
+ SelectedColor.OnChange = nil
end
end
object tsWSDL: TTabSheet
@@ -424,7 +427,9 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
PopupMenu = PopupMenu2
TabOrder = 0
BookMarkOptions.Xoffset = 54
+ BookMarkOptions.OnChange = nil
Gutter.ShowLineNumbers = True
+ Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14
Highlighter = SynXMLSyn1
Keystrokes = <
@@ -749,6 +754,7 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
ShortCut = 24642
end>
ReadOnly = True
+ SelectedColor.OnChange = nil
end
end
object tsProxy: TTabSheet
@@ -768,11 +774,9 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
PopupMenu = PopupMenu2
TabOrder = 0
BookMarkOptions.Xoffset = 81
- BookMarkOptions.OnChange = nil
Gutter.DigitCount = 5
Gutter.ShowLineNumbers = True
Gutter.ShowCodeFolding = True
- Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14
Highlighter = SynPasSyn1
Keystrokes = <
@@ -1097,7 +1101,6 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
ShortCut = 24642
end>
ReadOnly = True
- SelectedColor.OnChange = nil
end
end
object tsImp: TTabSheet
@@ -1117,11 +1120,9 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
PopupMenu = PopupMenu2
TabOrder = 0
BookMarkOptions.Xoffset = 81
- BookMarkOptions.OnChange = nil
Gutter.DigitCount = 5
Gutter.ShowLineNumbers = True
Gutter.ShowCodeFolding = True
- Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14
Highlighter = SynPasSyn1
Keystrokes = <
@@ -1446,7 +1447,6 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
ShortCut = 24642
end>
ReadOnly = True
- SelectedColor.OnChange = nil
end
end
object tsBinder: TTabSheet
@@ -1466,12 +1466,10 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
PopupMenu = PopupMenu2
TabOrder = 0
BookMarkOptions.Xoffset = 81
- BookMarkOptions.OnChange = nil
Gutter.AutoSize = True
Gutter.DigitCount = 5
Gutter.ShowLineNumbers = True
Gutter.ShowCodeFolding = True
- Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14
Highlighter = SynPasSyn1
Keystrokes = <
@@ -1796,7 +1794,6 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
ShortCut = 24642
end>
ReadOnly = True
- SelectedColor.OnChange = nil
end
end
object tsLog: TTabSheet
diff --git a/wst/trunk/type_lib_edtr/uwsttypelibraryedit.lrs b/wst/trunk/type_lib_edtr/uwsttypelibraryedit.lrs
index bbdb51973..ec4054c52 100644
--- a/wst/trunk/type_lib_edtr/uwsttypelibraryedit.lrs
+++ b/wst/trunk/type_lib_edtr/uwsttypelibraryedit.lrs
@@ -1,15 +1,15 @@
{ Ceci est un fichier ressource généré automatiquement par Lazarus }
LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
- 'TPF0'#20'TfWstTypeLibraryEdit'#19'fWstTypeLibraryEdit'#4'Left'#3#137#0#6'Hei'
- +'ght'#3#132#2#3'Top'#3#1#1#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
- +#8'FormShow'#8'Position'#7#15'poDesktopCenter'#0#10'TStatusBar'#2'SB'#6'Heig'
- +'ht'#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'Panel1'#6'Height'#3'Y'#2#5
- +'Width'#3':'#1#5'Align'#7#6'alLeft'#12'ClientHeight'#3'Y'#2#11'ClientWidth'#3
+ 'TPF0'#20'TfWstTypeLibraryEdit'#19'fWstTypeLibraryEdit'#4'Left'#2'T'#6'Height'
+ +#3#132#2#3'Top'#3';'#1#5'Width'#3'A'#3#18'HorzScrollBar.Page'#3'@'#3#18'Vert'
+ +'ScrollBar.Page'#3'o'#2#13'ActiveControl'#7#9'trvSchema'#7'Caption'#6'+[Web '
+ +'Services Toolkit ] Type Library Editor'#12'ClientHeight'#3'p'#2#11'ClientWi'
+ +'dth'#3'A'#3#4'Menu'#7#9'MainMenu1'#7'OnClose'#7#9'FormClose'#6'OnShow'#7#8
+ +'FormShow'#8'Position'#7#15'poDesktopCenter'#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'Wid'
+ +'th'#2'2'#0#0#11'SimplePanel'#8#0#0#6'TPanel'#6'Panel1'#6'Height'#3'Y'#2#5'W'
+ +'idth'#3':'#1#5'Align'#7#6'alLeft'#12'ClientHeight'#3'Y'#2#11'ClientWidth'#3
+':'#1#8'TabOrder'#2#0#0#9'TTreeView'#9'trvSchema'#4'Left'#2#1#6'Height'#3'W'
+#2#3'Top'#2#1#5'Width'#3'8'#1#5'Align'#7#8'alClient'#17'DefaultItemHeight'#2
+#15#9'PopupMenu'#7#10'PopupMenu1'#8'TabOrder'#2#0#0#0#0#6'TPanel'#6'Panel2'#4
@@ -22,61 +22,63 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_CHA'
+'RSET'#10'Font.Color'#7#7'clBlack'#11'Font.Height'#2#236#9'Font.Name'#6#7'Co'
+'urier'#10'Font.Pitch'#7#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10'Popu'
- +'pMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'Q'#17'Gutter.DigitCou'
- +'nt'#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'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#0#0#0#9'T'
- +'TabSheet'#6'tsWSDL'#7'Caption'#6#5'&WSDL'#12'ClientHeight'#3'='#2#11'Client'
- +'Width'#3#245#1#0#8'TSynEdit'#7'srcWSDL'#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#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.CodeFo'
- +'ldingWidth'#2#14#11'Highlighter'#7#10'SynXMLSyn1'#10'Keystrokes'#14#1#7'Com'
- +'mand'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Comm'
- +'and'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Co'
- +'mmand'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7
+ +'pMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'Q'#24'BookMarkOptions'
+ +'.OnChange'#13#17'Gutter.DigitCount'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gut'
+ +'ter.ShowCodeFolding'#9#15'Gutter.OnChange'#13#23'Gutter.CodeFoldingWidth'#2
+ +#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'#14#1#7'Command'#2#3#8'Sh'
+ +'ortCut'#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'S'
+ +'hortCut'#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'S'
+ +'hortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8'S'
+ +'hortCut'#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#22'SelectedColor.OnC'
+ +'hange'#13#0#0#0#9'TTabSheet'#6'tsWSDL'#7'Caption'#6#5'&WSDL'#12'ClientHeigh'
+ +'t'#3'='#2#11'ClientWidth'#3#245#1#0#8'TSynEdit'#7'srcWSDL'#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#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'#24'BookMarkOptions.OnChang'
+ +'e'#13#22'Gutter.ShowLineNumbers'#9#15'Gutter.OnChange'#13#23'Gutter.CodeFol'
+ +'dingWidth'#2#14#11'Highlighter'#7#10'SynXMLSyn1'#10'Keystrokes'#14#1#7'Comm'
+ +'and'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Comma'
+ +'nd'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Com'
+ +'mand'#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'C'
+'ommand'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'C'
+'ommand'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7
@@ -115,271 +117,267 @@ 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'#7'tsProxy'#7'Caption'#6#6'&Proxy'#12'ClientHeight'#3'='#2#11'Clie'
- +'ntWidth'#3#245#1#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.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#15
- +'Gutter.OnChange'#13#23'Gutter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'S'
- +'ynPasSyn1'#10'Keystrokes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Comman'
- +'d'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Co'
- +'mmand'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Com'
- +'mand'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'C'
- +'ommand'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'C'
- ,'ommand'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'C'
- +'ommand'#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'tsImp'#7'Caption'#6#24'Im&plementation Skeleton'#12'ClientHeight'#3
- +'='#2#11'ClientWidth'#3#245#1#0#8'TSynEdit'#6'srcImp'#6'Height'#3'='#2#5'Wid'
- +'th'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_CHARSET'#10'F'
- +'ont.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.ShowLineNumbers'#9#22'Gutter.ShowCod'
- +'eFolding'#9#15'Gutter.OnChange'#13#23'Gutter.CodeFoldingWidth'#2#14#11'High'
- +'lighter'#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'Short'
- +'Cut'#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'Comman'
- +'d'#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'ShortC'
- +'ut'#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'ShortCut'#3'T@'#0#1#7'Comm'
- +'and'#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'Command'#3'-'#1#8'ShortCu'
- +'t'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3'/'#1#8'Sh'
- +'ortCut'#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'Comman'
- +'d'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'C'
- +'ommand'#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'Command'#3'f'#1#8'ShortCu'
- +'t'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3'h'#1#8'Sh'
- +'ortCut'#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'Comma'
- +'nd'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#22'SelectedColor.OnChange'
- +#13#0#0#0#9'TTabSheet'#8'tsBinder'#7'Caption'#6#7'&Binder'#12'ClientHeight'#3
- +'='#2#11'ClientWidth'#3#245#1#0#8'TSynEdit'#9'srcBinder'#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#15'Gutter.AutoSize'#9#17'Gutter.DigitCount'#2#5#22'Gutter.ShowLineNumber'
- +'s'#9#22'Gutter.ShowCodeFolding'#9#15'Gutter.OnChange'#13#23'Gutter.CodeFold'
- +'ingWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'#14#1#7'Comma'
- +'nd'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Comman'
- +'d'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Comm'
- +'and'#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'C'
- +'ommand'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'C'
- +'ommand'#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'#5'tsLog'#7'Caption'#6#4'&Log'#12'Cl'
- +'ientHeight'#3'='#2#11'ClientWidth'#3#245#1#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'S'
- +'crollBars'#7#6'ssBoth'#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'ParentC'
- +'olor'#8#0#0#9'TMainMenu'#9'MainMenu1'#4'left'#3'`'#1#3'top'#2'p'#0#9'TMenuI'
- +'tem'#9'MenuItem1'#7'Caption'#6#6'&Files'#0#9'TMenuItem'#10'MenuItem16'#6'Ac'
- +'tion'#7#10'actNewFile'#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'a'
- +'ctOpenFile'#7'OnClick'#7#18'actOpenFileExecute'#0#0#9'TMenuItem'#9'MenuItem'
- +'3'#6'Action'#7#9'actExport'#7'OnClick'#7#16'actExportExecute'#0#0#9'TMenuIt'
- +'em'#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'actSav'
- +'eAsExecute'#0#0#9'TMenuItem'#10'MenuItem17'#7'Caption'#6#1'-'#0#0#9'TMenuIt'
- +'em'#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'MenuI'
- +'tem15'#6'Action'#7#14'actRefreshView'#7'OnClick'#7#21'actRefreshViewExecute'
- +#0#0#9'TMenuItem'#10'MenuItem29'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10'MenuI'
- +'tem30'#6'Action'#7#13'actFullExpand'#7'OnClick'#7#20'actFullExpandExecute'#0
- +#0#9'TMenuItem'#10'MenuItem31'#6'Action'#7#15'actFullCollapse'#7'OnClick'#7
- +#22'actFullCollapseExecute'#0#0#0#9'TMenuItem'#10'MenuItem10'#7'Caption'#6#8
- +'&Edition'#0#9'TMenuItem'#10'MenuItem11'#6'Action'#7#13'actEnumCreate'#7'OnC'
- +'lick'#7#20'actEnumCreateExecute'#0#0#9'TMenuItem'#10'MenuItem23'#6'Action'#7
- +#17'actCompoundCreate'#7'OnClick'#7#24'actCompoundCreateExecute'#0#0#9'TMenu'
- +'Item'#10'MenuItem48'#6'Action'#7#15'actRecordCreate'#7'OnClick'#7#22'actRec'
- +'ordCreateExecute'#0#0#9'TMenuItem'#10'MenuItem25'#6'Action'#7#13'actIntfCre'
- +'ate'#7'OnClick'#7#20'actIntfCreateExecute'#0#0#9'TMenuItem'#10'MenuItem35'#6
- +'Action'#7#14'actArrayCreate'#7'OnClick'#7#21'actArrayCreateExecute'#0#0#9'T'
- +'MenuItem'#10'MenuItem36'#6'Action'#7#18'actTypeALiasCreate'#7'OnClick'#7#25
- +'actTypeALiasCreateExecute'#0#0#9'TMenuItem'#10'MenuItem12'#7'Caption'#6#1'-'
- +#0#0#9'TMenuItem'#10'MenuItem13'#6'Action'#7#15'actUpdateObject'#7'Caption'#6
- +#13'Update Object'#7'OnClick'#7#22'actUpdateObjectExecute'#0#0#9'TMenuItem'
- +#10'MenuItem34'#6'Action'#7#9'actDelete'#7'OnClick'#7#16'actDeleteExecute'#0
- +#0#0#9'TMenuItem'#9'MenuItem6'#6'Action'#7#8'actAbout'#7'Caption'#6#6'&About'
- +#7'OnClick'#7#15'actAboutExecute'#0#0#0#11'TActionList'#2'AL'#4'left'#3'X'#1
- +#3'top'#2'8'#0#7'TAction'#11'actOpenFile'#7'Caption'#6#9'Open File'#18'Disab'
- +'leIfNoHandler'#9#9'OnExecute'#7#18'actOpenFileExecute'#0#0#7'TAction'#7'act'
- +'Exit'#7'Caption'#6#4'Exit'#18'DisableIfNoHandler'#9#9'OnExecute'#7#14'actEx'
- +'itExecute'#0#0#7'TAction'#9'actExport'#7'Caption'#6#24'Save generated files'
- +' ...'#18'DisableIfNoHandler'#9#9'OnExecute'#7#16'actExportExecute'#8'OnUpda'
- +'te'#7#15'actExportUpdate'#0#0#7'TAction'#8'actAbout'#7'Caption'#6#5'About'
- +#18'DisableIfNoHandler'#9#9'OnExecute'#7#15'actAboutExecute'#0#0#7'TAction'#9
- +'actSaveAs'#7'Caption'#6#11'Save As ...'#18'DisableIfNoHandler'#9#9'OnExecut'
- +'e'#7#16'actSaveAsExecute'#8'OnUpdate'#7#15'actExportUpdate'#0#0#7'TAction'
- +#13'actEnumCreate'#7'Caption'#6#18'Create Enumeration'#18'DisableIfNoHandler'
- +#9#9'OnExecute'#7#20'actEnumCreateExecute'#0#0#7'TAction'#15'actUpdateObject'
- +#7'Caption'#6#6'Update'#18'DisableIfNoHandler'#9#9'OnExecute'#7#22'actUpdate'
- +'ObjectExecute'#8'OnUpdate'#7#21'actUpdateObjectUpdate'#0#0#7'TAction'#14'ac'
- +'tRefreshView'#7'Caption'#6#14'&Refresh Views'#18'DisableIfNoHandler'#9#9'On'
- +'Execute'#7#21'actRefreshViewExecute'#0#0#7'TAction'#10'actNewFile'#7'Captio'
- +'n'#6#8'New File'#18'DisableIfNoHandler'#9#9'OnExecute'#7#17'actNewFileExecu'
- +'te'#0#0#7'TAction'#17'actCompoundCreate'#7'Caption'#6#17'Create Class Type'
- ,#18'DisableIfNoHandler'#9#9'OnExecute'#7#24'actCompoundCreateExecute'#0#0#7
- +'TAction'#13'actIntfCreate'#7'Caption'#6#16'Create Interface'#18'DisableIfNo'
- +'Handler'#9#9'OnExecute'#7#20'actIntfCreateExecute'#0#0#7'TAction'#13'actFul'
- +'lExpand'#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'actFullCollaps'
- +'eExecute'#0#0#7'TAction'#7'actSave'#7'Caption'#6#4'Save'#18'DisableIfNoHand'
- +'ler'#9#9'OnExecute'#7#14'actSaveExecute'#0#0#7'TAction'#9'actDelete'#7'Capt'
- +'ion'#6#6'Delete'#18'DisableIfNoHandler'#9#9'OnExecute'#7#16'actDeleteExecut'
- +'e'#8'OnUpdate'#7#21'actUpdateObjectUpdate'#0#0#7'TAction'#14'actArrayCreate'
- +#7'Caption'#6#12'Create Array'#18'DisableIfNoHandler'#9#9'OnExecute'#7#21'ac'
- +'tArrayCreateExecute'#0#0#7'TAction'#18'actTypeALiasCreate'#7'Caption'#6#17
- +'Create Type ALias'#18'DisableIfNoHandler'#9#9'OnExecute'#7#25'actTypeALiasC'
- +'reateExecute'#0#0#7'TAction'#15'actRecordCreate'#7'Caption'#6#13'Create Rec'
- +'ord'#18'DisableIfNoHandler'#9#9'OnExecute'#7#22'actRecordCreateExecute'#0#0
- +#0#11'TOpenDialog'#2'OD'#5'Title'#6#26'Ouvrir un fichier existant'#6'Filter'
- +#6'3WDSL files(*.WSDL)|*.WSDL|Pascal file (*.pas)|*.pas'#11'FilterIndex'#2#0
- +#10'InitialDir'#6#2'.\'#7'Options'#11#15'ofPathMustExist'#15'ofFileMustExist'
- +#14'ofEnableSizing'#12'ofViewDetail'#0#4'left'#3#153#1#3'top'#2'X'#0#0#10'TS'
- +'ynPasSyn'#10'SynPasSyn1'#7'Enabled'#8#23'CommentAttri.Foreground'#7#6'clBlu'
- +'e'#18'CommentAttri.Style'#11#6'fsBold'#0#22'StringAttri.Foreground'#7#8'clM'
- +'aroon'#17'SymbolAttri.Style'#11#6'fsBold'#0#25'DirectiveAttri.Foreground'#7
- +#7'clGreen'#20'DirectiveAttri.Style'#11#6'fsBold'#0#14'NestedComments'#9#4'l'
- +'eft'#3#183#1#3'top'#2'h'#0#0#11'TSaveDialog'#2'SD'#5'Title'#6#27'Enregistre'
- +'r le fichier sous'#10'DefaultExt'#6#5'.WSDL'#6'Filter'#6#25'WDSL files(*.WS'
- +'DL)|*.WSDL'#11'FilterIndex'#2#0#7'Options'#11#15'ofPathMustExist'#14'ofEnab'
- +'leSizing'#12'ofViewDetail'#0#4'left'#3#242#1#3'top'#3#176#0#0#0#10'TPopupMe'
- +'nu'#10'PopupMenu1'#4'left'#3#152#0#3'top'#3#152#0#0#9'TMenuItem'#10'MenuIte'
- +'m28'#6'Action'#7#13'actFullExpand'#7'OnClick'#7#20'actFullExpandExecute'#0#0
- +#9'TMenuItem'#10'MenuItem27'#6'Action'#7#15'actFullCollapse'#7'OnClick'#7#22
- +'actFullCollapseExecute'#0#0#9'TMenuItem'#10'MenuItem39'#6'Action'#7#14'actR'
- +'efreshView'#7'OnClick'#7#21'actRefreshViewExecute'#0#0#9'TMenuItem'#10'Menu'
- +'Item26'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem8'#6'Action'#7#13'actE'
- +'numCreate'#7'OnClick'#7#20'actEnumCreateExecute'#0#0#9'TMenuItem'#10'MenuIt'
- +'em21'#6'Action'#7#17'actCompoundCreate'#7'OnClick'#7#24'actCompoundCreateEx'
- +'ecute'#0#0#9'TMenuItem'#10'MenuItem46'#6'Action'#7#15'actRecordCreate'#7'On'
- +'Click'#7#22'actRecordCreateExecute'#0#0#9'TMenuItem'#10'MenuItem24'#6'Actio'
- +'n'#7#13'actIntfCreate'#7'OnClick'#7#20'actIntfCreateExecute'#0#0#9'TMenuIte'
- +'m'#10'MenuItem37'#6'Action'#7#14'actArrayCreate'#7'OnClick'#7#21'actArrayCr'
- +'eateExecute'#0#0#9'TMenuItem'#10'MenuItem38'#6'Action'#7#18'actTypeALiasCre'
- +'ate'#7'OnClick'#7#25'actTypeALiasCreateExecute'#0#0#9'TMenuItem'#10'MenuIte'
- +'m22'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem9'#6'Action'#7#15'actUpda'
- +'teObject'#7'OnClick'#7#22'actUpdateObjectExecute'#0#0#9'TMenuItem'#10'MenuI'
- +'tem33'#6'Action'#7#9'actDelete'#7'OnClick'#7#16'actDeleteExecute'#0#0#0#10
- +'TPopupMenu'#10'PopupMenu2'#4'left'#3#16#2#3'top'#3#235#0#0#9'TMenuItem'#10
- +'MenuItem18'#6'Action'#7#14'actRefreshView'#7'OnClick'#7#21'actRefreshViewEx'
- +'ecute'#0#0#9'TMenuItem'#10'MenuItem19'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10
- +'MenuItem20'#6'Action'#7#9'actExport'#7'OnClick'#7#16'actExportExecute'#0#0#9
- +'TMenuItem'#10'MenuItem40'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10'MenuItem41'
- +#6'Action'#7#14'actArrayCreate'#7'OnClick'#7#21'actArrayCreateExecute'#0#0#9
- +'TMenuItem'#10'MenuItem45'#6'Action'#7#17'actCompoundCreate'#7'OnClick'#7#24
- +'actCompoundCreateExecute'#0#0#9'TMenuItem'#10'MenuItem47'#6'Action'#7#15'ac'
- +'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
- +'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'
- +#3#252#0#0#0#0
+ +'edColor.OnChange'#13#0#0#0#9'TTabSheet'#7'tsProxy'#7'Caption'#6#6'&Proxy'#12
+ +'ClientHeight'#3'='#2#11'ClientWidth'#3#245#1#0#8'TSynEdit'#8'srcProxy'#6'He'
+ +'ight'#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'#17'Gutter.Digi'
+ +'tCount'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#23'Gu'
+ +'tter.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#0#0#0#9'T'
+ +'TabSheet'#5'tsImp'#7'Caption'#6#24'Im&plementation Skeleton'#12'ClientHeigh'
+ +'t'#3'='#2#11'ClientWidth'#3#245#1#0#8'TSynEdit'#6'srcImp'#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'#17'Gutter.DigitCount'#2#5#22
+ +'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#23'Gutter.CodeFoldin'
+ +'gWidth'#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'#8
+ +'tsBinder'#7'Caption'#6#7'&Binder'#12'ClientHeight'#3'='#2#11'ClientWidth'#3
+ +#245#1#0#8'TSynEdit'#9'srcBinder'#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'clBlac'
+ +'k'#11'Font.Height'#2#236#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7#7'fpFix'
+ +'ed'#11'ParentColor'#8#9'PopupMenu'#7#10'PopupMenu2'#8'TabOrder'#2#0#23'Book'
+ +'MarkOptions.Xoffset'#2'Q'#15'Gutter.AutoSize'#9#17'Gutter.DigitCount'#2#5#22
+ +'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#23'Gutter.CodeFoldin'
+ +'gWidth'#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'#12'ClientHeight'#3'='#2#11'ClientWidth'#3#245#1
+ +#0#5'TMemo'#6'mmoLog'#6'Height'#3'='#2#5'Width'#3#245#1#5'Align'#7#8'alClien'
+ +'t'#13'Lines.Strings'#1#6#0#0#10'ScrollBars'#7#6'ssBoth'#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'TMainMenu'#9'MainMenu1'#4'lef'
+ +'t'#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'actNewFile'#7'OnClick'#7#17'actNew'
+ +'FileExecute'#0#0#9'TMenuItem'#9'MenuItem2'#7'Caption'#6#1'-'#0#0#9'TMenuIte'
+ +'m'#9'MenuItem5'#6'Action'#7#11'actOpenFile'#7'OnClick'#7#18'actOpenFileExec'
+ +'ute'#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'On'
+ +'Click'#7#14'actSaveExecute'#0#0#9'TMenuItem'#10'MenuItem32'#6'Action'#7#9'a'
+ +'ctSaveAs'#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'On'
+ +'Click'#7#14'actExitExecute'#0#0#0#9'TMenuItem'#10'MenuItem14'#7'Caption'#6#5
+ +'&View'#0#9'TMenuItem'#10'MenuItem15'#6'Action'#7#14'actRefreshView'#7'OnCli'
+ +'ck'#7#21'actRefreshViewExecute'#0#0#9'TMenuItem'#10'MenuItem29'#7'Caption'#6
+ +#1'-'#0#0#9'TMenuItem'#10'MenuItem30'#6'Action'#7#13'actFullExpand'#7'OnClic'
+ +'k'#7#20'actFullExpandExecute'#0#0#9'TMenuItem'#10'MenuItem31'#6'Action'#7#15
+ +'actFullCollapse'#7'OnClick'#7#22'actFullCollapseExecute'#0#0#0#9'TMenuItem'
+ +#10'MenuItem10'#7'Caption'#6#8'&Edition'#0#9'TMenuItem'#10'MenuItem11'#6'Act'
+ +'ion'#7#13'actEnumCreate'#7'OnClick'#7#20'actEnumCreateExecute'#0#0#9'TMenuI'
+ +'tem'#10'MenuItem23'#6'Action'#7#17'actCompoundCreate'#7'OnClick'#7#24'actCo'
+ +'mpoundCreateExecute'#0#0#9'TMenuItem'#10'MenuItem48'#6'Action'#7#15'actReco'
+ +'rdCreate'#7'OnClick'#7#22'actRecordCreateExecute'#0#0#9'TMenuItem'#10'MenuI'
+ +'tem25'#6'Action'#7#13'actIntfCreate'#7'OnClick'#7#20'actIntfCreateExecute'#0
+ +#0#9'TMenuItem'#10'MenuItem35'#6'Action'#7#14'actArrayCreate'#7'OnClick'#7#21
+ +'actArrayCreateExecute'#0#0#9'TMenuItem'#10'MenuItem36'#6'Action'#7#18'actTy'
+ +'peALiasCreate'#7'OnClick'#7#25'actTypeALiasCreateExecute'#0#0#9'TMenuItem'
+ +#10'MenuItem12'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10'MenuItem13'#6'Action'#7
+ +#15'actUpdateObject'#7'Caption'#6#13'Update Object'#7'OnClick'#7#22'actUpdat'
+ +'eObjectExecute'#0#0#9'TMenuItem'#10'MenuItem34'#6'Action'#7#9'actDelete'#7
+ +'OnClick'#7#16'actDeleteExecute'#0#0#0#9'TMenuItem'#9'MenuItem6'#6'Action'#7
+ +#8'actAbout'#7'Caption'#6#6'&About'#7'OnClick'#7#15'actAboutExecute'#0#0#0#11
+ +'TActionList'#2'AL'#4'left'#3'X'#1#3'top'#2'8'#0#7'TAction'#11'actOpenFile'#7
+ +'Caption'#6#9'Open File'#18'DisableIfNoHandler'#9#9'OnExecute'#7#18'actOpenF'
+ +'ileExecute'#0#0#7'TAction'#7'actExit'#7'Caption'#6#4'Exit'#18'DisableIfNoHa'
+ +'ndler'#9#9'OnExecute'#7#14'actExitExecute'#0#0#7'TAction'#9'actExport'#7'Ca'
+ +'ption'#6#24'Save generated files ...'#18'DisableIfNoHandler'#9#9'OnExecute'
+ +#7#16'actExportExecute'#8'OnUpdate'#7#15'actExportUpdate'#0#0#7'TAction'#8'a'
+ +'ctAbout'#7'Caption'#6#5'About'#18'DisableIfNoHandler'#9#9'OnExecute'#7#15'a'
+ +'ctAboutExecute'#0#0#7'TAction'#9'actSaveAs'#7'Caption'#6#11'Save As ...'#18
+ +'DisableIfNoHandler'#9#9'OnExecute'#7#16'actSaveAsExecute'#8'OnUpdate'#7#15
+ +'actExportUpdate'#0#0#7'TAction'#13'actEnumCreate'#7'Caption'#6#18'Create En'
+ +'umeration'#18'DisableIfNoHandler'#9#9'OnExecute'#7#20'actEnumCreateExecute'
+ +#0#0#7'TAction'#15'actUpdateObject'#7'Caption'#6#6'Update'#18'DisableIfNoHan'
+ +'dler'#9#9'OnExecute'#7#22'actUpdateObjectExecute'#8'OnUpdate'#7#21'actUpdat'
+ +'eObjectUpdate'#0#0#7'TAction'#14'actRefreshView'#7'Caption'#6#14'&Refresh V'
+ +'iews'#18'DisableIfNoHandler'#9#9'OnExecute'#7#21'actRefreshViewExecute'#0#0
+ +#7'TAction'#10'actNewFile'#7'Caption'#6#8'New File'#18'DisableIfNoHandler'#9
+ +#9'OnExecute'#7#17'actNewFileExecute'#0#0#7'TAction'#17'actCompoundCreate'#7
+ +'Caption'#6#17'Create Class Type'#18'DisableIfNoHandler'#9#9'OnExecute'#7#24
+ +'actCompoundCreateExecute'#0#0#7'TAction'#13'actIntfCreate'#7'Caption'#6#16
+ ,'Create Interface'#18'DisableIfNoHandler'#9#9'OnExecute'#7#20'actIntfCreateE'
+ +'xecute'#0#0#7'TAction'#13'actFullExpand'#7'Caption'#6#11'Full expand'#18'Di'
+ +'sableIfNoHandler'#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'actFullCollapseExecute'#0#0#7'TAction'#7'actSave'#7'Capti'
+ +'on'#6#4'Save'#18'DisableIfNoHandler'#9#9'OnExecute'#7#14'actSaveExecute'#0#0
+ +#7'TAction'#9'actDelete'#7'Caption'#6#6'Delete'#18'DisableIfNoHandler'#9#9'O'
+ +'nExecute'#7#16'actDeleteExecute'#8'OnUpdate'#7#21'actUpdateObjectUpdate'#0#0
+ +#7'TAction'#14'actArrayCreate'#7'Caption'#6#12'Create Array'#18'DisableIfNoH'
+ +'andler'#9#9'OnExecute'#7#21'actArrayCreateExecute'#0#0#7'TAction'#18'actTyp'
+ +'eALiasCreate'#7'Caption'#6#17'Create Type ALias'#18'DisableIfNoHandler'#9#9
+ +'OnExecute'#7#25'actTypeALiasCreateExecute'#0#0#7'TAction'#15'actRecordCreat'
+ +'e'#7'Caption'#6#13'Create Record'#18'DisableIfNoHandler'#9#9'OnExecute'#7#22
+ +'actRecordCreateExecute'#0#0#0#11'TOpenDialog'#2'OD'#5'Title'#6#26'Ouvrir un'
+ +' fichier existant'#6'Filter'#6'3WDSL files(*.WSDL)|*.WSDL|Pascal file (*.pa'
+ +'s)|*.pas'#11'FilterIndex'#2#0#10'InitialDir'#6#2'.\'#7'Options'#11#15'ofPat'
+ +'hMustExist'#15'ofFileMustExist'#14'ofEnableSizing'#12'ofViewDetail'#0#4'lef'
+ +'t'#3#153#1#3'top'#2'X'#0#0#10'TSynPasSyn'#10'SynPasSyn1'#7'Enabled'#8#23'Co'
+ +'mmentAttri.Foreground'#7#6'clBlue'#18'CommentAttri.Style'#11#6'fsBold'#0#22
+ +'StringAttri.Foreground'#7#8'clMaroon'#17'SymbolAttri.Style'#11#6'fsBold'#0
+ +#25'DirectiveAttri.Foreground'#7#7'clGreen'#20'DirectiveAttri.Style'#11#6'fs'
+ +'Bold'#0#14'NestedComments'#9#4'left'#3#183#1#3'top'#2'h'#0#0#11'TSaveDialog'
+ +#2'SD'#5'Title'#6#27'Enregistrer le fichier sous'#10'DefaultExt'#6#5'.WSDL'#6
+ +'Filter'#6#25'WDSL files(*.WSDL)|*.WSDL'#11'FilterIndex'#2#0#7'Options'#11#15
+ +'ofPathMustExist'#14'ofEnableSizing'#12'ofViewDetail'#0#4'left'#3#242#1#3'to'
+ +'p'#3#176#0#0#0#10'TPopupMenu'#10'PopupMenu1'#4'left'#3#152#0#3'top'#3#152#0
+ +#0#9'TMenuItem'#10'MenuItem28'#6'Action'#7#13'actFullExpand'#7'OnClick'#7#20
+ +'actFullExpandExecute'#0#0#9'TMenuItem'#10'MenuItem27'#6'Action'#7#15'actFul'
+ +'lCollapse'#7'OnClick'#7#22'actFullCollapseExecute'#0#0#9'TMenuItem'#10'Menu'
+ +'Item39'#6'Action'#7#14'actRefreshView'#7'OnClick'#7#21'actRefreshViewExecut'
+ +'e'#0#0#9'TMenuItem'#10'MenuItem26'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'Men'
+ +'uItem8'#6'Action'#7#13'actEnumCreate'#7'OnClick'#7#20'actEnumCreateExecute'
+ +#0#0#9'TMenuItem'#10'MenuItem21'#6'Action'#7#17'actCompoundCreate'#7'OnClick'
+ +#7#24'actCompoundCreateExecute'#0#0#9'TMenuItem'#10'MenuItem46'#6'Action'#7
+ +#15'actRecordCreate'#7'OnClick'#7#22'actRecordCreateExecute'#0#0#9'TMenuItem'
+ +#10'MenuItem24'#6'Action'#7#13'actIntfCreate'#7'OnClick'#7#20'actIntfCreateE'
+ +'xecute'#0#0#9'TMenuItem'#10'MenuItem37'#6'Action'#7#14'actArrayCreate'#7'On'
+ +'Click'#7#21'actArrayCreateExecute'#0#0#9'TMenuItem'#10'MenuItem38'#6'Action'
+ +#7#18'actTypeALiasCreate'#7'OnClick'#7#25'actTypeALiasCreateExecute'#0#0#9'T'
+ +'MenuItem'#10'MenuItem22'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem9'#6
+ +'Action'#7#15'actUpdateObject'#7'OnClick'#7#22'actUpdateObjectExecute'#0#0#9
+ +'TMenuItem'#10'MenuItem33'#6'Action'#7#9'actDelete'#7'OnClick'#7#16'actDelet'
+ +'eExecute'#0#0#0#10'TPopupMenu'#10'PopupMenu2'#4'left'#3#16#2#3'top'#3#235#0
+ +#0#9'TMenuItem'#10'MenuItem18'#6'Action'#7#14'actRefreshView'#7'OnClick'#7#21
+ +'actRefreshViewExecute'#0#0#9'TMenuItem'#10'MenuItem19'#7'Caption'#6#1'-'#0#0
+ +#9'TMenuItem'#10'MenuItem20'#6'Action'#7#9'actExport'#7'OnClick'#7#16'actExp'
+ +'ortExecute'#0#0#9'TMenuItem'#10'MenuItem40'#7'Caption'#6#1'-'#0#0#9'TMenuIt'
+ +'em'#10'MenuItem41'#6'Action'#7#14'actArrayCreate'#7'OnClick'#7#21'actArrayC'
+ +'reateExecute'#0#0#9'TMenuItem'#10'MenuItem45'#6'Action'#7#17'actCompoundCre'
+ +'ate'#7'OnClick'#7#24'actCompoundCreateExecute'#0#0#9'TMenuItem'#10'MenuItem'
+ +'47'#6'Action'#7#15'actRecordCreate'#7'OnClick'#7#22'actRecordCreateExecute'
+ +#0#0#9'TMenuItem'#10'MenuItem44'#6'Action'#7#13'actEnumCreate'#7'OnClick'#7
+ +#20'actEnumCreateExecute'#0#0#9'TMenuItem'#10'MenuItem43'#6'Action'#7#13'act'
+ +'IntfCreate'#7'OnClick'#7#20'actIntfCreateExecute'#0#0#9'TMenuItem'#10'MenuI'
+ +'tem42'#6'Action'#7#18'actTypeALiasCreate'#7'OnClick'#7#25'actTypeALiasCreat'
+ +'eExecute'#0#0#0#10'TSynXMLSyn'#10'SynXMLSyn1'#13'DefaultFilter'#6#30'Docume'
+ +'nts WSDL (*.wsdl)|*.wsdl'#7'Enabled'#8#23'ElementAttri.Foreground'#7#6'clNa'
+ +'vy'#30'AttributeValueAttri.Foreground'#7#8'clPurple'#16'WantBracesParsed'#8
+ +#4'left'#3#210#1#3'top'#3#252#0#0#0#0
]);
diff --git a/wst/trunk/ws_helper/command_line_parser.pas b/wst/trunk/ws_helper/command_line_parser.pas
index 957735b08..df6eda388 100644
--- a/wst/trunk/ws_helper/command_line_parser.pas
+++ b/wst/trunk/ws_helper/command_line_parser.pas
@@ -16,11 +16,9 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
}
-
+{$INCLUDE wst_global.inc}
unit command_line_parser;
-{$mode objfpc}{$H+}
-
interface
uses
@@ -29,7 +27,7 @@ uses
Type
TComandLineOption = (
- cloInterface, cloProxy, cloImp, cloBinder,
+ cloInterface, cloProxy, cloImp, cloBinder, cloWsdl,
cloOutPutDirRelative, cloOutPutDirAbsolute
);
TComandLineOptions = set of TComandLineOption;
@@ -55,7 +53,7 @@ begin
AAppOptions := [];
c := #0;
repeat
- c := GetOpt('u:pibo:a:');
+ c := GetOpt('u:pibo:a:w');
case c of
'u' :
begin
@@ -75,6 +73,7 @@ begin
Include(AAppOptions,cloOutPutDirAbsolute);
OptionsArgsMAP[cloOutPutDirAbsolute] := OptArg;
End;
+ 'w' : Include(AAppOptions,cloWsdl);
end;
until ( c = EndOfOptions );
Result := OptInd;
diff --git a/wst/trunk/ws_helper/delphi/test_amazon.bat b/wst/trunk/ws_helper/delphi/test_amazon.bat
new file mode 100644
index 000000000..4224d02b1
--- /dev/null
+++ b/wst/trunk/ws_helper/delphi/test_amazon.bat
@@ -0,0 +1 @@
+ws_helper -uA -i -p -b -a"C:\Programmes\lazarus\wst\trunk\tests\files" "C:\Programmes\lazarus\utils\amazon\AWSECommerceService.wsdl" >test_amazon_res.txt
\ No newline at end of file
diff --git a/wst/trunk/ws_helper/delphi/test_ebay.bat b/wst/trunk/ws_helper/delphi/test_ebay.bat
new file mode 100644
index 000000000..bc5fabd84
--- /dev/null
+++ b/wst/trunk/ws_helper/delphi/test_ebay.bat
@@ -0,0 +1 @@
+ws_helper -uA -i -p -b -a"C:\Programmes\lazarus\wst\trunk\tests\files" "C:\Programmes\lazarus\utils\eBayLast\eBayWSDL.WSDL" >test_res_eBayWSDL.txt
\ No newline at end of file
diff --git a/wst/trunk/ws_helper/delphi/test_googleSearch.bat b/wst/trunk/ws_helper/delphi/test_googleSearch.bat
new file mode 100644
index 000000000..b93e8b966
--- /dev/null
+++ b/wst/trunk/ws_helper/delphi/test_googleSearch.bat
@@ -0,0 +1 @@
+ws_helper -u -i -p -b -a"C:\Programmes\lazarus\wst\trunk\tests\files" "C:\Programmes\lazarus\utils\googleapi\GoogleSearch.wsdl" >test_res_GoogleSearch.txt
\ No newline at end of file
diff --git a/wst/trunk/ws_helper/delphi/ws_helper.cfg b/wst/trunk/ws_helper/delphi/ws_helper.cfg
new file mode 100644
index 000000000..e122280e5
--- /dev/null
+++ b/wst/trunk/ws_helper/delphi/ws_helper.cfg
@@ -0,0 +1,43 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-N"obj"
+-LE"c:\program files\borland\delphi7\Projects\Bpl"
+-LN"c:\program files\borland\delphi7\Projects\Bpl"
+-U"..\;..\..\;..\..\fcl-units\fcl-passrc\src;..\..\fcl-units\rtl\inc;..\..\wst_rtti_filter"
+-O"..\;..\..\;..\..\fcl-units\fcl-passrc\src;..\..\fcl-units\rtl\inc;..\..\wst_rtti_filter"
+-I"..\;..\..\;..\..\fcl-units\fcl-passrc\src;..\..\fcl-units\rtl\inc;..\..\wst_rtti_filter"
+-R"..\;..\..\;..\..\fcl-units\fcl-passrc\src;..\..\fcl-units\rtl\inc;..\..\wst_rtti_filter"
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/wst/trunk/ws_helper/delphi/ws_helper.dof b/wst/trunk/ws_helper/delphi/ws_helper.dof
new file mode 100644
index 000000000..b8be73107
--- /dev/null
+++ b/wst/trunk/ws_helper/delphi/ws_helper.dof
@@ -0,0 +1,162 @@
+[FileVersion]
+Version=7.0
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=1
+SymbolLibrary=1
+SymbolPlatform=1
+UnitLibrary=1
+UnitPlatform=1
+UnitDeprecated=1
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=
+[Directories]
+OutputDir=
+UnitOutputDir=obj
+PackageDLLOutputDir=
+PackageDCPOutputDir=
+SearchPath=..\;..\..\;..\..\fcl-units\fcl-passrc\src;..\..\fcl-units\rtl\inc;..\..\wst_rtti_filter
+Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP;FIBDBMidas7;Jcl;JclVcl;JvCoreD7R;JvSystemD7R;JvStdCtrlsD7R;JvAppFrmD7R;JvBandsD7R;JvDBD7R;JvDlgsD7R;JvBDED7R;JvCmpD7R;JvCryptD7R;JvCtrlsD7R;JvCustomD7R;JvDockingD7R;JvDotNetCtrlsD7R;JvEDID7R;JvGlobusD7R;JvHMID7R;JvInterpreterD7R;JvJansD7R;JvManagedThreadsD7R;JvMMD7R;JvNetD7R;JvPageCompsD7R;JvPluginD7R;JvPrintPreviewD7R;JvRuntimeDesignD7R;JvTimeFrameworkD7R;JvUIBD7R;JvValidatorsD7R;JvWizardD7R;JvXPCtrlsD7R;dxForumLibD7;cxLibraryVCLD7;cxPageControlVCLD7;dxBarD7;dxComnD7;dxBarDBNavD7;dxBarExtItemsD7;dxBarExtDBItemsD7;dxsbD7;dxmdsD7;dxdbtrD7;dxtrmdD7;dxorgcD7;dxdborD7;dxEdtrD7;EQTLD7;ECQDBCD7;EQDBTLD7;EQGridD7;dxGrEdD7;dxExELD7;dxELibD7;cxEditorsVCLD7;cxGridVCLD7;dxThemeD7;cxDataD7;cxGridUtilsVCLD7;dxPSCoreD7;dxPsPrVwAdvD7;dxPSLnksD7;dxPSTeeChartD7;dxPSDBTeeChartD7;dxPSdxDBTVLnkD7;dxPSdxOCLnkD7;dxPSdxDBOCLnkD7;dxPScxGridLnkD7;dxPSTLLnkD7;qrpt
+Conditionals=
+DebugSourceDirs=C:\Programmes\lazarus\wst\trunk\fcl-units\rtl\;C:\Programmes\lazarus\wst\trunk\;C:\Programmes\lazarus\wst\trunk\fcl-units\fcl-passrc\src\
+UsePackages=0
+[Parameters]
+RunParams=-u -i -p -b -a"C:\Programmes\lazarus\wst\trunk\tests\files" "C:\Programmes\lazarus\utils\googleapi\GoogleSearch.wsdl"
+HostApplication=
+Launcher=
+UseLauncher=0
+DebugCWD=
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=C:\Program Files\Borland\Delphi7\Bin\
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1036
+CodePage=1252
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+[Excluded Packages]
+C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPSdxDBTLLnkD7.bpl=ExpressPrinting System ReportLink for ExpressQuantumDBTreeList by Developer Express Inc.
+C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPSdxDBGrLnkD7.bpl=ExpressPrinting System ReportLink for ExpressQuantumGrid by Developer Express Inc.
+C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPSdxInsLnkD7.bpl=ExpressPrinting System ReportLink for ExpressInspector by Developer Express Inc.
+C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPSdxOILnkD7.bpl=ExpressPrinting System ReportLink for ExpressRTTIInspector by Developer Express Inc.
+C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPSdxMVLnkD7.bpl=ExpressPrinting System ReportLink for ExpressMasterView by Developer Express Inc.
+C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPSdxFCLnkD7.bpl=ExpressPrinting System ReportLinks for ExpressFlowChart by Developer Express Inc.
+C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPScxSSLnkD7.bpl=ExpressPrinting System ReportLink for ExpressSpreadSheet by Developer Express Inc.
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=C:\Programmes\lazarus\wst\trunk\fcl-units\rtl\;C:\Programmes\lazarus\wst\trunk\;C:\Programmes\lazarus\wst\trunk\fcl-units\fcl-passrc\src\
+[HistoryLists\hlUnitAliases]
+Count=1
+Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+[HistoryLists\hlSearchPath]
+Count=7
+Item0=..\;..\..\;..\..\fcl-units\fcl-passrc\src;..\..\fcl-units\rtl\inc;..\..\wst_rtti_filter
+Item1=..\;..\..\;..\..\fcl-units\fcl-passrc\src;..\..\fcl-units\rtl;..\..\wst_rtti_filter
+Item2=..\;..\..\;..\..\fcl-units\fcl-passrc\src;..\..\fcl-units\rtl
+Item3=..\;..\..\;..\..\fcl-units\fcl-passrc\src
+Item4=..\;..\..\;..\..\fcl-passrc\src
+Item5=..\;..\..\
+Item6=..\
+[HistoryLists\hlUnitOutputDirectory]
+Count=1
+Item0=obj
diff --git a/wst/trunk/ws_helper/delphi/ws_helper.dpr b/wst/trunk/ws_helper/delphi/ws_helper.dpr
new file mode 100644
index 000000000..f51ff7698
--- /dev/null
+++ b/wst/trunk/ws_helper/delphi/ws_helper.dpr
@@ -0,0 +1,46 @@
+{
+ This unit is part of the Web Service Toolkit
+ Copyright (c) 2006 by Inoussa OUEDRAOGO
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+}
+program ws_helper;
+
+{$APPTYPE CONSOLE}
+
+uses
+ delphi_init_com,
+ Classes,
+ SysUtils,
+ wst_resources_utils,
+ generator,
+ wsdl_generator,
+ parserutils,
+ source_utils,
+ command_line_parser,
+ metadata_generator,
+ binary_streamer,
+ XMLDoc,
+ XMLIntf,
+ wst_delphi_xml,
+ wsdl2pas_imp,
+ pastree,
+ pparser,
+ pascal_parser_intf,
+ logger_intf;
+
+{$INCLUDE ws_helper_prog.inc}
+
+
diff --git a/wst/trunk/ws_helper/generator.pas b/wst/trunk/ws_helper/generator.pas
index 64a6c9a58..3ff123303 100644
--- a/wst/trunk/ws_helper/generator.pas
+++ b/wst/trunk/ws_helper/generator.pas
@@ -25,7 +25,7 @@ interface
uses
Classes, SysUtils,
PasTree,
- pascal_parser_intf, source_utils;
+ pascal_parser_intf, source_utils, wst_types;
const
sWST_EXTENSION = 'wst';
@@ -842,25 +842,29 @@ Var
if AMthd.InheritsFrom(TPasFunction) then begin
resElt := TPasFunctionType(AMthd.ProcType).ResultEl;
if SymbolTable.IsInitNeed(resElt.ResultType) then begin
- if ( SymbolTable.IsOfType(resElt.ResultType,TPasClassType) and
+ WriteLn('Fillchar(%s,SizeOf(%s),#0);',[RETURN_VAL_NAME,resElt.ResultType.Name]);
+ {if ( SymbolTable.IsOfType(resElt.ResultType,TPasClassType) and
( TPasClassType(GetUltimeType(resElt.ResultType)).ObjKind = okClass )
) or
SymbolTable.IsOfType(resElt.ResultType,TPasArrayType)
then begin
WriteLn('TObject(%s) := nil;',[RETURN_VAL_NAME]);
+ end else if SymbolTable.IsOfType(resElt.ResultType,TPasRecordType) then begin
+ WriteLn('Fillchar(%s,SizeOf(%s),#0);',[RETURN_VAL_NAME,resElt.ResultType.Name]);
end else begin
WriteLn('if ( PTypeInfo(TypeInfo(%s))^.Kind in [tkClass,tkInterface] ) then',[resElt.ResultType.Name]);
IncIndent();
WriteLn('Pointer(%s) := nil;',[RETURN_VAL_NAME]);
DecIndent();
- end;
+ end;}
end;
end;
for k := 0 to Pred(prmCnt) do begin
prm := TPasArgument(prms[k]);
if SymbolTable.IsInitNeed(prm.ArgType) then begin
- if SymbolTable.IsOfType(prm.ArgType,TPasClassType) or
+ WriteLn('Fillchar(%s,SizeOf(%s),#0);',[prm.Name,prm.ArgType.Name]);
+ {if SymbolTable.IsOfType(prm.ArgType,TPasClassType) or
SymbolTable.IsOfType(prm.ArgType,TPasArrayType)
then begin
WriteLn('TObject(%s) := nil;',[prm.Name]);
@@ -869,7 +873,7 @@ Var
IncIndent();
WriteLn('Pointer(%s) := nil;',[prm.Name]);
DecIndent();
- end;
+ end;}
end;
end;
@@ -2120,7 +2124,6 @@ var
var
itm : TPasVariable;
k, c : PtrInt;
- offsetLine, typeLine : string;
begin
c := ASymbol.Members.Count;
for k := 0 to Pred(c) do begin
@@ -2285,6 +2288,70 @@ begin
end;
procedure TInftGenerator.Execute();
+
+ procedure SortRecords(AList : TList);
+ var
+ j, k : PtrInt;
+ ordr_ls, mbrLs, locLs : TList;
+ locMemberType : TPasType;
+ rec, locRec : TPasRecordType;
+ locStack : TStack;
+ locElt : TPasElement;
+ begin
+ if ( AList.Count > 0 ) then begin
+ locStack := nil;
+ locLs := nil;
+ ordr_ls := TList.Create();
+ try
+ locStack := TStack.Create();
+ locLs := TList.Create();
+ for j := 0 to Pred(AList.Count) do begin
+ rec := TPasRecordType(AList[j]);
+ if ( ordr_ls.IndexOf(rec) = -1 ) then begin
+ locStack.Push(rec);
+ while locStack.AtLeast(1) do begin
+ locLs.Clear();
+ locRec := TPasRecordType(locStack.Pop());
+ if ( ordr_ls.IndexOf(locRec) = -1 ) then begin
+ mbrLs := locRec.Members;
+ for k := 0 to Pred(mbrLs.Count) do begin
+ locMemberType := TPasVariable(mbrLs[k]).VarType;
+ if locMemberType.InheritsFrom(TPasUnresolvedTypeRef) then begin
+ locElt := SymbolTable.FindElement(SymbolTable.GetExternalName(locMemberType));
+ if Assigned(locElt) and locElt.InheritsFrom(TPasType) then begin
+ locMemberType := locElt as TPasType;
+ end;
+ end;
+ if locMemberType.InheritsFrom(TPasRecordType) then begin
+ if ( ordr_ls.IndexOf(locMemberType) = -1 ) then
+ locLs.Add(locMemberType);
+ end;
+ end; //for
+ if ( locLs.Count > 0 ) then begin
+ locStack.Push(locRec);
+ for k := 0 to Pred(locLs.Count) do begin
+ locStack.Push(locLs[k]);
+ end;
+ end else begin
+ ordr_ls.Add(locRec);
+ end;
+ end;
+ end;
+ end;
+ end;
+ Assert(not locStack.AtLeast(1));
+ AList.Clear();
+ for k := 0 to Pred(ordr_ls.Count) do begin
+ AList.Add(ordr_ls[k]);
+ end;
+ finally
+ FreeAndNil(locLs);
+ FreeAndNil(locStack);
+ FreeAndNil(ordr_ls);
+ end;
+ end;
+ end;
+
var
i,c, j, k : PtrInt;
clssTyp : TPasClassType;
@@ -2293,8 +2360,10 @@ var
typeList : TList;
elt : TPasElement;
classAncestor : TPasElement;
+ tmpList : TList;
begin
objLst := nil;
+ tmpList := nil;
gnrClssLst := TObjectList.Create(False);
try
GenerateUnitHeader();
@@ -2334,10 +2403,17 @@ begin
end;
end;
+ tmpList := TList.Create();
for i := 0 to c do begin
elt := TPasElement(typeList[i]);
if elt.InheritsFrom(TPasRecordType) then begin
- GenerateRecord(TPasRecordType(elt));
+ tmpList.Add(elt);
+ end;
+ end;
+ if ( tmpList.Count > 0 ) then begin
+ SortRecords(tmpList);
+ for i := 0 to Pred(tmpList.Count) do begin
+ GenerateRecord(TPasRecordType(tmpList[i]));
end;
end;
@@ -2355,9 +2431,7 @@ begin
if elt.InheritsFrom(TPasClassType) and ( TPasClassType(elt).ObjKind = okClass ) then begin
clssTyp := TPasClassType(elt);
if ( gnrClssLst.IndexOf(clssTyp) = -1 ) then begin
- while ( objLst.Count > 0 ) do begin
- objLst.Clear();
- end;
+ objLst.Clear();
while Assigned(clssTyp) do begin
objLst.Add(clssTyp);
classAncestor := clssTyp.AncestorType;
@@ -2412,6 +2486,7 @@ begin
FImpStream := nil;
FImpTempStream := nil;
finally
+ FreeAndNil(tmpList);
FreeAndNil(objLst);
FreeAndNil(gnrClssLst);
end;
diff --git a/wst/trunk/ws_helper/logger_intf.pas b/wst/trunk/ws_helper/logger_intf.pas
index 896da5904..b0605fc64 100644
--- a/wst/trunk/ws_helper/logger_intf.pas
+++ b/wst/trunk/ws_helper/logger_intf.pas
@@ -10,10 +10,9 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
}
+{$INCLUDE wst_global.inc}
unit logger_intf;
-{$mode objfpc}{$H+}
-
interface
uses
diff --git a/wst/trunk/ws_helper/parserutils.pas b/wst/trunk/ws_helper/parserutils.pas
index 18ea4d96d..c028e8e3f 100644
--- a/wst/trunk/ws_helper/parserutils.pas
+++ b/wst/trunk/ws_helper/parserutils.pas
@@ -16,11 +16,9 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
}
-
+{$INCLUDE wst_global.inc}
unit parserutils;
-{$mode objfpc}{$H+}
-
interface
uses
diff --git a/wst/trunk/ws_helper/pascal_parser_intf.pas b/wst/trunk/ws_helper/pascal_parser_intf.pas
index 730df3601..63bb42966 100644
--- a/wst/trunk/ws_helper/pascal_parser_intf.pas
+++ b/wst/trunk/ws_helper/pascal_parser_intf.pas
@@ -10,10 +10,9 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
}
+{$INCLUDE wst_global.inc}
unit pascal_parser_intf;
-{$mode objfpc}{$H+}
-
interface
uses
@@ -284,6 +283,8 @@ begin
loc_TBaseComplexSimpleContentRemotable := AddClassDef(Result,'TBaseComplexSimpleContentRemotable','TAbstractComplexRemotable',TPasNativeClassType);
(AContainer.FindElementInModule('TComplexInt16SContentRemotable',Result) as TPasClassType).AncestorType := loc_TBaseComplexSimpleContentRemotable;
(AContainer.FindElementInModule('TComplexFloatDoubleContentRemotable',Result) as TPasClassType).AncestorType := loc_TBaseComplexSimpleContentRemotable;
+ loc_TBaseComplexSimpleContentRemotable.AddRef();
+ loc_TBaseComplexSimpleContentRemotable.AddRef();
AddClassDef(Result,'TBaseComplexRemotable','TAbstractComplexRemotable',TPasNativeClassType);
AddClassDef(Result,'THeaderBlock','TBaseComplexRemotable',TPasNativeClassType);
@@ -631,7 +632,8 @@ function TwstPasTreeContainer.IsInitNeed(AType : TPasType) : Boolean;
begin
Result := IsOfType(AType,TPasClassType) or
IsOfType(AType,TPasPointerType) or
- IsOfType(AType,TPasArrayType);
+ IsOfType(AType,TPasArrayType) or
+ IsOfType(AType,TPasRecordType);
end;
procedure TwstPasTreeContainer.SetCurrentModule(AModule: TPasModule);
diff --git a/wst/trunk/ws_helper/source_utils.pas b/wst/trunk/ws_helper/source_utils.pas
index e5ad5783a..d61a61ac1 100644
--- a/wst/trunk/ws_helper/source_utils.pas
+++ b/wst/trunk/ws_helper/source_utils.pas
@@ -16,11 +16,9 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
}
-
+{$INCLUDE wst_global.inc}
unit source_utils;
-{$mode objfpc}{$H+}
-
interface
uses
diff --git a/wst/trunk/ws_helper/test_ebay.bat b/wst/trunk/ws_helper/test_ebay.bat
index e65bc8622..712f80bc3 100644
--- a/wst/trunk/ws_helper/test_ebay.bat
+++ b/wst/trunk/ws_helper/test_ebay.bat
@@ -1 +1 @@
-C:\Programmes\lazarus\wst\ws_helper\ws_helper -uA -i -p -b -a"C:\Programmes\lazarus\wst\tests\files" "C:\Programmes\lazarus\utils\eBayLast\eBayWSDL.WSDL" >test_res_eBayWSDL.txt
\ No newline at end of file
+ws_helper -uA -i -p -b -a"C:\Programmes\lazarus\wst\trunk\tests\files" "C:\Programmes\lazarus\utils\eBayLast\eBayWSDL.WSDL" >test_res_eBayWSDL.txt
\ No newline at end of file
diff --git a/wst/trunk/ws_helper/ws_helper.lpi b/wst/trunk/ws_helper/ws_helper.lpi
index 1a5375e78..9541fb9dc 100644
--- a/wst/trunk/ws_helper/ws_helper.lpi
+++ b/wst/trunk/ws_helper/ws_helper.lpi
@@ -12,7 +12,7 @@
-
+
@@ -33,13 +33,13 @@
-
+
-
-
+
+
@@ -50,7 +50,7 @@
-
+
@@ -58,9 +58,9 @@
-
-
-
+
+
+
@@ -75,20 +75,18 @@
-
-
-
+
-
+
@@ -96,44 +94,48 @@
-
-
+
+
+
+
-
+
-
+
-
+
-
-
+
+
+
+
-
-
+
+
@@ -149,9 +151,11 @@
-
+
+
+
@@ -166,44 +170,42 @@
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
-
+
-
+
-
-
-
+
+
+
@@ -216,84 +218,84 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
+
+
+
+
@@ -301,214 +303,307 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
diff --git a/wst/trunk/ws_helper/ws_helper.pas b/wst/trunk/ws_helper/ws_helper.pas
index b113d579e..6074de308 100644
--- a/wst/trunk/ws_helper/ws_helper.pas
+++ b/wst/trunk/ws_helper/ws_helper.pas
@@ -23,231 +23,24 @@ program ws_helper;
{$mode objfpc}{$H+}
uses
- Classes, SysUtils, wst_resources_utils,
- //parserdefs, ws_parser,
- generator, parserutils, source_utils,
- command_line_parser, metadata_generator, binary_streamer,
- DOM, xmlread, wsdl2pas_imp,
-
- pastree, pparser, pascal_parser_intf, logger_intf;
-
-resourcestring
- sUSAGE = 'ws_helper [-uMODE] [-p] [-b] [-i] [-oPATH] 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 +
- ' -o PATH Relative output directory' + sNEW_LINE +
- ' -a PATH Absolute output directory' + sNEW_LINE;
- sCOPYRIGHT = 'ws_helper, Web Service Toolkit 0.4 Copyright (c) 2006, 2007 by Inoussa OUEDRAOGO';
-
-const
- sWST_META = 'wst_meta';
+ Classes,
+ SysUtils,
+ wst_resources_utils,
+ generator,
+ wsdl_generator,
+ parserutils,
+ source_utils,
+ command_line_parser,
+ metadata_generator,
+ binary_streamer,
+ DOM,
+ XMLWrite,
+ XMLRead,
+ wst_fpc_xml,
+ wsdl2pas_imp,
+ pastree,
+ pparser,
+ pascal_parser_intf,
+ logger_intf;
-type
- TSourceFileType = ( sftPascal, sftWSDL );
-
-var
- inFileName,outPath,errStr : string;
- srcMngr : ISourceManager;
- AppOptions : TComandLineOptions;
- NextParam : Integer;
- sourceType : TSourceFileType;
- symtable : TwstPasTreeContainer;
- parserMode : TParserMode;
-
- osParam, targetParam : string;
-
- function ProcessCmdLine():boolean;
- begin
- NextParam := ParseCmdLineOptions(AppOptions);
- if ( NextParam <= Paramcount ) then begin
- inFileName := ParamStr(NextParam);
- end;
- Result := FileExists(ExpandFileName(inFileName));
- if AnsiSameText(ExtractFileExt(inFileName),'.PAS') or
- AnsiSameText(ExtractFileExt(inFileName),'.PP')
- then begin
- sourceType := sftPascal;
- end else if AnsiSameText(ExtractFileExt(inFileName),'.WSDL') then begin
- sourceType := sftWSDL;
- end;
- if Result then begin
- if ( AppOptions = [] ) then begin
- Include(AppOptions,cloProxy);
- end;
- end else begin
- errStr := Format('File not Found : "%s"',[inFileName]);
- end;
- if ( cloOutPutDirAbsolute in AppOptions ) then begin
- outPath := Trim(GetOptionArg(cloOutPutDirAbsolute));
- end else begin
- outPath := ExtractFilePath(inFileName);
- if ( cloOutPutDirRelative in AppOptions ) then begin
- outPath := outPath + Trim(GetOptionArg(cloOutPutDirRelative));
- end;
- end;
- outPath := IncludeTrailingPathDelimiter(outPath);
- parserMode := pmUsedTypes;
- if AnsiSameText('A',Trim(GetOptionArg(cloInterface))) then begin
- parserMode := pmAllTypes;
- end;
- end;
-
- function GenerateSymbolTable() : Boolean ;
-
- procedure ParsePascalFile();
- begin
- ParseSource(symtable,inFileName,osParam,targetParam);
- end;
-
- procedure ParseWsdlFile();
- var
- locDoc : TXMLDocument;
- prsr : TWsdlParser;
- begin
- prsr := nil;
- ReadXMLFile(locDoc,inFileName);
- try
- prsr := TWsdlParser.Create(locDoc,symtable);
- prsr.Parse(parserMode,ChangeFileExt(ExtractFileName(inFileName),''));
- finally
- FreeAndNil(prsr);
- FreeAndNil(locDoc);
- end;
- end;
-
- begin
- try
- WriteLn('Parsing the file : ', inFileName);
- case sourceType of
- sftPascal : ParsePascalFile();
- sftWSDL : ParseWsdlFile();
- end;
- Result := True;
- except
- on e : Exception do begin
- Result := False;
- errStr := e.Message;
- end;
- end;
- end;
-
- function ProcessFile():Boolean;
- Var
- mtdaFS: TMemoryStream;
- g : TBaseGenerator;
- mg : TMetadataGenerator;
- rsrcStrm : TMemoryStream;
- begin
- Result := False;
- rsrcStrm := nil;
- mtdaFS := nil;
- mg := nil;
- g := Nil;
- try
- try
- if ( cloInterface in AppOptions ) then begin
- WriteLn('Interface file generation...');
- g := TInftGenerator.Create(symtable,srcMngr);
- g.Execute();
- FreeAndNil(g);
- end;
-
- If ( cloProxy in AppOptions ) Then Begin
- WriteLn('Proxy file generation...');
- g := TProxyGenerator.Create(symtable,srcMngr);
- g.Execute();
- FreeAndNil(g);
- End;
-
- If ( cloBinder in AppOptions ) Then Begin
- WriteLn('Binder file generation...');
- g := TBinderGenerator.Create(symtable,srcMngr);
- g.Execute();
- FreeAndNil(g);
- End;
-
- If ( cloImp in AppOptions ) Then Begin
- WriteLn('Implementation file generation...');
- g := TImplementationGenerator.Create(symtable,srcMngr);
- g.Execute();
- FreeAndNil(g);
- End;
-
- if ( [cloBinder,cloProxy]*AppOptions <> [] ) then begin
- WriteLn('Metadata file generation...');
- mtdaFS := TMemoryStream.Create();
- mg := TMetadataGenerator.Create(symtable,CreateBinaryWriter(mtdaFS));
- mg.Execute();
- mtdaFS.SaveToFile(ChangeFileExt(inFileName,'.' + sWST_META));
- rsrcStrm := TMemoryStream.Create();
- mtdaFS.Position := 0;
- BinToWstRessource(UpperCase(symtable.CurrentModule.Name),mtdaFS,rsrcStrm);
- rsrcStrm.SaveToFile(outPath + ChangeFileExt(ExtractFileName(inFileName),'.' + sWST_EXTENSION));
- end;
-
- Result := True;
- except
- on E : Exception do begin
- Result := False;
- errStr := E.Message;
- end;
- end;
- finally
- rsrcStrm.Free();
- mg.Free();;
- mtdaFS.Free();;
- g.Free();
- end;
- end;
-
-
-begin
- osParam := 'windows';
- targetParam := 'x86';
-
- SetLogger(TSimpleConsoleLogger.Create());
-
- symtable := nil;
- try
- try
- Writeln(sCOPYRIGHT);
- If ( ParamCount = 0 ) Then Begin
- WriteLn(sUSAGE);
- Exit;
- End;
-
- if not ProcessCmdLine() then begin
- WriteLn(errStr);
- Exit;
- end;
- symtable := TwstPasTreeContainer.Create();//ChangeFileExt(ExtractFileName(inFileName),'')
- srcMngr := CreateSourceManager();
-
- if not GenerateSymbolTable() then begin
- WriteLn(errStr);
- Exit;
- end;
-
- If Not ProcessFile() Then Begin
- WriteLn(errStr);
- Exit;
- End;
-
- srcMngr.SaveToFile(outPath);
- if ( GetLogger().GetMessageCount(mtError) = 0 ) then begin
- WriteLn(Format('File "%s" parsed succesfully.',[inFileName]));
- end else begin
- WriteLn(Format('Paring complete with %d error(s).',[GetLogger().GetMessageCount(mtError)]));
- end;
- except
- on e:exception Do
- Writeln('Exception : ' + e.Message)
- end;
- finally
- FreeAndNil(symtable);
- SetLogger(nil);
- end;
-end.
+{$INCLUDE ws_helper_prog.inc}
diff --git a/wst/trunk/ws_helper/wsdl2pas_imp.pas b/wst/trunk/ws_helper/wsdl2pas_imp.pas
index ee6737463..25851b760 100644
--- a/wst/trunk/ws_helper/wsdl2pas_imp.pas
+++ b/wst/trunk/ws_helper/wsdl2pas_imp.pas
@@ -10,14 +10,14 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
}
+{$INCLUDE wst_global.inc}
unit wsdl2pas_imp;
-{$mode objfpc}{$H+}
-
interface
uses
- Classes, SysUtils, DOM,
+ Classes, SysUtils,
+ {$IFNDEF FPC}xmldom, wst_delphi_xml{$ELSE}DOM{$ENDIF},
cursor_intf, rtti_filters,
pastree, pascal_parser_intf, logger_intf;
@@ -432,8 +432,7 @@ begin
FWsdlShortNames.Clear();
locAttCursor := CreateAttributesCursor(FDoc.DocumentElement,cetRttiNode);
- FChildCursor := TDOMNodeListCursor.Create(FDoc.DocumentElement.GetChildNodes,faFreeOnDestroy) ;
- FChildCursor := TDOMNodeRttiExposerCursor.Create(FChildCursor);
+ FChildCursor := CreateChildrenCursor(FDoc.DocumentElement,cetRttiNode);
ExtractNameSpaceShortNames(locAttCursor,FWsdlShortNames,s_wsdl,nfaRaiseException,True);
ExtractNameSpaceShortNames(locAttCursor,FSoapShortNames,s_soap,nfaRaiseException,False);
@@ -1899,7 +1898,7 @@ var
end;
end else begin
locTypeInternalName := locTypeName;
- if locIsRefElement or AnsiSameText(locInternalEltName,locInternalEltName) then begin
+ if locIsRefElement or AnsiSameText(locTypeInternalName,locInternalEltName) then begin
locTypeInternalName := locTypeInternalName + '_Type';
end;
if IsReservedKeyWord(locTypeInternalName) then begin
diff --git a/wst/trunk/type_lib_edtr/wsdl_generator.pas b/wst/trunk/ws_helper/wsdl_generator.pas
similarity index 97%
rename from wst/trunk/type_lib_edtr/wsdl_generator.pas
rename to wst/trunk/ws_helper/wsdl_generator.pas
index 1a533f2b9..dc5f14917 100644
--- a/wst/trunk/type_lib_edtr/wsdl_generator.pas
+++ b/wst/trunk/ws_helper/wsdl_generator.pas
@@ -17,7 +17,7 @@ interface
uses
Classes, SysUtils, TypInfo,
- DOM,
+ {$IFNDEF FPC}xmldom, wst_delphi_xml{$ELSE}DOM{$ENDIF},
pastree, pascal_parser_intf;
type
@@ -129,9 +129,11 @@ type
procedure GenerateWSDL(ASymbolTable : TwstPasTreeContainer; ADoc : TDOMDocument);
function GetWsdlTypeHandlerRegistry():IWsdlTypeHandlerRegistry;
-
+
implementation
-uses Contnrs;
+uses
+ {$IFDEF FPC}wst_fpc_xml,{$ENDIF}
+ Contnrs ;
const
sWSDL_NS = 'http://schemas.xmlsoap.org/wsdl/';
@@ -149,7 +151,7 @@ const
sSOAP_RPC = 'rpc';
sSOAP_TRANSPORT = 'http://schemas.xmlsoap.org/soap/http';
sSOAP_USE = 'use';
-
+
sADDRESS = 'address';
sATTRIBUTE = 'attribute';
sBASE = 'base';
@@ -341,7 +343,7 @@ begin
if FindAttributeByValueInNode(ANameSpace,AWsdlDocument.DocumentElement,Result,0,sXMLNS) then begin
Result := Copy(Result,Length(sXMLNS+':')+1,MaxInt);
end else begin
- Result := Format('ns%d',[AWsdlDocument.DocumentElement.Attributes.{$IFNDEF FPC_211}Count{$ELSE}Length{$ENDIF}]) ;
+ Result := Format('ns%d',[GetNodeListCount(AWsdlDocument.DocumentElement.Attributes)]) ;
AWsdlDocument.DocumentElement.SetAttribute(Format('%s:%s',[sXMLNS,Result]),ANameSpace);
end;
end;
@@ -688,7 +690,7 @@ begin
typItm := ASymbol as TPasClassType;
if Assigned(typItm) then begin
GetNameSpaceShortName(AContainer.GetExternalName(AContainer.CurrentModule) ,AWsdlDocument);
- defTypesNode := AWsdlDocument.DocumentElement.FindNode(sWSDL_TYPES) as TDOMElement;
+ defTypesNode := FindNode(AWsdlDocument.DocumentElement,sWSDL_TYPES) as TDOMElement;
Assert(Assigned(defTypesNode));
defSchemaNode := defTypesNode.FirstChild as TDOMElement;
@@ -811,10 +813,10 @@ begin
if FindAttributeByValueInNode(unitExternalName,AWsdlDocument.DocumentElement,ns_shortName) then begin
ns_shortName := Copy(ns_shortName,Length(sXMLNS+':')+1,MaxInt);
end else begin
- ns_shortName := Format('ns%d',[AWsdlDocument.DocumentElement.Attributes.{$IFNDEF FPC_211}Count{$ELSE}Length{$ENDIF}]) ;
+ ns_shortName := Format('ns%d',[GetNodeListCount(AWsdlDocument.DocumentElement.Attributes)]) ;
AWsdlDocument.DocumentElement.SetAttribute(Format('%s:%s',[sXMLNS,ns_shortName]),unitExternalName);
end;
- defTypesNode := AWsdlDocument.DocumentElement.FindNode(sWSDL_TYPES) as TDOMElement;
+ defTypesNode := FindNode(AWsdlDocument.DocumentElement,sWSDL_TYPES) as TDOMElement;
Assert(Assigned(defTypesNode));
defSchemaNode := defTypesNode.FirstChild as TDOMElement;
@@ -867,7 +869,7 @@ procedure TBaseArrayRemotable_TypeHandler.Generate(
if FindAttributeByValueInNode(ANameSpace,AWsdlDocument.DocumentElement,Result,0,sXMLNS) then begin
Result := Copy(Result,Length(sXMLNS+':')+1,MaxInt);
end else begin
- Result := Format('ns%d',[AWsdlDocument.DocumentElement.Attributes.{$IFNDEF FPC_211}Count{$ELSE}Length{$ENDIF}]) ;
+ Result := Format('ns%d',[GetNodeListCount(AWsdlDocument.DocumentElement.Attributes)]) ;
AWsdlDocument.DocumentElement.SetAttribute(Format('%s:%s',[sXMLNS,Result]),ANameSpace);
end;
end;
@@ -886,7 +888,7 @@ begin
if Assigned(typItm) then begin
unitExternalName := GetTypeNameSpace(AContainer,typItm);
GetNameSpaceShortName(unitExternalName);
- defTypesNode := AWsdlDocument.DocumentElement.FindNode(sWSDL_TYPES) as TDOMElement;
+ defTypesNode := FindNode(AWsdlDocument.DocumentElement,sWSDL_TYPES) as TDOMElement;
Assert(Assigned(defTypesNode));
defSchemaNode := defTypesNode.FirstChild as TDOMElement;
@@ -961,10 +963,10 @@ begin
if FindAttributeByValueInNode(unitExternalName,AWsdlDocument.DocumentElement,ns_shortName) then begin
ns_shortName := Copy(ns_shortName,Length(sXMLNS+':')+1,MaxInt);
end else begin
- ns_shortName := Format('ns%d',[AWsdlDocument.DocumentElement.Attributes.{$IFNDEF FPC_211}Count{$ELSE}Length{$ENDIF}]) ;
+ ns_shortName := Format('ns%d',[GetNodeListCount(AWsdlDocument.DocumentElement.Attributes)]) ;
AWsdlDocument.DocumentElement.SetAttribute(Format('%s:%s',[sXMLNS,ns_shortName]),unitExternalName);
end;
- defTypesNode := AWsdlDocument.DocumentElement.FindNode(sWSDL_TYPES) as TDOMElement;
+ defTypesNode := FindNode(AWsdlDocument.DocumentElement,sWSDL_TYPES) as TDOMElement;
Assert(Assigned(defTypesNode));
defSchemaNode := defTypesNode.FirstChild as TDOMElement;
@@ -1015,7 +1017,7 @@ begin
typItm := ASymbol as TPasRecordType;
if Assigned(typItm) then begin
GetNameSpaceShortName(AContainer.GetExternalName(AContainer.CurrentModule) ,AWsdlDocument);
- defTypesNode := AWsdlDocument.DocumentElement.FindNode(sWSDL_TYPES) as TDOMElement;
+ defTypesNode := FindNode(AWsdlDocument.DocumentElement,sWSDL_TYPES) as TDOMElement;
Assert(Assigned(defTypesNode));
defSchemaNode := defTypesNode.FirstChild as TDOMElement;
diff --git a/wst/trunk/ws_helper/wst_resources_utils.pas b/wst/trunk/ws_helper/wst_resources_utils.pas
index 9763e023e..45f9c7c50 100644
--- a/wst/trunk/ws_helper/wst_resources_utils.pas
+++ b/wst/trunk/ws_helper/wst_resources_utils.pas
@@ -1,7 +1,6 @@
+{$INCLUDE wst_global.inc}
unit wst_resources_utils;
-{$mode objfpc}{$H+}
-
interface
uses
diff --git a/wst/trunk/wst_delphi_xml.pas b/wst/trunk/wst_delphi_xml.pas
index 60715e5a5..3bfccbd0c 100644
--- a/wst/trunk/wst_delphi_xml.pas
+++ b/wst/trunk/wst_delphi_xml.pas
@@ -12,7 +12,8 @@ type
TDOMNode = IDOMNode;
TDOMNodeList = IDOMNodeList;
TDOMNamedNodeMap = IDOMNamedNodeMap;
- TXMLDocument = IDOMDocument;
+ TDOMDocument = IDOMDocument;
+ TXMLDocument = TDOMDocument;
TDOMElement = IDOMElement;
function FindNode(ANode : TDOMNode; const ANodeName : string):TDOMNode;
@@ -23,8 +24,12 @@ type
procedure ReleaseDomNode(var ADomNode : TXMLDocument);overload;
function CreateDoc() : TXMLDocument ;
- procedure WriteXMLFile(ADoc : TXMLDocument; AStream : TStream);
- procedure ReadXMLFile(out ADoc : TXMLDocument; AStream : TStream);
+ procedure WriteXML(Element: TDOMNode; const AFileName: String);overload;
+ procedure WriteXML(Element: TDOMNode; AStream: TStream); overload;
+ procedure WriteXMLFile(doc: TXMLDocument; const AFileName: String); overload;
+ procedure WriteXMLFile(ADoc : TXMLDocument; AStream : TStream);overload;
+ procedure ReadXMLFile(out ADoc : TXMLDocument; AStream : TStream);overload;
+ procedure ReadXMLFile(out ADoc: TXMLDocument; const AFilename: String);overload;
function NodeToBuffer(ANode : TDOMNode):string ;
function FilterList(const ALIst : IDOMNodeList; const ANodeName : widestring):IDOMNodeList ;
@@ -50,17 +55,52 @@ begin
end;
end;
+procedure WriteXMLFile(doc: TXMLDocument; const AFileName: String);
+var
+ fs: TFileStream;
+begin
+ fs := TFileStream.Create(AFileName, fmCreate);
+ try
+ WriteXMLFile(doc, fs);
+ finally
+ fs.Free;
+ end;
+end;
+
procedure WriteXMLFile(ADoc : TXMLDocument; AStream : TStream);
begin
(ADoc as IDOMPersist).saveToStream(AStream);
end;
+procedure WriteXML(Element: TDOMNode; const AFileName: String);
+begin
+ WriteXMLFile(TXMLDocument(Element), AFileName);
+end;
+
+procedure WriteXML(Element: TDOMNode; AStream: TStream);
+begin
+ WriteXMLFile(TXMLDocument(Element), AStream);
+end;
+
procedure ReadXMLFile(out ADoc : TXMLDocument; AStream : TStream);
begin
ADoc := CreateDoc();
(ADoc as IDOMPersist).loadFromStream(AStream);
end;
+procedure ReadXMLFile(out ADoc: TXMLDocument; const AFilename: String);
+var
+ FileStream: TStream;
+begin
+ ADoc := nil;
+ FileStream := TFileStream.Create(AFilename, fmOpenRead+fmShareDenyWrite);
+ try
+ ReadXMLFile(ADoc, FileStream);
+ finally
+ FileStream.Free;
+ end;
+end;
+
function GetNodeItemsCount(const ANode : TDOMNode): Integer;
begin
if ANode.HasChildNodes then begin
diff --git a/wst/trunk/wst_fpc_xml.pas b/wst/trunk/wst_fpc_xml.pas
index 1c8deb0c1..a2fe17824 100644
--- a/wst/trunk/wst_fpc_xml.pas
+++ b/wst/trunk/wst_fpc_xml.pas
@@ -14,6 +14,7 @@ uses
function GetNodeListCount(ANodeList : TDOMNamedNodeMap) : Integer ;overload;{$IFDEF USE_INLINE}inline;{$ENDIF}
procedure ReleaseDomNode(ADomNode : TDOMNode);overload;{$IFDEF USE_INLINE}inline;{$ENDIF}
procedure ReleaseDomNode(ADomNode : TDOMNodeList);overload;{$IFDEF USE_INLINE}inline;{$ENDIF}
+ procedure ReleaseDomNode(ADomNode : TDOMNamedNodeMap);overload;{$IFDEF USE_INLINE}inline;{$ENDIF}
function CreateDoc() : TXMLDocument ;{$IFDEF USE_INLINE}inline;{$ENDIF}
function FindNode(ANode : TDOMNode;const ANodeName : string) : TDOMNode;{$IFDEF USE_INLINE}inline;{$ENDIF}
@@ -38,27 +39,32 @@ begin
end;
end;
-function GetNodeListCount(ANodeList : TDOMNodeList) : Integer ;overload;{$IFDEF USE_INLINE}inline;{$ENDIF}
+function GetNodeListCount(ANodeList : TDOMNodeList) : Integer ;overload;
begin
Result := ANodeList.Count;
end;
-function GetNodeListCount(ANodeList : TDOMNamedNodeMap) : Integer ;overload;{$IFDEF USE_INLINE}inline;{$ENDIF}
+function GetNodeListCount(ANodeList : TDOMNamedNodeMap) : Integer ;overload;
begin
Result := ANodeList.Length;
end;
-procedure ReleaseDomNode(ADomNode : TDOMNode);overload;{$IFDEF USE_INLINE}inline;{$ENDIF}
+procedure ReleaseDomNode(ADomNode : TDOMNode);overload;
begin
ADomNode.Free();
end;
-procedure ReleaseDomNode(ADomNode : TDOMNodeList);overload;{$IFDEF USE_INLINE}inline;{$ENDIF}
+procedure ReleaseDomNode(ADomNode : TDOMNodeList);overload;
begin
ADomNode.Release();
end;
-function CreateDoc() : TXMLDocument ;{$IFDEF USE_INLINE}inline;{$ENDIF}
+procedure ReleaseDomNode(ADomNode : TDOMNamedNodeMap);overload;
+begin
+ ADomNode.Free();
+end;
+
+function CreateDoc() : TXMLDocument ;
begin
Result := TXMLDocument.Create();
Result.Encoding := 'UTF-8';
diff --git a/wst/trunk/wst_global.inc b/wst/trunk/wst_global.inc
index 888166118..f0f72fb97 100644
--- a/wst/trunk/wst_global.inc
+++ b/wst/trunk/wst_global.inc
@@ -1,11 +1,13 @@
{$IFDEF FPC}
{$mode objfpc}{$H+}
{$DEFINE HAS_QWORD}
+ {$UNDEF WST_INTF_DOM}
//{$DEFINE USE_INLINE}
{$ELSE}
{$UNDEF HAS_QWORD}
{$UNDEF USE_INLINE}
{$DEFINE WST_RECORD_RTTI}
+ {$DEFINE WST_INTF_DOM}
{$ENDIF}
{$IFDEF CPU86}
diff --git a/wst/trunk/wst_rtti_filter/cursor_intf.pas b/wst/trunk/wst_rtti_filter/cursor_intf.pas
index 45a42f8bb..b63d340cb 100644
--- a/wst/trunk/wst_rtti_filter/cursor_intf.pas
+++ b/wst/trunk/wst_rtti_filter/cursor_intf.pas
@@ -22,6 +22,10 @@ uses
{$INCLUDE wst_delphi.inc}
type
+ IInterfaceCursor = interface;
+ IObjectCursor = interface;
+ IDefaultTypedCursor = {$IFDEF WST_INTF_DOM}IInterfaceCursor{$ELSE}IObjectCursor{$ENDIF};
+ IDefaultItemType = {$IFDEF WST_INTF_DOM}IInterface{$ELSE}TObject{$ENDIF};
ECursorException = class(Exception)
end;
@@ -43,6 +47,11 @@ type
function GetCurrent() : TObject;
end;
+ IInterfaceCursor = interface(ICursor)
+ ['{82FCF6F3-8008-4CCA-99DA-88945B250B92}']
+ function GetCurrent() : IInterface;
+ end;
+
IFilterableObjectCursor = interface(IObjectCursor)
['{F11B588A-E8CF-45D3-98D2-B49755FFC22D}']
function GetFilter() : IObjectFilter;
diff --git a/wst/trunk/wst_rtti_filter/dom_cursors.pas b/wst/trunk/wst_rtti_filter/dom_cursors.pas
index 83c085b7f..a9f175c2e 100644
--- a/wst/trunk/wst_rtti_filter/dom_cursors.pas
+++ b/wst/trunk/wst_rtti_filter/dom_cursors.pas
@@ -17,23 +17,33 @@ interface
uses
Classes, SysUtils,
- cursor_intf, DOM;
+ cursor_intf,
+{$IFNDEF FPC}
+ xmldom, wst_delphi_xml
+{$ELSE}
+ DOM, wst_fpc_xml
+{$ENDIF}
+ ;
{$INCLUDE wst.inc}
-{$INCLUDE wst_delphi.inc}
-
+{$INCLUDE wst_delphi.inc}
+
const
s_NODE_NAME = 'NodeName';
s_NODE_VALUE = 'NodeValue';
-
+
type
TFreeAction = ( faNone, faFreeOnDestroy );
-
+
{ TDOMNodeListCursor }
- TDOMNodeListCursor = class(TInterfacedObject,ICursor,IObjectCursor)
+ TDOMNodeListCursor = class(
+ TInterfacedObject,
+ ICursor,
+ IDefaultTypedCursor
+ )
private
FList : TDOMNodeList;
FCurrent : TDOMNode;
@@ -43,7 +53,7 @@ type
procedure Reset();
function MoveNext() : Boolean;
function Clone():ICursor;
- function GetCurrent() : TObject;virtual;
+ function GetCurrent() : IDefaultItemType;virtual;
public
constructor Create(
ADataList : TDOMNodeList;
@@ -54,7 +64,11 @@ type
{ TDOMNamedNodeMapCursor }
- TDOMNamedNodeMapCursor = class(TInterfacedObject,ICursor,IObjectCursor)
+ TDOMNamedNodeMapCursor = class(
+ TInterfacedObject,
+ ICursor,
+ IDefaultTypedCursor
+ )
private
FList : TDOMNamedNodeMap;
FCurrent : Integer;
@@ -63,7 +77,7 @@ type
procedure Reset();
function MoveNext() : Boolean;
function Clone():ICursor;
- function GetCurrent() : TObject;
+ function GetCurrent() : IDefaultItemType;
public
constructor Create(
ADataList : TDOMNamedNodeMap;
@@ -87,50 +101,94 @@ type
property NodeName: DOMString read GetNodeName;
property NodeValue: DOMString read GetNodeValue;
end;
-
+
{ TDOMNodeRttiExposerCursor }
- TDOMNodeRttiExposerCursor = class(TInterfacedObject,ICursor,IObjectCursor)
+ TDOMNodeRttiExposerCursor = class(
+ TInterfacedObject,
+ ICursor,
+ IObjectCursor
+ )
private
FCurrentExposer : TDOMNodeRttiExposer;
- FBaseCursor : IObjectCursor;
+ FBaseCursor : IDefaultTypedCursor;
protected
procedure Reset();
function MoveNext() : Boolean;
function Clone():ICursor;
function GetCurrent() : TObject;virtual;
public
- constructor Create(ADataList : IObjectCursor);
+ constructor Create(ADataList : IDefaultTypedCursor);
destructor Destroy();override;
end;
-
- TCursorExposedType = ( cetRttiNode, cetDomNode );
+
+ TCursorExposedType = ( cetRttiNode {$IFDEF WST_INTF_DOM},cetDomNode{$ENDIF} );
+
+
+ function CreateChildrenCursor(
+ ANode : TDOMNode;
+ const AExposedType : TCursorExposedType
+ ) : IObjectCursor;
+
+ function CreateAttributesCursor(
+ ANode : TDOMNode;
+ const AExposedType : TCursorExposedType
+ ) : IObjectCursor;
- function CreateChildrenCursor(ANode : TDOMNode; const AExposedType : TCursorExposedType):IObjectCursor;
- function CreateAttributesCursor(ANode : TDOMNode; const AExposedType : TCursorExposedType):IObjectCursor;
-
implementation
-
-function CreateChildrenCursor(ANode : TDOMNode; const AExposedType : TCursorExposedType):IObjectCursor;
-begin
- Result := nil;
- if ( ANode <> nil ) and ANode.HasChildNodes() then begin
- Result := TDOMNodeListCursor.Create(ANode.GetChildNodes(),faFreeOnDestroy) ;
- if ( AExposedType = cetRttiNode ) then
- Result := TDOMNodeRttiExposerCursor.Create(Result);
+{$IFDEF WST_INTF_DOM}
+ function CreateChildrenCursor(
+ ANode : TDOMNode;
+ const AExposedType : TCursorExposedType
+ ) : IObjectCursor;
+ var
+ locCrs : IInterfaceCursor;
+ begin
+ Result := nil;
+ if ( ANode <> nil ) and ANode.hasChildNodes() then begin
+ locCrs := TDOMNodeListCursor.Create(ANode.ChildNodes,faNone) ;
+ Result := TDOMNodeRttiExposerCursor.Create(locCrs);
+ end;
end;
-end;
-function CreateAttributesCursor(ANode : TDOMNode; const AExposedType : TCursorExposedType):IObjectCursor;
-begin
- Result := nil;
- if ( ANode <> nil ) and ( ANode.Attributes <> nil ) and ( ANode.Attributes.Length > 0 ) then begin
- Result := TDOMNamedNodeMapCursor.Create(ANode.Attributes,faNone) ;
- if ( AExposedType = cetRttiNode ) then
- Result := TDOMNodeRttiExposerCursor.Create(Result);
+ function CreateAttributesCursor(ANode : TDOMNode; const AExposedType : TCursorExposedType):IObjectCursor;
+ var
+ locCrs : IInterfaceCursor;
+ begin
+ Result := nil;
+ if ( ANode <> nil ) and ( ANode.Attributes <> nil ) and ( ANode.Attributes.Length > 0 ) then begin
+ locCrs := TDOMNamedNodeMapCursor.Create(ANode.Attributes,faNone) ;
+ Result := TDOMNodeRttiExposerCursor.Create(locCrs);
+ end;
end;
-end;
+{$ENDIF WST_INTF_DOM}
+
+{$IFNDEF WST_INTF_DOM}
+ function CreateChildrenCursor(
+ ANode : TDOMNode;
+ const AExposedType : TCursorExposedType
+ ) : IObjectCursor;
+ begin
+ Result := nil;
+ if ( ANode <> nil ) and ANode.HasChildNodes() then begin
+ Result := TDOMNodeListCursor.Create(ANode.ChildNodes,faFreeOnDestroy) ;
+ if ( AExposedType = cetRttiNode ) then
+ Result := TDOMNodeRttiExposerCursor.Create(Result);
+ end;
+ end;
+
+ function CreateAttributesCursor(ANode : TDOMNode; const AExposedType : TCursorExposedType):IObjectCursor;
+ begin
+ Result := nil;
+ if ( ANode <> nil ) and ( ANode.Attributes <> nil ) and ( ANode.Attributes.Length > 0 ) then begin
+ Result := TDOMNamedNodeMapCursor.Create(ANode.Attributes,faNone) ;
+ if ( AExposedType = cetRttiNode ) then
+ Result := TDOMNodeRttiExposerCursor.Create(Result);
+ end;
+ end;
+{$ENDIF !WST_INTF_DOM}
+
{ TDOMNodeListCursor }
@@ -155,7 +213,7 @@ begin
Result := TDOMNodeListCursor.Create(FList,faNone);
end;
-function TDOMNodeListCursor.GetCurrent(): TObject;
+function TDOMNodeListCursor.GetCurrent(): IDefaultItemType;
begin
Result := FCurrent;
end;
@@ -168,7 +226,7 @@ begin
Assert(Assigned(ADataList));
FFreeListOnDestroy := AFreeListOnDestroy;
FList := ADataList;
- FHasItem := ( FList.Count > 0 );
+ FHasItem := ( GetNodeListCount(FList) > 0 );
Reset();
end;
@@ -176,7 +234,7 @@ destructor TDOMNodeListCursor.Destroy();
begin
FCurrent := nil;
if ( FFreeListOnDestroy = faFreeOnDestroy ) then
- FreeAndNil(FList)
+ ReleaseDomNode(FList)
else
FList := nil;
inherited Destroy();
@@ -226,7 +284,7 @@ begin
Result := nil;
baseClone := FBaseCursor.Clone();
if ( baseClone <> nil ) then
- Result := TDOMNodeRttiExposerCursor.Create(baseClone as IObjectCursor) ;
+ Result := TDOMNodeRttiExposerCursor.Create(baseClone as IDefaultTypedCursor) ;
end;
function TDOMNodeRttiExposerCursor.GetCurrent(): TObject;
@@ -238,7 +296,7 @@ begin
Result := FCurrentExposer;
end;
-constructor TDOMNodeRttiExposerCursor.Create(ADataList : IObjectCursor);
+constructor TDOMNodeRttiExposerCursor.Create(ADataList : IDefaultTypedCursor);
begin
Assert(Assigned(ADataList));
inherited Create();
@@ -262,7 +320,7 @@ end;
function TDOMNamedNodeMapCursor.MoveNext(): Boolean;
begin
Inc(FCurrent);
- Result := ( FCurrent < FList.{$IFNDEF FPC_211}Count{$ELSE}Length{$ENDIF} );
+ Result := ( FCurrent < GetNodeListCount(FList) );
end;
function TDOMNamedNodeMapCursor.Clone(): ICursor;
@@ -270,9 +328,9 @@ begin
Result := TDOMNamedNodeMapCursor.Create(FList,faNone);
end;
-function TDOMNamedNodeMapCursor.GetCurrent(): TObject;
+function TDOMNamedNodeMapCursor.GetCurrent(): IDefaultItemType;
begin
- if ( FCurrent > -1 ) and ( FCurrent < FList.{$IFNDEF FPC_211}Count{$ELSE}Length{$ENDIF} ) then
+ if ( FCurrent > -1 ) and ( FCurrent < GetNodeListCount(FList) ) then
Result := FList.Item[FCurrent]
else
Result := nil;
@@ -292,7 +350,7 @@ end;
destructor TDOMNamedNodeMapCursor.Destroy();
begin
if ( FFreeListOnDestroy = faFreeOnDestroy ) then
- FreeAndNil(FList)
+ ReleaseDomNode(FList)
else
FList := nil;
inherited Destroy();