diff --git a/wst/trunk/base_binary_formatter.pas b/wst/trunk/base_binary_formatter.pas
index 31b600c16..3c49f4ace 100644
--- a/wst/trunk/base_binary_formatter.pas
+++ b/wst/trunk/base_binary_formatter.pas
@@ -300,6 +300,7 @@ type
const AStyle : TArrayStyle;
const AItemName : string
):Integer;
+ function GetScopeItemNames(const AReturnList : TStrings) : Integer;
procedure EndScopeRead();
procedure BeginHeader();
@@ -1121,6 +1122,12 @@ begin
Result := StackTop().GetItemCount();
end;
+function TBaseBinaryFormatter.GetScopeItemNames(const AReturnList : TStrings
+ ) : Integer;
+begin
+
+end;
+
procedure TBaseBinaryFormatter.EndScopeRead();
begin
PopStack().Free();
diff --git a/wst/trunk/base_json_formatter.pas b/wst/trunk/base_json_formatter.pas
new file mode 100644
index 000000000..c8ab727ae
--- /dev/null
+++ b/wst/trunk/base_json_formatter.pas
@@ -0,0 +1,511 @@
+{
+ This file is part of the Web Service Toolkit
+ Copyright (c) 2007 by Inoussa OUEDRAOGO
+
+ This file is provide under modified LGPL licence
+ ( the files COPYING.modifiedLGPL and COPYING.LGPL).
+
+
+ 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.
+}
+{$INCLUDE wst_global.inc}
+unit base_json_formatter;
+
+interface
+uses
+ Classes, SysUtils, TypInfo, Contnrs,
+ base_service_intf,
+ fpjson;
+
+type
+
+ TJsonInteger = Int64;
+
+ EJsonRpcException = class(EBaseRemoteException)
+ end;
+
+ { TStackItem }
+
+ TStackItem = class
+ private
+ FScopeObject: TJSONData;
+ FScopeType: TScopeType;
+ protected
+ function GetItemsCount() : Integer;virtual;
+ public
+ constructor Create(AScopeObject : TJSONData;AScopeType : TScopeType);
+ function FindNode(var ANodeName : string):TJSONData;virtual;abstract;
+ function CreateStringBuffer(
+ Const AName : string;
+ const AValue : TJSONStringType
+ ) : TJSONData;virtual;abstract;
+ function CreateIntBuffer(
+ Const AName : string;
+ const AValue : TJsonInteger
+ ) : TJSONData;virtual;abstract;
+ function CreateFloatBuffer(
+ Const AName : string;
+ const AValue : TJSONFloat
+ ) : TJSONData;virtual;abstract;
+ function CreateBoolBuffer(
+ Const AName : string;
+ const AValue : Boolean
+ ) : TJSONData;virtual;abstract;
+ function CreateObjectBuffer(const AName : string) : TJSONObject;virtual;abstract;
+ function CreateArrayBuffer(const AName : string) : TJSONArray;virtual;abstract;
+ property ScopeObject : TJSONData Read FScopeObject;
+ property ScopeType : TScopeType Read FScopeType;
+ property ItemsCount : Integer read GetItemsCount;
+ end;
+
+ { TObjectStackItem }
+
+ TObjectStackItem = class(TStackItem)
+ protected
+ function GetDataObject() : TJSONObject;{$IFDEF USE_INLINE}inline;{$ENDIF}
+ public
+ constructor Create(AScopeObject : TJSONObject);
+ function FindNode(var ANodeName : string):TJSONData;override;
+ function CreateStringBuffer(
+ const AName : string;
+ const AValue : TJSONStringType
+ ) : TJSONData;override;
+ function CreateIntBuffer(
+ Const AName : string;
+ const AValue : TJsonInteger
+ ) : TJSONData;override;
+ function CreateFloatBuffer(
+ Const AName : string;
+ const AValue : TJSONFloat
+ ) : TJSONData;override;
+ function CreateBoolBuffer(
+ Const AName : string;
+ const AValue : Boolean
+ ) : TJSONData;override;
+ function CreateObjectBuffer(const AName : string) : TJSONObject;override;
+ function CreateArrayBuffer(const AName : string) : TJSONArray;override;
+ end;
+
+ { TJsonRpcBaseFormatter }
+
+ TJsonRpcBaseFormatter = class(TSimpleFactoryItem,IFormatterBase)
+ private
+ FSerializationStyle : TSerializationStyle;
+ FStack : TObjectStack;
+ private
+ function GetCurrentScope : String;
+ function HasScope():Boolean;{$IFDEF USE_INLINE}inline;{$ENDIF}
+ procedure CheckScope();{$IFDEF USE_INLINE}inline;{$ENDIF}
+ procedure ClearStack();
+ function StackTop():TStackItem;{$IFDEF USE_INLINE}inline;{$ENDIF}
+ function PopStack():TStackItem;{$IFDEF USE_INLINE}inline;{$ENDIF}
+ protected
+ procedure PutInt64(
+ Const AName : String;
+ Const ATypeInfo : PTypeInfo;
+ Const AData : Int64
+ );{$IFDEF USE_INLINE}inline;{$ENDIF}
+ public
+ procedure SetSerializationStyle(const ASerializationStyle : TSerializationStyle);
+ function GetSerializationStyle():TSerializationStyle;
+ procedure Clear();
+
+ procedure BeginObject(
+ Const AName : string;
+ Const ATypeInfo : PTypeInfo
+ );
+ procedure BeginArray(
+ const AName : string;
+ const ATypeInfo : PTypeInfo;
+ const AItemTypeInfo : PTypeInfo;
+ const ABounds : Array Of Integer;
+ const AStyle : TArrayStyle
+ );
+ procedure NilCurrentScope();
+ function IsCurrentScopeNil():Boolean;
+ procedure EndScope();
+ procedure AddScopeAttribute(Const AName,AValue : string);
+ function BeginObjectRead(
+ var AScopeName : string;
+ const ATypeInfo : PTypeInfo
+ ) : Integer;
+ function BeginArrayRead(
+ var AScopeName : string;
+ const ATypeInfo : PTypeInfo;
+ const AStyle : TArrayStyle;
+ const AItemName : string
+ ):Integer;
+ function GetScopeItemNames(const AReturnList : TStrings) : Integer;
+ procedure EndScopeRead();
+ property CurrentScope : String Read GetCurrentScope;
+
+ procedure BeginHeader();
+ procedure EndHeader();
+
+ procedure Put(
+ Const AName : String;
+ Const ATypeInfo : PTypeInfo;
+ Const AData
+ );
+ procedure PutScopeInnerValue(
+ const ATypeInfo : PTypeInfo;
+ const AData
+ );
+ procedure Get(
+ Const ATypeInfo : PTypeInfo;
+ Var AName : String;
+ Var AData
+ );
+ procedure GetScopeInnerValue(
+ const ATypeInfo : PTypeInfo;
+ var AData
+ );
+ function ReadBuffer(const AName : string) : string;
+
+ procedure SaveToStream(AStream : TStream);
+ procedure LoadFromStream(AStream : TStream);
+
+ // This procedures will raise exceptions!!!
+ procedure Error(Const AMsg:string);overload;
+ procedure Error(Const AMsg:string; Const AArgs : array of const);overload;
+ public
+ constructor Create();override;
+ destructor Destroy();override;
+ end;
+
+
+implementation
+
+{ TJsonRpcBaseFormatter }
+
+function TJsonRpcBaseFormatter.HasScope() : Boolean;
+begin
+ Result := FStack.AtLeast(1);
+end;
+
+procedure TJsonRpcBaseFormatter.CheckScope();
+begin
+ if not HasScope() then
+ Error('There is no scope.');
+end;
+
+procedure TJsonRpcBaseFormatter.ClearStack();
+var
+ i, c : Integer;
+begin
+ c := FStack.Count;
+ for I := 1 to c do
+ FStack.Pop().Free();
+end;
+
+function TJsonRpcBaseFormatter.StackTop() : TStackItem;
+begin
+ CheckScope();
+ Result := FStack.Peek() as TStackItem;
+end;
+
+function TJsonRpcBaseFormatter.PopStack() : TStackItem;
+begin
+ CheckScope();
+ Result := FStack.Pop() as TStackItem;
+end;
+
+procedure TJsonRpcBaseFormatter.PutInt64(
+ const AName : String;
+ const ATypeInfo : PTypeInfo;
+ const AData : Int64
+);
+begin
+ StackTop().CreateIntBuffer(AName,AData);
+end;
+
+procedure TJsonRpcBaseFormatter.SetSerializationStyle(const ASerializationStyle : TSerializationStyle);
+begin
+ FSerializationStyle := ASerializationStyle;
+end;
+
+function TJsonRpcBaseFormatter.GetSerializationStyle() : TSerializationStyle;
+begin
+ Result := FSerializationStyle;
+end;
+
+function TJsonRpcBaseFormatter.GetCurrentScope() : string;
+begin
+ CheckScope();
+ Result := '';
+end;
+
+procedure TJsonRpcBaseFormatter.Clear();
+begin
+ ClearStack();
+end;
+
+procedure TJsonRpcBaseFormatter.BeginObject(
+ const AName : string;
+ const ATypeInfo : PTypeInfo
+);
+var
+ elt : TJSONObject;
+begin
+ if HasScope() then
+ elt := StackTop().CreateObjectBuffer(AName)
+ else
+ elt := TJSONObject.Create();
+ FStack.Push(TObjectStackItem.Create(elt));
+end;
+
+procedure TJsonRpcBaseFormatter.BeginArray(const AName : string;
+ const ATypeInfo : PTypeInfo; const AItemTypeInfo : PTypeInfo;
+ const ABounds : array of Integer; const AStyle : TArrayStyle);
+begin
+
+end;
+
+procedure TJsonRpcBaseFormatter.NilCurrentScope();
+begin
+
+end;
+
+function TJsonRpcBaseFormatter.IsCurrentScopeNil() : Boolean;
+begin
+
+end;
+
+procedure TJsonRpcBaseFormatter.EndScope();
+begin
+
+end;
+
+procedure TJsonRpcBaseFormatter.AddScopeAttribute(const AName, AValue : string);
+begin
+
+end;
+
+function TJsonRpcBaseFormatter.BeginObjectRead(var AScopeName : string;
+ const ATypeInfo : PTypeInfo) : Integer;
+begin
+
+end;
+
+function TJsonRpcBaseFormatter.BeginArrayRead(var AScopeName : string;
+ const ATypeInfo : PTypeInfo; const AStyle : TArrayStyle;
+ const AItemName : string) : Integer;
+begin
+
+end;
+
+function TJsonRpcBaseFormatter.GetScopeItemNames(const AReturnList : TStrings
+ ) : Integer;
+begin
+
+end;
+
+procedure TJsonRpcBaseFormatter.EndScopeRead();
+begin
+
+end;
+
+procedure TJsonRpcBaseFormatter.BeginHeader();
+begin
+
+end;
+
+procedure TJsonRpcBaseFormatter.EndHeader();
+begin
+
+end;
+
+procedure TJsonRpcBaseFormatter.Put(
+ const AName : String;
+ const ATypeInfo : PTypeInfo;
+ const AData
+);
+begin
+
+end;
+
+procedure TJsonRpcBaseFormatter.PutScopeInnerValue(const ATypeInfo : PTypeInfo;
+ const AData);
+begin
+
+end;
+
+procedure TJsonRpcBaseFormatter.Get(const ATypeInfo : PTypeInfo;
+ var AName : String; var AData);
+begin
+
+end;
+
+procedure TJsonRpcBaseFormatter.GetScopeInnerValue(const ATypeInfo : PTypeInfo;
+ var AData);
+begin
+
+end;
+
+function TJsonRpcBaseFormatter.ReadBuffer(const AName : string) : string;
+begin
+
+end;
+
+procedure TJsonRpcBaseFormatter.SaveToStream(AStream : TStream);
+begin
+
+end;
+
+procedure TJsonRpcBaseFormatter.LoadFromStream(AStream : TStream);
+begin
+
+end;
+
+procedure TJsonRpcBaseFormatter.Error(const AMsg : string);
+begin
+ raise EJsonRpcException.Create(AMsg);
+end;
+
+procedure TJsonRpcBaseFormatter.Error(const AMsg : string; const AArgs : array of const);
+begin
+ raise EJsonRpcException.CreateFmt(AMsg,AArgs);
+end;
+
+constructor TJsonRpcBaseFormatter.Create();
+begin
+ inherited Create();
+ FStack := TObjectStack.Create();
+end;
+
+destructor TJsonRpcBaseFormatter.Destroy();
+begin
+ FStack.Free();
+ inherited Destroy();
+end;
+
+{ TStackItem }
+
+function TStackItem.GetItemsCount() : Integer;
+begin
+ Result := FScopeObject.Count;
+end;
+
+constructor TStackItem.Create(AScopeObject : TJSONData; AScopeType : TScopeType);
+begin
+ FScopeObject := AScopeObject;
+ FScopeType := AScopeType;
+end;
+
+{ TObjectStackItem }
+
+function TObjectStackItem.GetDataObject() : TJSONObject;
+begin
+ Result := TJSONObject(ScopeObject);
+end;
+
+constructor TObjectStackItem.Create(AScopeObject : TJSONObject);
+begin
+ inherited Create(AScopeObject,stObject);
+end;
+
+function TObjectStackItem.FindNode(var ANodeName : string) : TJSONData;
+begin
+ Result := GetDataObject().Elements[ANodeName];
+end;
+
+function TObjectStackItem.CreateStringBuffer(
+ const AName : string;
+ const AValue : TJSONStringType
+) : TJSONData;
+var
+ locObj : TJSONObject;
+ i : PtrInt;
+begin
+ locObj := GetDataObject();
+ Result := locObj.Elements[AName];
+ if ( Result = nil ) then begin
+ i := locObj.Add(AName,AValue);
+ Result := locObj.Items[i];
+ end else begin
+ Result.AsString := AValue;
+ end;
+end;
+
+function TObjectStackItem.CreateIntBuffer(
+ const AName : string;
+ const AValue : TJsonInteger
+) : TJSONData;
+var
+ locObj : TJSONObject;
+ i : PtrInt;
+begin
+ locObj := GetDataObject();
+ Result := locObj.Elements[AName];
+ if ( Result = nil ) then begin
+ i := locObj.Add(AName,AValue);
+ Result := locObj.Items[i];
+ end else begin
+ Result.AsInteger := AValue;
+ end;
+end;
+
+function TObjectStackItem.CreateFloatBuffer(
+ const AName : string;
+ const AValue : TJSONFloat
+) : TJSONData;
+var
+ locObj : TJSONObject;
+ i : PtrInt;
+begin
+ locObj := GetDataObject();
+ Result := locObj.Elements[AName];
+ if ( Result = nil ) then begin
+ i := locObj.Add(AName,AValue);
+ Result := locObj.Items[i];
+ end else begin
+ Result.AsFloat := AValue;
+ end;
+end;
+
+function TObjectStackItem.CreateBoolBuffer(
+ const AName : string;
+ const AValue : Boolean
+) : TJSONData;
+var
+ locObj : TJSONObject;
+ i : PtrInt;
+begin
+ locObj := GetDataObject();
+ Result := locObj.Elements[AName];
+ if ( Result = nil ) then begin
+ i := locObj.Add(AName,AValue);
+ Result := locObj.Items[i];
+ end else begin
+ Result.AsBoolean := AValue;
+ end;
+end;
+
+function TObjectStackItem.CreateObjectBuffer(const AName : string) : TJSONObject;
+var
+ locObj : TJSONObject;
+begin
+ locObj := GetDataObject();
+ Result := locObj.Elements[AName] as TJSONObject;
+ if ( Result = nil ) then begin
+ Result := TJSONObject.Create();
+ locObj.Add(AName,Result);
+ end;
+end;
+
+function TObjectStackItem.CreateArrayBuffer(const AName : string) : TJSONArray;
+var
+ locObj : TJSONObject;
+begin
+ locObj := GetDataObject();
+ Result := locObj.Elements[AName] as TJSONArray;
+ if ( Result = nil ) then begin
+ Result := TJSONArray.Create();
+ locObj.Add(AName,Result);
+ end;
+end;
+
+end.
+
diff --git a/wst/trunk/base_service_intf.pas b/wst/trunk/base_service_intf.pas
index c784a2c8e..925adda69 100644
--- a/wst/trunk/base_service_intf.pas
+++ b/wst/trunk/base_service_intf.pas
@@ -162,6 +162,7 @@ type
const AStyle : TArrayStyle;
const AItemName : string
):Integer;
+ function GetScopeItemNames(const AReturnList : TStrings) : Integer;
procedure EndScopeRead();
property CurrentScope : String Read GetCurrentScope;
diff --git a/wst/trunk/base_soap_formatter.pas b/wst/trunk/base_soap_formatter.pas
index 403919aba..b6189ac43 100644
--- a/wst/trunk/base_soap_formatter.pas
+++ b/wst/trunk/base_soap_formatter.pas
@@ -314,6 +314,7 @@ type
const AStyle : TArrayStyle;
const AItemName : string
):Integer;
+ function GetScopeItemNames(const AReturnList : TStrings) : Integer;
procedure EndScopeRead();
procedure BeginHeader();
@@ -494,6 +495,11 @@ begin
Result := InternalBeginScopeRead(AScopeName,ATypeInfo,stArray,AStyle,AItemName);
end;
+function TSOAPBaseFormatter.GetScopeItemNames(const AReturnList : TStrings) : Integer;
+begin
+
+end;
+
procedure TSOAPBaseFormatter.EndScopeRead();
begin
PopStack().Free();
@@ -1470,6 +1476,9 @@ Var
dataBuffer : string;
frmt : string;
prcsn,i : Integer;
+ {strm : TStringStream;
+ locDoc : TwstXMLDocument;
+ locNode : TDOMNode;}
begin
CheckScope();
Case ATypeInfo^.Kind Of
@@ -1563,6 +1572,16 @@ begin
dataBuffer[i] := '.';
end;
end;
+ (*locDoc := nil;
+ strm := TStringStream.Create(dataBuffer);
+ try
+ ReadXMLFile(locDoc,strm);
+ locNode := locDoc.DocumentElement.CloneNode(True {$IFDEF FPC}, StackTop().ScopeObject.OwnerDocument{$ENDIF});
+ StackTop().ScopeObject.AppendChild(locNode);
+ finally
+ ReleaseDomNode(locDoc);
+ strm.Free();
+ end;*)
StackTop().ScopeObject.AppendChild(FDoc.CreateTextNode(dataBuffer));
end;
diff --git a/wst/trunk/base_xmlrpc_formatter.pas b/wst/trunk/base_xmlrpc_formatter.pas
index e415b4df7..e9894d016 100644
--- a/wst/trunk/base_xmlrpc_formatter.pas
+++ b/wst/trunk/base_xmlrpc_formatter.pas
@@ -315,6 +315,7 @@ type
const AStyle : TArrayStyle;
const AItemName : string
):Integer;
+ function GetScopeItemNames(const AReturnList : TStrings) : Integer;
procedure EndScopeRead();
procedure BeginHeader();
@@ -563,6 +564,12 @@ begin
Result := InternalBeginScopeRead(AScopeName,ATypeInfo,stArray,AStyle,AItemName);
end;
+function TXmlRpcBaseFormatter.GetScopeItemNames(const AReturnList : TStrings
+ ) : Integer;
+begin
+
+end;
+
procedure TXmlRpcBaseFormatter.EndScopeRead();
begin
PopStack().Free();
diff --git a/wst/trunk/tests/test_suite/files/no_binding_style.WSDL b/wst/trunk/tests/test_suite/files/no_binding_style.WSDL
new file mode 100644
index 000000000..509af5f1c
--- /dev/null
+++ b/wst/trunk/tests/test_suite/files/no_binding_style.WSDL
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/wst/trunk/tests/test_suite/files/simpletypeNativeAlias.WSDL b/wst/trunk/tests/test_suite/files/simpletypeNativeAlias.WSDL
new file mode 100644
index 000000000..a9287af74
--- /dev/null
+++ b/wst/trunk/tests/test_suite/files/simpletypeNativeAlias.WSDL
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/wst/trunk/tests/test_suite/files/simpletypeNativeAlias.xsd b/wst/trunk/tests/test_suite/files/simpletypeNativeAlias.xsd
new file mode 100644
index 000000000..029badef7
--- /dev/null
+++ b/wst/trunk/tests/test_suite/files/simpletypeNativeAlias.xsd
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
diff --git a/wst/trunk/tests/test_suite/test_parsers.pas b/wst/trunk/tests/test_suite/test_parsers.pas
index 933e9ed64..5a1a25004 100644
--- a/wst/trunk/tests/test_suite/test_parsers.pas
+++ b/wst/trunk/tests/test_suite/test_parsers.pas
@@ -32,6 +32,7 @@ type
function LoadEmptySchema() : TwstPasTreeContainer;virtual;abstract;
function LoadSimpleType_Enum_Schema() : TwstPasTreeContainer;virtual;abstract;
function LoadSimpleType_Enum_Embedded_Schema() : TwstPasTreeContainer;virtual;abstract;
+ function LoadSimpleType_AliasToNativeType_Schema() : TwstPasTreeContainer;virtual;abstract;
function LoadComplexType_Class_Schema() : TwstPasTreeContainer;virtual;abstract;
function LoadComplexType_Class_Embedded_Schema() : TwstPasTreeContainer;virtual;abstract;
@@ -46,6 +47,7 @@ type
procedure SimpleType_Enum();
procedure SimpleType_Enum_Embedded();
+ procedure SimpleType_AliasToNativeType();
procedure ComplexType_Class();
procedure ComplexType_Class_Embedded();
@@ -67,6 +69,7 @@ type
function LoadSimpleType_Enum_Schema() : TwstPasTreeContainer;override;
function LoadSimpleType_Enum_Embedded_Schema() : TwstPasTreeContainer;override;
+ function LoadSimpleType_AliasToNativeType_Schema() : TwstPasTreeContainer;override;
function LoadComplexType_Class_Schema() : TwstPasTreeContainer;override;
function LoadComplexType_Class_Embedded_Schema() : TwstPasTreeContainer;override;
@@ -88,6 +91,7 @@ type
function LoadSimpleType_Enum_Schema() : TwstPasTreeContainer;override;
function LoadSimpleType_Enum_Embedded_Schema() : TwstPasTreeContainer;override;
+ function LoadSimpleType_AliasToNativeType_Schema() : TwstPasTreeContainer;override;
function LoadComplexType_Class_Schema() : TwstPasTreeContainer;override;
function LoadComplexType_Class_Embedded_Schema() : TwstPasTreeContainer;override;
@@ -97,6 +101,8 @@ type
function LoadComplexType_ArraySequence_Schema() : TwstPasTreeContainer;override;
function LoadComplexType_ArraySequence_Embedded_Schema() : TwstPasTreeContainer;override;
+ published
+ procedure no_binding_style();
end;
implementation
@@ -127,8 +133,11 @@ const
x_enumSampleType = 'EnumSampleType';
x_enumSampleLIST_COUNT = 7;
x_enumSampleLIST : array[0..( x_enumSampleLIST_COUNT - 1 )] of string = ( 'esOne', 'esTwo', 'esThree', 'begin', 'finally', 'True', 'False' );
+ x_simpleTypeAliasString = 'AliasString';
+ x_simpleTypeAliasInt = 'AliasInt';
x_simpleType = 'simpletype';
x_simpleTypeEmbedded = 'simpletype_embedded';
+ x_simpletypeNativeAlias = 'simpletypeNativeAlias';
x_targetNamespace = 'urn:wst-test';
@@ -253,6 +262,42 @@ begin
end;
end;
+procedure TTest_CustomXsdParser.SimpleType_AliasToNativeType();
+var
+ tr : TwstPasTreeContainer;
+ mdl : TPasModule;
+ ls : TList;
+ elt : TPasElement;
+ aliasType : TPasAliasType;
+ i : Integer;
+begin
+ tr := LoadSimpleType_AliasToNativeType_Schema();
+
+ mdl := tr.FindModule(x_targetNamespace);
+ CheckNotNull(mdl);
+ CheckEquals(x_simpletypeNativeAlias,mdl.Name);
+ CheckEquals(x_targetNamespace,tr.GetExternalName(mdl));
+ ls := mdl.InterfaceSection.Declarations;
+ CheckEquals(2,ls.Count);
+ elt := tr.FindElement(x_simpleTypeAliasString);
+ CheckNotNull(elt,x_simpleTypeAliasString);
+ CheckEquals(x_simpleTypeAliasString,elt.Name);
+ CheckEquals(x_simpleTypeAliasString,tr.GetExternalName(elt));
+ CheckIs(elt,TPasAliasType);
+ aliasType := elt as TPasAliasType;
+ CheckNotNull(aliasType.DestType);
+ Check(tr.SameName(aliasType.DestType,'string'));
+
+ elt := tr.FindElement(x_simpleTypeAliasInt);
+ CheckNotNull(elt,x_simpleTypeAliasInt);
+ CheckEquals(x_simpleTypeAliasInt,elt.Name);
+ CheckEquals(x_simpleTypeAliasInt,tr.GetExternalName(elt));
+ CheckIs(elt,TPasAliasType);
+ aliasType := elt as TPasAliasType;
+ CheckNotNull(aliasType.DestType);
+ Check(tr.SameName(aliasType.DestType,'int'));
+end;
+
type
TPropertyType = ( ptField, ptAttribute );
const
@@ -890,6 +935,11 @@ begin
Result := ParseDoc(x_simpleTypeEmbedded);
end;
+function TTest_XsdParser.LoadSimpleType_AliasToNativeType_Schema() : TwstPasTreeContainer;
+begin
+ Result := ParseDoc(x_simpletypeNativeAlias);
+end;
+
function TTest_XsdParser.LoadComplexType_Class_Schema(): TwstPasTreeContainer;
begin
Result := ParseDoc(x_complexType_class);
@@ -958,6 +1008,11 @@ begin
Result := ParseDoc(x_simpleTypeEmbedded);
end;
+function TTest_WsdlParser.LoadSimpleType_AliasToNativeType_Schema() : TwstPasTreeContainer;
+begin
+ Result := ParseDoc(x_simpletypeNativeAlias);
+end;
+
function TTest_WsdlParser.LoadComplexType_Class_Schema(): TwstPasTreeContainer;
begin
Result := ParseDoc(x_complexType_class);
@@ -988,6 +1043,25 @@ begin
Result := ParseDoc(x_complexType_array_sequence_embedded);
end;
+procedure TTest_WsdlParser.no_binding_style();
+var
+ symTable : TwstPasTreeContainer;
+ elt : TPasElement;
+ intf : TPasClassType;
+begin
+ symTable := ParseDoc('no_binding_style');
+ try
+ elt := symTable.FindElement('ISampleService');
+ CheckNotNull(elt);
+ CheckIs(elt,TPasClassType);
+ intf := elt as TPasClassType;
+ Check(intf.ObjKind = okInterface);
+ CheckEquals(2,GetElementCount(intf.Members,TPasProcedure));
+ finally
+ symTable.Free();
+ end;
+end;
+
initialization
RegisterTest('XSD parser',TTest_XsdParser.Suite);
RegisterTest('WSDL parser',TTest_WsdlParser.Suite);
diff --git a/wst/trunk/tests/test_suite/testformatter_unit.pas b/wst/trunk/tests/test_suite/testformatter_unit.pas
index e10ae12a4..1544341ce 100644
--- a/wst/trunk/tests/test_suite/testformatter_unit.pas
+++ b/wst/trunk/tests/test_suite/testformatter_unit.pas
@@ -378,6 +378,8 @@ type
procedure Test_Record_simple();
procedure Test_Record_nested();
+
+ procedure test_GetScopeItemNames();
end;
{ TTestBinaryFormatter }
@@ -2708,6 +2710,56 @@ begin
end;
end;
+procedure TTestFormatter.test_GetScopeItemNames();
+Var
+ f : IFormatterBase;
+ s : TMemoryStream;
+ a, b : TClass_A;
+ x : string;
+ ls : TStringList;
+begin
+ ls := nil;
+ s := Nil;
+ b := nil;
+ a := TClass_A.Create();
+ try
+ a.Val_Bool := False;
+ a.Val_Enum := teThree;
+ a.Val_String := '123';
+ a.Val_32S := 55;
+ b := TClass_A.Create();
+
+ f := CreateFormatter(TypeInfo(TClass_A));
+
+ f.BeginObject('Root',TypeInfo(TClass_A));
+ f.Put('a',TypeInfo(TClass_A),a);
+ f.Put('b',TypeInfo(TClass_A),b);
+ f.EndScope();
+
+ s := TMemoryStream.Create();
+ f.SaveToStream(s);
+ FreeAndNil(a);
+
+ ls := TStringList.Create();
+ f := CreateFormatter(TypeInfo(TClass_A));
+ s.Position := 0;
+ f.LoadFromStream(s);
+ x := 'Root';
+ f.BeginObjectRead(x,TypeInfo(TClass_A));
+ CheckEquals(0, f.GetScopeItemNames(ls), 'GetScopeItemNames.Count()');
+ Check( ls.IndexOf('Val_Bool') >= 0 );
+ Check( ls.IndexOf('Val_Enum') >= 0 );
+ Check( ls.IndexOf('Val_String') >= 0 );
+ Check( ls.IndexOf('Val_32S') >= 0 );
+ f.EndScopeRead();
+ finally
+ ls.Free();
+ b.Free();;
+ a.Free();
+ s.Free();
+ end;
+end;
+
{ TTestBinaryFormatter }
diff --git a/wst/trunk/tests/test_suite/wst_test_suite.lpi b/wst/trunk/tests/test_suite/wst_test_suite.lpi
index 510c153f0..f2814f23a 100644
--- a/wst/trunk/tests/test_suite/wst_test_suite.lpi
+++ b/wst/trunk/tests/test_suite/wst_test_suite.lpi
@@ -7,7 +7,7 @@
-
+
@@ -27,7 +27,7 @@
-
+
@@ -40,12 +40,12 @@
-
-
+
+
-
+
@@ -69,29 +69,35 @@
-
-
+
+
+
+
-
-
+
+
+
-
-
+
+
+
-
-
+
+
+
+
@@ -161,301 +167,198 @@
+
+
-
+
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
@@ -463,9 +366,9 @@
-
-
-
+
+
+
@@ -473,9 +376,9 @@
-
-
-
+
+
+
@@ -483,9 +386,9 @@
-
-
-
+
+
+
@@ -493,9 +396,9 @@
-
-
-
+
+
+
@@ -503,300 +406,218 @@
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -807,7 +628,7 @@
-
+
diff --git a/wst/trunk/tests/test_suite/wst_test_suite.lpr b/wst/trunk/tests/test_suite/wst_test_suite.lpr
index 474fc6da5..0c62ad0d7 100644
--- a/wst/trunk/tests/test_suite/wst_test_suite.lpr
+++ b/wst/trunk/tests/test_suite/wst_test_suite.lpr
@@ -17,7 +17,7 @@ uses
metadata_generator, parserdefs, server_service_intf, metadata_wsdl,
test_parserdef, base_xmlrpc_formatter, wst_fpc_xml, test_utilities,
server_service_xmlrpc, test_parsers, wsdl_generator, xsd_generator,
-xsd_consts;
+xsd_consts, base_json_formatter, wsdl_parser;
Const
ShortOpts = 'alh';
diff --git a/wst/trunk/type_lib_edtr/typ_lib_edtr.lpi b/wst/trunk/type_lib_edtr/typ_lib_edtr.lpi
index a0ed71bdd..3bc440c9d 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,13 @@
-
+
-
+
-
+
@@ -49,8 +49,8 @@
-
-
+
+
@@ -60,14 +60,14 @@
-
+
-
+
@@ -77,7 +77,7 @@
-
+
@@ -105,9 +105,9 @@
-
+
-
+
@@ -117,7 +117,7 @@
-
+
@@ -127,7 +127,7 @@
-
+
@@ -140,7 +140,7 @@
-
+
@@ -152,7 +152,7 @@
-
+
@@ -161,14 +161,14 @@
-
+
-
-
-
+
+
+
@@ -176,76 +176,76 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -261,7 +261,7 @@
-
+
@@ -275,162 +275,154 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -438,33 +430,33 @@
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
@@ -472,23 +464,23 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
+
-
-
+
+
@@ -496,16 +488,16 @@
-
-
-
+
+
+
-
-
-
+
+
+
@@ -513,40 +505,40 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -554,42 +546,44 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -597,9 +591,9 @@
-
-
-
+
+
+
@@ -607,72 +601,72 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -680,89 +674,106 @@
-
-
+
+
-
-
+
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
-
-
-
-
-
-
-
-
@@ -787,7 +798,7 @@
-
+
@@ -802,6 +813,16 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/wst/trunk/type_lib_edtr/typ_lib_edtr.lpr b/wst/trunk/type_lib_edtr/typ_lib_edtr.lpr
index 17be7f5f2..3695c65d6 100644
--- a/wst/trunk/type_lib_edtr/typ_lib_edtr.lpr
+++ b/wst/trunk/type_lib_edtr/typ_lib_edtr.lpr
@@ -12,7 +12,7 @@ uses
edit_helper, ufclassedit, ufpropedit, uinterfaceedit, udm,
pascal_parser_intf, PasTree, PParser, uprocedit, common_gui_utils, uargedit,
umoduleedit, ubindingedit, ufrmsaveoption, ufarrayedit, generator,
- uftypealiasedit, ufrecordedit, wsdl_generator;
+ uftypealiasedit, ufrecordedit, wsdl_generator, xsd_parser;
begin
Application.Initialize;
diff --git a/wst/trunk/type_lib_edtr/uwsttypelibraryedit.lfm b/wst/trunk/type_lib_edtr/uwsttypelibraryedit.lfm
index 0dde68c23..226dc1518 100644
--- a/wst/trunk/type_lib_edtr/uwsttypelibraryedit.lfm
+++ b/wst/trunk/type_lib_edtr/uwsttypelibraryedit.lfm
@@ -78,11 +78,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 = <
@@ -407,7 +405,6 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
ShortCut = 24642
end>
ReadOnly = True
- SelectedColor.OnChange = nil
end
end
object tsWSDL: TTabSheet
@@ -427,9 +424,7 @@ 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 = <
@@ -754,7 +749,6 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
ShortCut = 24642
end>
ReadOnly = True
- SelectedColor.OnChange = nil
end
end
object tsProxy: TTabSheet
@@ -774,9 +768,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 = <
@@ -1101,6 +1097,7 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
ShortCut = 24642
end>
ReadOnly = True
+ SelectedColor.OnChange = nil
end
end
object tsImp: TTabSheet
@@ -1120,9 +1117,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 = <
@@ -1447,6 +1446,7 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
ShortCut = 24642
end>
ReadOnly = True
+ SelectedColor.OnChange = nil
end
end
object tsBinder: TTabSheet
@@ -1466,10 +1466,12 @@ 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 = <
@@ -1794,6 +1796,7 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
ShortCut = 24642
end>
ReadOnly = True
+ SelectedColor.OnChange = nil
end
end
object tsLog: TTabSheet
@@ -1926,6 +1929,7 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
Caption = 'Open File'
DisableIfNoHandler = True
OnExecute = actOpenFileExecute
+ ShortCut = 16463
end
object actExit: TAction
Caption = 'Exit'
@@ -1994,6 +1998,7 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
Caption = 'Save'
DisableIfNoHandler = True
OnExecute = actSaveExecute
+ ShortCut = 16467
end
object actDelete: TAction
Caption = 'Delete'
diff --git a/wst/trunk/type_lib_edtr/uwsttypelibraryedit.lrs b/wst/trunk/type_lib_edtr/uwsttypelibraryedit.lrs
index ec4054c52..43fb1e426 100644
--- a/wst/trunk/type_lib_edtr/uwsttypelibraryedit.lrs
+++ b/wst/trunk/type_lib_edtr/uwsttypelibraryedit.lrs
@@ -22,63 +22,61 @@ 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'#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
+ +'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
+'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
@@ -117,23 +115,126 @@ 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#22'Select'
- +'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
+ +#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
@@ -156,7 +257,7 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+#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'
+ ,#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
@@ -167,183 +268,84 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+'ommand'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0
+#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3
+'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'
- +#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#0#0#0#9'T'
- +'TabSheet'#5'tsImp'#7'Caption'#6#24'Im&plementation Skeleton'#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
+ +#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'#8'ShortCut'#3'O@'#0#0
+ +#7'TAction'#7'actExit'#7'Caption'#6#4'Exit'#18'DisableIfNoHandler'#9#9'OnExe'
+ +'cute'#7#14'actExitExecute'#0#0#7'TAction'#9'actExport'#7'Caption'#6#24'Save'
+ +' generated files ...'#18'DisableIfNoHandler'#9#9'OnExecute'#7#16'actExportE'
+ +'xecute'#8'OnUpdate'#7#15'actExportUpdate'#0#0#7'TAction'#8'actAbout'#7'Capt'
+ +'ion'#6#5'About'#18'DisableIfNoHandler'#9#9'OnExecute'#7#15'actAboutExecute'
+ +#0#0#7'TAction'#9'actSaveAs'#7'Caption'#6#11'Save As ...'#18'DisableIfNoHand'
+ +'ler'#9#9'OnExecute'#7#16'actSaveAsExecute'#8'OnUpdate'#7#15'actExportUpdate'
+ +#0#0#7'TAction'#13'actEnumCreate'#7'Caption'#6#18'Create Enumeration'#18'Dis'
+ +'ableIfNoHandler'#9#9'OnExecute'#7#20'actEnumCreateExecute'#0#0#7'TAction'#15
+ +'actUpdateObject'#7'Caption'#6#6'Update'#18'DisableIfNoHandler'#9#9'OnExecut'
+ +'e'#7#22'actUpdateObjectExecute'#8'OnUpdate'#7#21'actUpdateObjectUpdate'#0#0
+ +#7'TAction'#14'actRefreshView'#7'Caption'#6#14'&Refresh Views'#18'DisableIfN'
+ +'oHandler'#9#9'OnExecute'#7#21'actRefreshViewExecute'#0#0#7'TAction'#10'actN'
+ +'ewFile'#7'Caption'#6#8'New File'#18'DisableIfNoHandler'#9#9'OnExecute'#7#17
+ +'actNewFileExecute'#0#0#7'TAction'#17'actCompoundCreate'#7'Caption'#6#17'Cre'
+ ,'ate Class Type'#18'DisableIfNoHandler'#9#9'OnExecute'#7#24'actCompoundCreat'
+ +'eExecute'#0#0#7'TAction'#13'actIntfCreate'#7'Caption'#6#16'Create Interface'
+ +#18'DisableIfNoHandler'#9#9'OnExecute'#7#20'actIntfCreateExecute'#0#0#7'TAct'
+ +'ion'#13'actFullExpand'#7'Caption'#6#11'Full expand'#18'DisableIfNoHandler'#9
+ +#9'OnExecute'#7#20'actFullExpandExecute'#0#0#7'TAction'#15'actFullCollapse'#7
+ +'Caption'#6#13'Full Collapse'#18'DisableIfNoHandler'#9#9'OnExecute'#7#22'act'
+ +'FullCollapseExecute'#0#0#7'TAction'#7'actSave'#7'Caption'#6#4'Save'#18'Disa'
+ +'bleIfNoHandler'#9#9'OnExecute'#7#14'actSaveExecute'#8'ShortCut'#3'S@'#0#0#7
+ +'TAction'#9'actDelete'#7'Caption'#6#6'Delete'#18'DisableIfNoHandler'#9#9'OnE'
+ +'xecute'#7#16'actDeleteExecute'#8'OnUpdate'#7#21'actUpdateObjectUpdate'#0#0#7
+ +'TAction'#14'actArrayCreate'#7'Caption'#6#12'Create Array'#18'DisableIfNoHan'
+ +'dler'#9#9'OnExecute'#7#21'actArrayCreateExecute'#0#0#7'TAction'#18'actTypeA'
+ +'LiasCreate'#7'Caption'#6#17'Create Type ALias'#18'DisableIfNoHandler'#9#9'O'
+ +'nExecute'#7#25'actTypeALiasCreateExecute'#0#0#7'TAction'#15'actRecordCreate'
+ +#7'Caption'#6#13'Create Record'#18'DisableIfNoHandler'#9#9'OnExecute'#7#22'a'
+ +'ctRecordCreateExecute'#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'ofPath'
+ +'MustExist'#15'ofFileMustExist'#14'ofEnableSizing'#12'ofViewDetail'#0#4'left'
+ +#3#153#1#3'top'#2'X'#0#0#10'TSynPasSyn'#10'SynPasSyn1'#7'Enabled'#8#23'Comme'
+ +'ntAttri.Foreground'#7#6'clBlue'#18'CommentAttri.Style'#11#6'fsBold'#0#22'St'
+ +'ringAttri.Foreground'#7#8'clMaroon'#17'SymbolAttri.Style'#11#6'fsBold'#0#25
+ +'DirectiveAttri.Foreground'#7#7'clGreen'#20'DirectiveAttri.Style'#11#6'fsBol'
+ +'d'#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
diff --git a/wst/trunk/ws_helper/parserutils.pas b/wst/trunk/ws_helper/parserutils.pas
index 69d78e019..4f9f1a6c9 100644
--- a/wst/trunk/ws_helper/parserutils.pas
+++ b/wst/trunk/ws_helper/parserutils.pas
@@ -76,7 +76,7 @@ const
implementation
uses StrUtils, rtti_filters;
-const LANGAGE_TOKEN : array[0..107] of string = (
+const LANGAGE_TOKEN : array[0..108] of string = (
'ABSTRACT', 'AND', 'ARRAY', 'AS', 'ASM',
'BEGIN', 'BOOLEAN', 'BYTE',
'CASE', 'CDECL', 'CHAR', 'CLASS', 'COMP', 'CONST', 'CONSTRUCTOR', 'CONTAINS', 'CURRENCY',
@@ -91,7 +91,7 @@ const LANGAGE_TOKEN : array[0..107] of string = (
'OBJECT', 'OF', 'OLEVARIANT', 'OR', 'OUT', 'OVERLOAD', 'OVERRIDE',
'PACKAGE', 'PACKED', 'PASCAL', 'PCHAR', 'PRIVATE', 'PROCEDURE', 'PROGRAM', 'PUBLISHED',
'RAISE', 'READ', 'REAL', 'RECORD', 'REGISTER', 'REINTRODUCE', 'REPEAT', 'REQUIRES', 'RESULT',
- 'SAFECALL', 'SET', 'SHL', 'SHORTINT', 'SHR', 'SINGLE', 'SMALLINT', 'STDCALL', 'STORED',
+ 'SAFECALL', 'SET', 'SHL', 'SHORTINT', 'SHR', 'SINGLE', 'SMALLINT', 'STDCALL', 'STORED', 'STRING',
'THEN', 'TO', 'TRY', 'TYPE', 'UNIT', 'UNTIL', 'USES',
'VAR', 'VARARGS', 'VARIANT', 'VIRTUAL', 'WHILE', 'WIDECHAR', 'WITH', 'WORD', 'WRITE', 'XOR'
);
diff --git a/wst/trunk/ws_helper/pascal_parser_intf.pas b/wst/trunk/ws_helper/pascal_parser_intf.pas
index 20877cebc..d92f660ff 100644
--- a/wst/trunk/ws_helper/pascal_parser_intf.pas
+++ b/wst/trunk/ws_helper/pascal_parser_intf.pas
@@ -132,6 +132,7 @@ type
procedure RegisterExternalAlias(AObject : TPasElement; const AExternalName : String);
function SameName(AObject : TPasElement; const AName : string) : Boolean;
function GetExternalName(AObject : TPasElement) : string;
+ function GetNameSpace(AType : TPasType) : string ;
function IsAttributeProperty(AObject : TPasVariable) : Boolean;
procedure SetPropertyAsAttribute(AObject : TPasVariable; const AValue : Boolean);
@@ -320,6 +321,7 @@ begin
AddAlias('token','string',Result);
AddAlias('anyURI','string',Result);
+ AddAlias('ID','string',Result);
AddAlias('float','Single',Result);
AddAlias('nonNegativeInteger','LongWord',Result);
AddAlias('positiveInteger','nonNegativeInteger',Result);
@@ -802,6 +804,18 @@ begin
end;
end;
+function TwstPasTreeContainer.GetNameSpace(AType: TPasType): string;
+begin
+ if Assigned(AType) and
+ Assigned(AType.Parent{Section}) and
+ Assigned(AType.Parent.Parent{Module})
+ then begin
+ Result := GetExternalName(AType.Parent.Parent);
+ end else begin
+ Result := '';
+ end;
+end;
+
{ TwstBinding }
constructor TwstBinding.Create(
diff --git a/wst/trunk/ws_helper/wsdl_parser.pas b/wst/trunk/ws_helper/wsdl_parser.pas
index 2b9beba27..94a5db3ae 100644
--- a/wst/trunk/ws_helper/wsdl_parser.pas
+++ b/wst/trunk/ws_helper/wsdl_parser.pas
@@ -846,6 +846,8 @@ begin
if Assigned(typeNode) then begin
ExtractSoapBindingStyle(bindingNode,locWStrBuffer);
locSoapBindingStyle := locWStrBuffer;
+ if IsStrEmpty(locSoapBindingStyle) then
+ locSoapBindingStyle := s_document;
intfDef := ParsePortType(typeNode,bindingNode,locSoapBindingStyle);
bdng := SymbolTable.AddBinding(bindingName,intfDef);
bdng.Address := ExtractAddress();
diff --git a/wst/trunk/ws_helper/xsd_generator.pas b/wst/trunk/ws_helper/xsd_generator.pas
index 759ae2a0f..61b1bca89 100644
--- a/wst/trunk/ws_helper/xsd_generator.pas
+++ b/wst/trunk/ws_helper/xsd_generator.pas
@@ -279,7 +279,7 @@ begin
c := Pred(ANode.Attributes.Length);
if ( AStartIndex >= 0 ) then
i := AStartIndex;
- for i := 0 to c do begin
+ for i := AStartIndex to c do begin
if AnsiSameText(AAttValue,ANode.Attributes.Item[i].NodeValue) and
( b or ( Pos(AStartingWith,ANode.Attributes.Item[i].NodeName) = 1 ))
then begin
@@ -530,25 +530,28 @@ begin
trueParent.InheritsFrom(TPasNativeSimpleType)
then begin
typeCategory := tcSimpleContent;
- derivationNode := CreateElement(Format('%s:%s',[s_xs_short,s_extension]),cplxNode,ADocument);
- s := Trim(GetNameSpaceShortName(GetTypeNameSpace(AContainer,trueParent),ADocument));
- if ( Length(s) > 0 ) then begin
- s := s + ':';
- end;
- s := s + AContainer.GetExternalName(trueParent);
- derivationNode.SetAttribute(s_base,s);
- hasSequence := False;
end;
+ derivationNode := CreateElement(Format('%s:%s',[s_xs_short,s_extension]),cplxNode,ADocument);
+ s := Trim(GetNameSpaceShortName(GetTypeNameSpace(AContainer,trueParent),ADocument));
+ if ( Length(s) > 0 ) then begin
+ s := s + ':';
+ end;
+ s := s + AContainer.GetExternalName(trueParent);
+ derivationNode.SetAttribute(s_base,s);
+ hasSequence := False;
end;
- for i := 0 to Pred(typItm.Members.Count) do begin
- if TPasElement(typItm.Members[i]).InheritsFrom(TPasProperty) then begin
- p := TPasProperty(typItm.Members[i]);
- if not AContainer.IsAttributeProperty(p) then begin
- if ( typeCategory = tcSimpleContent ) then begin
- raise EXsdGeneratorException.CreateFmt('Invalid type definition, a simple type cannot have "not attribute" properties : "%s"',[AContainer.GetExternalName(ASymbol)]);
+ if ( typItm.Members.Count > 0 ) then begin
+ hasSequence := False;
+ for i := 0 to Pred(typItm.Members.Count) do begin
+ if TPasElement(typItm.Members[i]).InheritsFrom(TPasProperty) then begin
+ p := TPasProperty(typItm.Members[i]);
+ if not AContainer.IsAttributeProperty(p) then begin
+ if ( typeCategory = tcSimpleContent ) then begin
+ raise EXsdGeneratorException.CreateFmt('Invalid type definition, a simple type cannot have "not attribute" properties : "%s"',[AContainer.GetExternalName(ASymbol)]);
+ end;
+ hasSequence := True;
end;
end;
- hasSequence := True;
end;
end;
if hasSequence then begin
@@ -581,7 +584,11 @@ begin
propTypItm := p.VarType;
if Assigned(propTypItm) then begin
prop_ns_shortName := GetNameSpaceShortName(GetTypeNameSpace(AContainer,propTypItm),ADocument);
- propNode.SetAttribute(s_type,Format('%s:%s',[prop_ns_shortName,AContainer.GetExternalName(propTypItm)]));
+ if GetUltimeType(propTypItm).InheritsFrom(TPasArrayType) then
+ s := AContainer.GetExternalName(TPasArrayType(GetUltimeType(propTypItm)).ElType)
+ else
+ s := AContainer.GetExternalName(propTypItm);
+ propNode.SetAttribute(s_type,Format('%s:%s',[prop_ns_shortName,s]));
if AContainer.IsAttributeProperty(p) then begin
if AnsiSameText('Has',Copy(p.StoredAccessorName,1,3)) then
propNode.SetAttribute(s_use,'optional')
@@ -589,10 +596,13 @@ begin
propNode.SetAttribute(s_use,'required');
end else begin
if AnsiSameText('Has',Copy(p.StoredAccessorName,1,3)) then
- propNode.SetAttribute(s_minOccurs,'0')
- else
- propNode.SetAttribute(s_minOccurs,'1');
- propNode.SetAttribute(s_maxOccurs,'1');
+ propNode.SetAttribute(s_minOccurs,'0');
+ {else
+ propNode.SetAttribute(s_minOccurs,'1');}
+ if GetUltimeType(propTypItm).InheritsFrom(TPasArrayType) then
+ propNode.SetAttribute(s_maxOccurs,s_unbounded)
+ {else
+ propNode.SetAttribute(s_maxOccurs,'1');}
end;
end;
end;
diff --git a/wst/trunk/ws_helper/xsd_parser.pas b/wst/trunk/ws_helper/xsd_parser.pas
index 6956a5a34..31f475d36 100644
--- a/wst/trunk/ws_helper/xsd_parser.pas
+++ b/wst/trunk/ws_helper/xsd_parser.pas
@@ -188,6 +188,8 @@ end;
function TCustomXsdSchemaParser.FindElement(const AName: String): TPasElement;
begin
Result := SymbolTable.FindElementInModule(AName,FModule);
+ if ( Result = nil ) then
+ Result := SymbolTable.FindElement(AName);
end;
function TCustomXsdSchemaParser.FindNamedNode(
@@ -484,8 +486,7 @@ end;
procedure TCustomXsdSchemaParser.ParseTypes();
var
- nd : TDOMNodeRttiExposer;
- schmCrsr, crsSchemaChild, typTmpCrs : IObjectCursor;
+ crsSchemaChild, typTmpCrs : IObjectCursor;
typFilterStr : string;
typNode : TDOMNode;
begin