You've already forked lazarus-ccr
wsdl2pas_imp.pas has been reorganized :
- xsd_parser.pas XML schema parser - wsdl_parser.pas WSDL parser ( uses xsd_parser to parse type definitions ) ws_helper now supports XML Schema ( .XSD files ) parsing. test cases for XSD and WSDL parsers git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@264 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -34,10 +34,10 @@
|
||||
-N"obj"
|
||||
-LE"c:\program files\borland\delphi7\Projects\Bpl"
|
||||
-LN"c:\program files\borland\delphi7\Projects\Bpl"
|
||||
-U"..\;..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src"
|
||||
-O"..\;..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src"
|
||||
-I"..\;..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src"
|
||||
-R"..\;..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src"
|
||||
-U"..\;..\..\;..\..\..\;..\..\..\fcl-units\fcl-passrc\src;..\..\..\ws_helper;..\..\..\wst_rtti_filter;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src"
|
||||
-O"..\;..\..\;..\..\..\;..\..\..\fcl-units\fcl-passrc\src;..\..\..\ws_helper;..\..\..\wst_rtti_filter;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src"
|
||||
-I"..\;..\..\;..\..\..\;..\..\..\fcl-units\fcl-passrc\src;..\..\..\ws_helper;..\..\..\wst_rtti_filter;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src"
|
||||
-R"..\;..\..\;..\..\..\;..\..\..\fcl-units\fcl-passrc\src;..\..\..\ws_helper;..\..\..\wst_rtti_filter;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src"
|
||||
-DDUnit
|
||||
-w-UNSAFE_TYPE
|
||||
-w-UNSAFE_CODE
|
||||
|
@ -94,7 +94,7 @@ OutputDir=
|
||||
UnitOutputDir=obj
|
||||
PackageDLLOutputDir=
|
||||
PackageDCPOutputDir=
|
||||
SearchPath=..\;..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src
|
||||
SearchPath=..\;..\..\;..\..\..\;..\..\..\fcl-units\fcl-passrc\src;..\..\..\ws_helper;..\..\..\wst_rtti_filter;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src
|
||||
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=DUnit
|
||||
DebugSourceDirs=
|
||||
@ -149,17 +149,20 @@ Item0=DUnit
|
||||
Count=1
|
||||
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
|
||||
[HistoryLists\hlSearchPath]
|
||||
Count=10
|
||||
Item0=..\;..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src
|
||||
Item1=..\;..\..\;..\..\..\;C:\Programmes\lazarus\wst\trunk\ws_helper;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src
|
||||
Item2=..\;..\..\;..\..\..\;..\..\ws_helper;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src
|
||||
Item3=..\;..\..\;..\..\..\;..\..\ws_helper\;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src
|
||||
Item4=..\;..\..\;..\..\..\;..\..\ws_helper\;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src;C:\Programmes\lazarus\wst\trunk\ws_helper
|
||||
Item5=..\;..\..\;..\..\..\;..\..\..\ws_helper\;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src
|
||||
Item6=..\;..\..\;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src
|
||||
Item7=..\;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src
|
||||
Item8=C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src
|
||||
Item9=..\
|
||||
Count=13
|
||||
Item0=..\;..\..\;..\..\..\;..\..\..\fcl-units\fcl-passrc\src;..\..\..\ws_helper;..\..\..\wst_rtti_filter;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src
|
||||
Item1=..\;..\..\;..\..\..\;..\..\..\fcl-units\fcl-passrc\src;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src;..\..\..\ws_helper
|
||||
Item2=..\;..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src;..\..\..\fcl-units\fcl-passrc\src
|
||||
Item3=..\;..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src
|
||||
Item4=..\;..\..\;..\..\..\;C:\Programmes\lazarus\wst\trunk\ws_helper;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src
|
||||
Item5=..\;..\..\;..\..\..\;..\..\ws_helper;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src
|
||||
Item6=..\;..\..\;..\..\..\;..\..\ws_helper\;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src
|
||||
Item7=..\;..\..\;..\..\..\;..\..\ws_helper\;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src;C:\Programmes\lazarus\wst\trunk\ws_helper
|
||||
Item8=..\;..\..\;..\..\..\;..\..\..\ws_helper\;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src
|
||||
Item9=..\;..\..\;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src
|
||||
Item10=..\;C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src
|
||||
Item11=C:\Program Files\Borland\Delphi7\plate_forme\dunit\dunit-9.3.0\src
|
||||
Item12=..\
|
||||
[HistoryLists\hlUnitOutputDirectory]
|
||||
Count=1
|
||||
Item0=obj
|
||||
|
@ -1,11 +1,13 @@
|
||||
{$APPTYPE CONSOLE}
|
||||
program wst_test_suite;
|
||||
uses
|
||||
SysUtils, ActiveX,
|
||||
SysUtils,
|
||||
ActiveX,
|
||||
TestFrameWork,
|
||||
TextTestRunner,
|
||||
test_utilities in '..\test_utilities.pas',
|
||||
testformatter_unit in '..\testformatter_unit.pas';
|
||||
testformatter_unit in '..\testformatter_unit.pas',
|
||||
test_parsers in '..\test_parsers.pas';
|
||||
|
||||
{$R *.res}
|
||||
|
||||
|
48
wst/trunk/tests/test_suite/files/complex_class.WSDL
Normal file
48
wst/trunk/tests/test_suite/files/complex_class.WSDL
Normal file
@ -0,0 +1,48 @@
|
||||
<?xml version="1.0"?>
|
||||
<definitions name="wst_test"
|
||||
xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:tns="library1"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
targetNamespace="urn:wst-test">
|
||||
|
||||
<types>
|
||||
|
||||
<xsd:schema xmlns:n="urn:wst-test"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="urn:wst-test">
|
||||
|
||||
<xsd:complexType name="TClassSampleType">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="intField" type="xsd:int" />
|
||||
<xsd:element name="strField" type="xsd:string" minOccurs="1" maxOccurs="1"/>
|
||||
<xsd:element name="floatField" type="xsd:float" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element name="byteField" type="xsd:byte" maxOccurs="1"/>
|
||||
<xsd:element name="charField" type="xsd:char" minOccurs="1"/>
|
||||
<xsd:element name="longField" type="xsd:long" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="strAtt" type="xsd:string"/>
|
||||
<xsd:attribute name="intAtt" type="xsd:int"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:element name="TClassSample" type="n:TClassSampleType"/>
|
||||
|
||||
<xsd:complexType name="TClassSampleTypeAll">
|
||||
<xsd:all>
|
||||
<xsd:element name="intField" type="xsd:int" />
|
||||
<xsd:element name="strField" type="xsd:string" minOccurs="1" maxOccurs="1"/>
|
||||
<xsd:element name="floatField" type="xsd:float" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element name="byteField" type="xsd:byte" maxOccurs="1"/>
|
||||
<xsd:element name="charField" type="xsd:char" minOccurs="1"/>
|
||||
<xsd:element name="longField" type="xsd:long" minOccurs="0"/>
|
||||
</xsd:all>
|
||||
<xsd:attribute name="strAtt" type="xsd:string"/>
|
||||
<xsd:attribute name="intAtt" type="xsd:int"/>
|
||||
</xsd:complexType>
|
||||
|
||||
</xsd:schema>
|
||||
|
||||
</types>
|
||||
|
||||
|
||||
</definitions>
|
34
wst/trunk/tests/test_suite/files/complex_class.xsd
Normal file
34
wst/trunk/tests/test_suite/files/complex_class.xsd
Normal file
@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsd:schema xmlns:n="urn:wst-test"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="urn:wst-test">
|
||||
|
||||
<xsd:complexType name="TClassSampleType">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="intField" type="xsd:int" />
|
||||
<xsd:element name="strField" type="xsd:string" minOccurs="1" maxOccurs="1"/>
|
||||
<xsd:element name="floatField" type="xsd:float" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element name="byteField" type="xsd:byte" maxOccurs="1"/>
|
||||
<xsd:element name="charField" type="xsd:char" minOccurs="1"/>
|
||||
<xsd:element name="longField" type="xsd:long" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="strAtt" type="xsd:string"/>
|
||||
<xsd:attribute name="intAtt" type="xsd:int"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:element name="TClassSample" type="n:TClassSampleType"/>
|
||||
|
||||
<xsd:complexType name="TClassSampleTypeAll">
|
||||
<xsd:all>
|
||||
<xsd:element name="intField" type="xsd:int" />
|
||||
<xsd:element name="strField" type="xsd:string" minOccurs="1" maxOccurs="1"/>
|
||||
<xsd:element name="floatField" type="xsd:float" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element name="byteField" type="xsd:byte" maxOccurs="1"/>
|
||||
<xsd:element name="charField" type="xsd:char" minOccurs="1"/>
|
||||
<xsd:element name="longField" type="xsd:long" minOccurs="0"/>
|
||||
</xsd:all>
|
||||
<xsd:attribute name="strAtt" type="xsd:string"/>
|
||||
<xsd:attribute name="intAtt" type="xsd:int"/>
|
||||
</xsd:complexType>
|
||||
|
||||
</xsd:schema>
|
61
wst/trunk/tests/test_suite/files/complex_class_embedded.WSDL
Normal file
61
wst/trunk/tests/test_suite/files/complex_class_embedded.WSDL
Normal file
@ -0,0 +1,61 @@
|
||||
<?xml version="1.0"?>
|
||||
<definitions name="wst_test"
|
||||
xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:tns="library1"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
targetNamespace="urn:wst-test">
|
||||
|
||||
<types>
|
||||
|
||||
<xsd:schema xmlns:n="urn:wst-test"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="urn:wst-test">
|
||||
|
||||
<xsd:element name="TClassSampleType">
|
||||
<xsd:complexType >
|
||||
<xsd:sequence>
|
||||
<xsd:element name="intField" type="xsd:int" />
|
||||
<xsd:element name="strField" type="xsd:string" minOccurs="1" maxOccurs="1"/>
|
||||
<xsd:element name="floatField" type="xsd:float" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element name="byteField" type="xsd:byte" maxOccurs="1"/>
|
||||
<xsd:element name="charField" type="xsd:char" minOccurs="1"/>
|
||||
<xsd:element name="longField" type="xsd:long" minOccurs="0"/>
|
||||
|
||||
<xsd:element name="classField" >
|
||||
<xsd:complexType >
|
||||
<xsd:sequence>
|
||||
<xsd:element name="intFieldE" type="xsd:int" />
|
||||
<xsd:element name="strFieldE" type="xsd:string" minOccurs="1" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="strAttE" type="xsd:string"/>
|
||||
<xsd:attribute name="intAttE" type="xsd:int"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="enumField" >
|
||||
<xsd:simpleType>
|
||||
<xsd:restriction base="xsd:token">
|
||||
<xsd:enumeration value="esOne"> </xsd:enumeration>
|
||||
<xsd:enumeration value="esTwo"> </xsd:enumeration>
|
||||
<xsd:enumeration value="esThree"> </xsd:enumeration>
|
||||
<xsd:enumeration value="begin"> </xsd:enumeration>
|
||||
<xsd:enumeration value="finally"> </xsd:enumeration>
|
||||
<xsd:enumeration value="True"> </xsd:enumeration>
|
||||
<xsd:enumeration value="False"> </xsd:enumeration>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
</xsd:element>
|
||||
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="strAtt" type="xsd:string"/>
|
||||
<xsd:attribute name="intAtt" type="xsd:int"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
</xsd:schema>
|
||||
|
||||
</types>
|
||||
|
||||
|
||||
</definitions>
|
47
wst/trunk/tests/test_suite/files/complex_class_embedded.xsd
Normal file
47
wst/trunk/tests/test_suite/files/complex_class_embedded.xsd
Normal file
@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsd:schema xmlns:n="urn:wst-test"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="urn:wst-test">
|
||||
|
||||
<xsd:element name="TClassSampleType">
|
||||
<xsd:complexType >
|
||||
<xsd:sequence>
|
||||
<xsd:element name="intField" type="xsd:int" />
|
||||
<xsd:element name="strField" type="xsd:string" minOccurs="1" maxOccurs="1"/>
|
||||
<xsd:element name="floatField" type="xsd:float" minOccurs="0" maxOccurs="1"/>
|
||||
<xsd:element name="byteField" type="xsd:byte" maxOccurs="1"/>
|
||||
<xsd:element name="charField" type="xsd:char" minOccurs="1"/>
|
||||
<xsd:element name="longField" type="xsd:long" minOccurs="0"/>
|
||||
|
||||
<xsd:element name="classField" >
|
||||
<xsd:complexType >
|
||||
<xsd:sequence>
|
||||
<xsd:element name="intFieldE" type="xsd:int" />
|
||||
<xsd:element name="strFieldE" type="xsd:string" minOccurs="1" maxOccurs="1"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="strAttE" type="xsd:string"/>
|
||||
<xsd:attribute name="intAttE" type="xsd:int"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="enumField" >
|
||||
<xsd:simpleType>
|
||||
<xsd:restriction base="xsd:token">
|
||||
<xsd:enumeration value="esOne"> </xsd:enumeration>
|
||||
<xsd:enumeration value="esTwo"> </xsd:enumeration>
|
||||
<xsd:enumeration value="esThree"> </xsd:enumeration>
|
||||
<xsd:enumeration value="begin"> </xsd:enumeration>
|
||||
<xsd:enumeration value="finally"> </xsd:enumeration>
|
||||
<xsd:enumeration value="True"> </xsd:enumeration>
|
||||
<xsd:enumeration value="False"> </xsd:enumeration>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
</xsd:element>
|
||||
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="strAtt" type="xsd:string"/>
|
||||
<xsd:attribute name="intAtt" type="xsd:int"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
</xsd:schema>
|
15
wst/trunk/tests/test_suite/files/empty.WSDL
Normal file
15
wst/trunk/tests/test_suite/files/empty.WSDL
Normal file
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0"?>
|
||||
<definitions name="wst_test"
|
||||
xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:tns="library1"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
targetNamespace="urn:wst-test">
|
||||
|
||||
<types>
|
||||
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:wst-test">
|
||||
</xsd:schema>
|
||||
</types>
|
||||
|
||||
|
||||
</definitions>
|
5
wst/trunk/tests/test_suite/files/empty.xsd
Normal file
5
wst/trunk/tests/test_suite/files/empty.xsd
Normal file
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsd:schema xmlns:n="urn:wst-test"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="urn:wst-test">
|
||||
</xsd:schema>
|
32
wst/trunk/tests/test_suite/files/simpletype.WSDL
Normal file
32
wst/trunk/tests/test_suite/files/simpletype.WSDL
Normal file
@ -0,0 +1,32 @@
|
||||
<?xml version="1.0"?>
|
||||
<definitions name="wst_test"
|
||||
xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:tns="library1"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
targetNamespace="urn:wst-test">
|
||||
|
||||
<types>
|
||||
<xsd:schema xmlns:n="urn:wst-test"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="urn:wst-test">
|
||||
|
||||
<xsd:simpleType name="EnumSampleType">
|
||||
<xsd:restriction base="xsd:token">
|
||||
<xsd:enumeration value="esOne"> </xsd:enumeration>
|
||||
<xsd:enumeration value="esTwo"> </xsd:enumeration>
|
||||
<xsd:enumeration value="esThree"> </xsd:enumeration>
|
||||
<xsd:enumeration value="begin"> </xsd:enumeration>
|
||||
<xsd:enumeration value="finally"> </xsd:enumeration>
|
||||
<xsd:enumeration value="True"> </xsd:enumeration>
|
||||
<xsd:enumeration value="False"> </xsd:enumeration>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:element name="EnumSample" type="n:EnumSampleType"/>
|
||||
|
||||
</xsd:schema>
|
||||
</types>
|
||||
|
||||
|
||||
</definitions>
|
20
wst/trunk/tests/test_suite/files/simpletype.xsd
Normal file
20
wst/trunk/tests/test_suite/files/simpletype.xsd
Normal file
@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsd:schema xmlns:n="urn:wst-test"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="urn:wst-test">
|
||||
|
||||
<xsd:simpleType name="EnumSampleType">
|
||||
<xsd:restriction base="xsd:token">
|
||||
<xsd:enumeration value="esOne"> </xsd:enumeration>
|
||||
<xsd:enumeration value="esTwo"> </xsd:enumeration>
|
||||
<xsd:enumeration value="esThree"> </xsd:enumeration>
|
||||
<xsd:enumeration value="begin"> </xsd:enumeration>
|
||||
<xsd:enumeration value="finally"> </xsd:enumeration>
|
||||
<xsd:enumeration value="True"> </xsd:enumeration>
|
||||
<xsd:enumeration value="False"> </xsd:enumeration>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:element name="EnumSample" type="n:EnumSampleType"/>
|
||||
|
||||
</xsd:schema>
|
32
wst/trunk/tests/test_suite/files/simpletype_embedded.WSDL
Normal file
32
wst/trunk/tests/test_suite/files/simpletype_embedded.WSDL
Normal file
@ -0,0 +1,32 @@
|
||||
<?xml version="1.0"?>
|
||||
<definitions name="wst_test"
|
||||
xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:tns="library1"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
targetNamespace="urn:wst-test">
|
||||
|
||||
<types>
|
||||
<xsd:schema xmlns:n="urn:wst-test"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="urn:wst-test">
|
||||
|
||||
<xsd:element name="EnumSampleType">
|
||||
<xsd:simpleType>
|
||||
<xsd:restriction base="xsd:token">
|
||||
<xsd:enumeration value="esOne"> </xsd:enumeration>
|
||||
<xsd:enumeration value="esTwo"> </xsd:enumeration>
|
||||
<xsd:enumeration value="esThree"> </xsd:enumeration>
|
||||
<xsd:enumeration value="begin"> </xsd:enumeration>
|
||||
<xsd:enumeration value="finally"> </xsd:enumeration>
|
||||
<xsd:enumeration value="True"> </xsd:enumeration>
|
||||
<xsd:enumeration value="False"> </xsd:enumeration>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
</xsd:element>
|
||||
|
||||
</xsd:schema>
|
||||
</types>
|
||||
|
||||
|
||||
</definitions>
|
20
wst/trunk/tests/test_suite/files/simpletype_embedded.xsd
Normal file
20
wst/trunk/tests/test_suite/files/simpletype_embedded.xsd
Normal file
@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsd:schema xmlns:n="urn:wst-test"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="urn:wst-test">
|
||||
|
||||
<xsd:element name="EnumSampleType">
|
||||
<xsd:simpleType>
|
||||
<xsd:restriction base="xsd:token">
|
||||
<xsd:enumeration value="esOne"> </xsd:enumeration>
|
||||
<xsd:enumeration value="esTwo"> </xsd:enumeration>
|
||||
<xsd:enumeration value="esThree"> </xsd:enumeration>
|
||||
<xsd:enumeration value="begin"> </xsd:enumeration>
|
||||
<xsd:enumeration value="finally"> </xsd:enumeration>
|
||||
<xsd:enumeration value="True"> </xsd:enumeration>
|
||||
<xsd:enumeration value="False"> </xsd:enumeration>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
</xsd:element>
|
||||
|
||||
</xsd:schema>
|
543
wst/trunk/tests/test_suite/test_parsers.pas
Normal file
543
wst/trunk/tests/test_suite/test_parsers.pas
Normal file
@ -0,0 +1,543 @@
|
||||
{ This file is part of the Web Service Toolkit
|
||||
Copyright (c) 2006, 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 test_parsers;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils,
|
||||
{$IFDEF FPC}
|
||||
fpcunit, testutils, testregistry, DOM, XmlRead, wst_fpc_xml,
|
||||
{$ELSE}
|
||||
TestFrameWork, xmldom, wst_delphi_xml,
|
||||
{$ENDIF}
|
||||
pastree, pascal_parser_intf, xsd_parser, wsdl_parser;
|
||||
|
||||
type
|
||||
|
||||
{ TTest_CustomXsdParser }
|
||||
|
||||
TTest_CustomXsdParser = class(TTestCase)
|
||||
protected
|
||||
function LoadEmptySchema() : TwstPasTreeContainer;virtual;abstract;
|
||||
function LoadSimpleType_Enum_Schema() : TwstPasTreeContainer;virtual;abstract;
|
||||
function LoadSimpleType_Enum_Embedded_Schema() : TwstPasTreeContainer;virtual;abstract;
|
||||
|
||||
function LoadComplexType_Class_Schema() : TwstPasTreeContainer;virtual;abstract;
|
||||
function LoadComplexType_Class_Embedded_Schema() : TwstPasTreeContainer;virtual;abstract;
|
||||
published
|
||||
procedure EmptySchema();
|
||||
|
||||
procedure SimpleType_Enum();
|
||||
procedure SimpleType_Enum_Embedded();
|
||||
|
||||
procedure ComplexType_Class();
|
||||
procedure ComplexType_Class_Embedded();
|
||||
end;
|
||||
|
||||
{ TTest_XsdParser }
|
||||
|
||||
TTest_XsdParser = class(TTest_CustomXsdParser)
|
||||
private
|
||||
function ParseDoc(const ADoc : string) : TwstPasTreeContainer;
|
||||
protected
|
||||
function LoadEmptySchema() : TwstPasTreeContainer;override;
|
||||
function LoadSimpleType_Enum_Schema() : TwstPasTreeContainer;override;
|
||||
function LoadSimpleType_Enum_Embedded_Schema() : TwstPasTreeContainer;override;
|
||||
function LoadComplexType_Class_Schema() : TwstPasTreeContainer;override;
|
||||
function LoadComplexType_Class_Embedded_Schema() : TwstPasTreeContainer;override;
|
||||
end;
|
||||
|
||||
{ TTest_WsdlParser }
|
||||
|
||||
TTest_WsdlParser = class(TTest_CustomXsdParser)
|
||||
private
|
||||
function ParseDoc(const ADoc : string) : TwstPasTreeContainer;
|
||||
protected
|
||||
function LoadEmptySchema() : TwstPasTreeContainer;override;
|
||||
function LoadSimpleType_Enum_Schema() : TwstPasTreeContainer;override;
|
||||
function LoadSimpleType_Enum_Embedded_Schema() : TwstPasTreeContainer;override;
|
||||
function LoadComplexType_Class_Schema() : TwstPasTreeContainer;override;
|
||||
function LoadComplexType_Class_Embedded_Schema() : TwstPasTreeContainer;override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
uses parserutils;
|
||||
|
||||
const
|
||||
x_complexType_SampleClassType = 'TClassSampleType';
|
||||
x_complexType_SampleClassTypeAll = 'TClassSampleTypeAll';
|
||||
x_complexType_SampleClass = 'TClassSample';
|
||||
x_complexType_class = 'complex_class';
|
||||
x_complexType_class_embedded = 'complex_class_embedded';
|
||||
|
||||
x_empty = 'empty';
|
||||
|
||||
x_enumSample = 'EnumSample';
|
||||
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_simpleType = 'simpletype';
|
||||
x_simpleTypeEmbedded = 'simpletype_embedded';
|
||||
|
||||
x_targetNamespace = 'urn:wst-test';
|
||||
|
||||
|
||||
x_byteField = 'byteField';
|
||||
x_charField = 'charField';
|
||||
x_classField = 'classField';
|
||||
x_enumField = 'enumField';
|
||||
x_floatField = 'floatField';
|
||||
x_intField = 'intField';
|
||||
x_longField = 'longField';
|
||||
x_strField = 'strField';
|
||||
|
||||
x_intAtt = 'intAtt';
|
||||
x_strAtt = 'strAtt';
|
||||
|
||||
|
||||
function LoadXmlFile(const AFileName : string) : TXMLDocument;
|
||||
begin
|
||||
Result := nil;
|
||||
ReadXMLFile(Result,AFileName);
|
||||
end;
|
||||
|
||||
{ TTest_CustomXsdParser }
|
||||
|
||||
procedure TTest_CustomXsdParser.EmptySchema();
|
||||
var
|
||||
tr : TwstPasTreeContainer;
|
||||
mdl : TPasModule;
|
||||
begin
|
||||
tr := LoadEmptySchema();
|
||||
mdl := tr.FindModule(x_targetNamespace);
|
||||
CheckNotNull(mdl);
|
||||
CheckEquals(x_empty,mdl.Name);
|
||||
CheckEquals(x_targetNamespace,tr.GetExternalName(mdl));
|
||||
CheckEquals(0,mdl.InterfaceSection.Declarations.Count);
|
||||
end;
|
||||
|
||||
procedure TTest_CustomXsdParser.SimpleType_Enum();
|
||||
var
|
||||
tr : TwstPasTreeContainer;
|
||||
mdl : TPasModule;
|
||||
ls : TList;
|
||||
elt : TPasElement;
|
||||
enumType : TPasEnumType;
|
||||
enumVal : TPasEnumValue;
|
||||
aliasType : TPasAliasType;
|
||||
i : Integer;
|
||||
begin
|
||||
tr := LoadSimpleType_Enum_Schema();
|
||||
|
||||
mdl := tr.FindModule(x_targetNamespace);
|
||||
CheckNotNull(mdl);
|
||||
CheckEquals(x_simpleType,mdl.Name);
|
||||
CheckEquals(x_targetNamespace,tr.GetExternalName(mdl));
|
||||
ls := mdl.InterfaceSection.Declarations;
|
||||
CheckEquals(2,ls.Count);
|
||||
elt := tr.FindElement(x_enumSampleType);
|
||||
CheckNotNull(elt,x_enumSampleType);
|
||||
CheckEquals(x_enumSampleType,elt.Name);
|
||||
CheckEquals(x_enumSampleType,tr.GetExternalName(elt));
|
||||
CheckIs(elt,TPasEnumType);
|
||||
enumType := elt as TPasEnumType;
|
||||
CheckEquals(x_enumSampleLIST_COUNT,enumType.Values.Count);
|
||||
for i := 0 to Pred(x_enumSampleLIST_COUNT) do begin
|
||||
enumVal := TPasEnumValue(enumType.Values[i]);
|
||||
CheckNotNull(enumVal);
|
||||
if IsReservedKeyWord(x_enumSampleLIST[i]) then begin
|
||||
CheckEquals(Format('%s_%s',[enumType.Name,x_enumSampleLIST[i]]),enumVal.Name);
|
||||
end else begin
|
||||
CheckEquals(x_enumSampleLIST[i],enumVal.Name);
|
||||
end;
|
||||
CheckEquals(x_enumSampleLIST[i],tr.GetExternalName(enumVal));
|
||||
end;
|
||||
|
||||
elt := tr.FindElement(x_enumSample);
|
||||
CheckNotNull(elt,x_enumSample);
|
||||
CheckEquals(x_enumSample,elt.Name);
|
||||
CheckEquals(x_enumSample,tr.GetExternalName(elt));
|
||||
CheckIs(elt,TPasAliasType);
|
||||
aliasType := elt as TPasAliasType;
|
||||
CheckNotNull(aliasType.DestType);
|
||||
CheckEquals(x_enumSampleType, tr.GetExternalName(aliasType.DestType));
|
||||
end;
|
||||
|
||||
procedure TTest_CustomXsdParser.SimpleType_Enum_Embedded();
|
||||
var
|
||||
tr : TwstPasTreeContainer;
|
||||
mdl : TPasModule;
|
||||
ls : TList;
|
||||
elt : TPasElement;
|
||||
enumType : TPasEnumType;
|
||||
enumVal : TPasEnumValue;
|
||||
aliasType : TPasAliasType;
|
||||
i : Integer;
|
||||
begin
|
||||
tr := LoadSimpleType_Enum_Embedded_Schema();
|
||||
|
||||
mdl := tr.FindModule(x_targetNamespace);
|
||||
CheckNotNull(mdl);
|
||||
CheckEquals(x_simpleTypeEmbedded,mdl.Name);
|
||||
CheckEquals(x_targetNamespace,tr.GetExternalName(mdl));
|
||||
ls := mdl.InterfaceSection.Declarations;
|
||||
CheckEquals(1,ls.Count);
|
||||
elt := tr.FindElement(x_enumSampleType);
|
||||
CheckNotNull(elt,x_enumSampleType);
|
||||
CheckEquals(x_enumSampleType,elt.Name);
|
||||
CheckEquals(x_enumSampleType,tr.GetExternalName(elt));
|
||||
CheckIs(elt,TPasEnumType);
|
||||
enumType := elt as TPasEnumType;
|
||||
CheckEquals(x_enumSampleLIST_COUNT,enumType.Values.Count);
|
||||
for i := 0 to Pred(x_enumSampleLIST_COUNT) do begin
|
||||
enumVal := TPasEnumValue(enumType.Values[i]);
|
||||
CheckNotNull(enumVal);
|
||||
if IsReservedKeyWord(x_enumSampleLIST[i]) then begin
|
||||
CheckEquals(Format('%s_%s',[enumType.Name,x_enumSampleLIST[i]]),enumVal.Name);
|
||||
end else begin
|
||||
CheckEquals(x_enumSampleLIST[i],enumVal.Name);
|
||||
end;
|
||||
CheckEquals(x_enumSampleLIST[i],tr.GetExternalName(enumVal));
|
||||
end;
|
||||
end;
|
||||
|
||||
type
|
||||
TPropertyType = ( ptField, ptAttribute );
|
||||
const
|
||||
PropertyType_Att : array[TPropertyType] of Boolean = ( False, True );
|
||||
procedure TTest_CustomXsdParser.ComplexType_Class();
|
||||
var
|
||||
tr : TwstPasTreeContainer;
|
||||
clsType : TPasClassType;
|
||||
|
||||
procedure CheckProperty(const AName,ATypeName : string; const AFieldType : TPropertyType);
|
||||
var
|
||||
prp : TPasProperty;
|
||||
begin
|
||||
prp := FindMember(clsType,AName) as TPasProperty;
|
||||
CheckNotNull(prp);
|
||||
CheckEquals(AName,prp.Name);
|
||||
CheckEquals(AName,tr.GetExternalName(prp));
|
||||
CheckNotNull(prp.VarType);
|
||||
CheckEquals(ATypeName,tr.GetExternalName(prp.VarType));
|
||||
CheckEquals(PropertyType_Att[AFieldType],tr.IsAttributeProperty(prp));
|
||||
end;
|
||||
|
||||
var
|
||||
mdl : TPasModule;
|
||||
ls : TList;
|
||||
elt : TPasElement;
|
||||
aliasType : TPasAliasType;
|
||||
i : Integer;
|
||||
prpLs : TList;
|
||||
begin
|
||||
prpLs := TList.Create();
|
||||
try
|
||||
tr := LoadComplexType_Class_Schema();
|
||||
|
||||
mdl := tr.FindModule(x_targetNamespace);
|
||||
CheckNotNull(mdl);
|
||||
CheckEquals(x_complexType_class,mdl.Name);
|
||||
CheckEquals(x_targetNamespace,tr.GetExternalName(mdl));
|
||||
ls := mdl.InterfaceSection.Declarations;
|
||||
CheckEquals(3,ls.Count);
|
||||
elt := tr.FindElement(x_complexType_SampleClassType);
|
||||
CheckNotNull(elt,x_complexType_SampleClassType);
|
||||
CheckEquals(x_complexType_SampleClassType,elt.Name);
|
||||
CheckEquals(x_complexType_SampleClassType,tr.GetExternalName(elt));
|
||||
CheckIs(elt,TPasClassType);
|
||||
clsType := elt as TPasClassType;
|
||||
prpLs.Clear();
|
||||
for i := 0 to Pred(clsType.Members.Count) do begin
|
||||
if TPasElement(clsType.Members[i]).InheritsFrom(TPasProperty) then
|
||||
prpLs.Add(clsType.Members[i]);
|
||||
end;
|
||||
CheckEquals(8,prpLs.Count);
|
||||
CheckProperty(x_intField,'int',ptField);
|
||||
CheckProperty(x_strField,'string',ptField);
|
||||
CheckProperty(x_floatField,'float',ptField);
|
||||
CheckProperty(x_byteField,'byte',ptField);
|
||||
CheckProperty(x_charField,'char',ptField);
|
||||
CheckProperty(x_longField,'long',ptField);
|
||||
CheckProperty(x_strAtt,'string',ptAttribute);
|
||||
CheckProperty(x_intAtt,'int',ptAttribute);
|
||||
|
||||
|
||||
elt := tr.FindElement(x_complexType_SampleClass);
|
||||
CheckNotNull(elt,x_complexType_SampleClass);
|
||||
CheckEquals(x_complexType_SampleClass,elt.Name);
|
||||
CheckEquals(x_complexType_SampleClass,tr.GetExternalName(elt));
|
||||
CheckIs(elt,TPasAliasType);
|
||||
aliasType := elt as TPasAliasType;
|
||||
CheckNotNull(aliasType.DestType);
|
||||
CheckEquals(x_complexType_SampleClassType, tr.GetExternalName(aliasType.DestType));
|
||||
|
||||
elt := tr.FindElement(x_complexType_SampleClassTypeAll);
|
||||
CheckNotNull(elt,x_complexType_SampleClassTypeAll);
|
||||
CheckEquals(x_complexType_SampleClassTypeAll,elt.Name);
|
||||
CheckEquals(x_complexType_SampleClassTypeAll,tr.GetExternalName(elt));
|
||||
CheckIs(elt,TPasClassType);
|
||||
clsType := elt as TPasClassType;
|
||||
prpLs.Clear();
|
||||
for i := 0 to Pred(clsType.Members.Count) do begin
|
||||
if TPasElement(clsType.Members[i]).InheritsFrom(TPasProperty) then
|
||||
prpLs.Add(clsType.Members[i]);
|
||||
end;
|
||||
CheckEquals(8,prpLs.Count);
|
||||
CheckProperty(x_intField,'int',ptField);
|
||||
CheckProperty(x_strField,'string',ptField);
|
||||
CheckProperty(x_floatField,'float',ptField);
|
||||
CheckProperty(x_byteField,'byte',ptField);
|
||||
CheckProperty(x_charField,'char',ptField);
|
||||
CheckProperty(x_longField,'long',ptField);
|
||||
CheckProperty(x_strAtt,'string',ptAttribute);
|
||||
CheckProperty(x_intAtt,'int',ptAttribute);
|
||||
|
||||
finally
|
||||
FreeAndNil(prpLs);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTest_CustomXsdParser.ComplexType_Class_Embedded();
|
||||
var
|
||||
tr : TwstPasTreeContainer;
|
||||
nestedClassName, nestedEnumName : string;
|
||||
|
||||
procedure CheckProperty(
|
||||
const AName,ATypeName : string;
|
||||
const AFieldType : TPropertyType;
|
||||
const AClsType : TPasClassType
|
||||
);
|
||||
var
|
||||
prp : TPasProperty;
|
||||
begin
|
||||
prp := FindMember(AClsType,AName) as TPasProperty;
|
||||
CheckNotNull(prp);
|
||||
CheckEquals(AName,prp.Name);
|
||||
CheckEquals(AName,tr.GetExternalName(prp));
|
||||
CheckNotNull(prp.VarType);
|
||||
CheckEquals(ATypeName,tr.GetExternalName(prp.VarType));
|
||||
CheckEquals(PropertyType_Att[AFieldType],tr.IsAttributeProperty(prp));
|
||||
end;
|
||||
|
||||
procedure CheckEmbeddedClassType();
|
||||
var
|
||||
mdl : TPasModule;
|
||||
e : TPasElement;
|
||||
k : Integer;
|
||||
prpLst : TList;
|
||||
nestedClsType : TPasClassType;
|
||||
begin
|
||||
prpLst := TList.Create();
|
||||
try
|
||||
nestedClassName := Format('%s_%s_Type',[x_complexType_SampleClassType,x_classField]);
|
||||
e := tr.FindElement(nestedClassName);
|
||||
CheckNotNull(e,nestedClassName);
|
||||
CheckEquals(nestedClassName,e.Name);
|
||||
CheckEquals(nestedClassName,tr.GetExternalName(e));
|
||||
CheckIs(e,TPasClassType);
|
||||
nestedClsType := e as TPasClassType;
|
||||
for k := 0 to Pred(nestedClsType.Members.Count) do begin
|
||||
if TPasElement(nestedClsType.Members[k]).InheritsFrom(TPasProperty) then
|
||||
prpLst.Add(nestedClsType.Members[k]);
|
||||
end;
|
||||
CheckEquals(4,prpLst.Count,nestedClassName + ' properties count.');
|
||||
CheckProperty(x_intField + 'E','int',ptField,nestedClsType);
|
||||
CheckProperty(x_strField + 'E','string',ptField,nestedClsType);
|
||||
CheckProperty(x_strAtt + 'E','string',ptAttribute,nestedClsType);
|
||||
CheckProperty(x_intAtt + 'E','int',ptAttribute,nestedClsType);
|
||||
finally
|
||||
FreeAndNil(prpLst);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure CheckEmbeddedEnum();
|
||||
var
|
||||
e : TPasElement;
|
||||
enumType : TPasEnumType;
|
||||
enumVal : TPasEnumValue;
|
||||
k : Integer;
|
||||
begin
|
||||
nestedEnumName := Format('%s_%s_Type',[x_complexType_SampleClassType,x_enumField]);
|
||||
e := tr.FindElement(nestedEnumName);
|
||||
CheckNotNull(e,nestedEnumName);
|
||||
CheckEquals(nestedEnumName,e.Name);
|
||||
CheckEquals(nestedEnumName,tr.GetExternalName(e));
|
||||
CheckIs(e,TPasEnumType);
|
||||
enumType := e as TPasEnumType;
|
||||
CheckEquals(x_enumSampleLIST_COUNT,enumType.Values.Count);
|
||||
for k := 0 to Pred(x_enumSampleLIST_COUNT) do begin
|
||||
enumVal := TPasEnumValue(enumType.Values[k]);
|
||||
CheckNotNull(enumVal,'Enum value');
|
||||
if IsReservedKeyWord(x_enumSampleLIST[k]) then begin
|
||||
CheckEquals(Format('%s_%s',[enumType.Name,x_enumSampleLIST[k]]),enumVal.Name);
|
||||
end else begin
|
||||
CheckEquals(x_enumSampleLIST[k],enumVal.Name);
|
||||
end;
|
||||
CheckEquals(x_enumSampleLIST[k],tr.GetExternalName(enumVal));
|
||||
end;
|
||||
end;
|
||||
|
||||
var
|
||||
mdl : TPasModule;
|
||||
clsType : TPasClassType;
|
||||
ls : TList;
|
||||
elt : TPasElement;
|
||||
aliasType : TPasAliasType;
|
||||
i : Integer;
|
||||
prpLs : TList;
|
||||
begin
|
||||
prpLs := TList.Create();
|
||||
try
|
||||
tr := LoadComplexType_Class_Embedded_Schema();
|
||||
|
||||
mdl := tr.FindModule(x_targetNamespace);
|
||||
CheckNotNull(mdl);
|
||||
CheckEquals(x_complexType_class_embedded,mdl.Name);
|
||||
CheckEquals(x_targetNamespace,tr.GetExternalName(mdl));
|
||||
ls := mdl.InterfaceSection.Declarations;
|
||||
CheckEquals(3,ls.Count);
|
||||
|
||||
CheckEmbeddedClassType();
|
||||
CheckEmbeddedEnum();
|
||||
|
||||
elt := tr.FindElement(x_complexType_SampleClassType);
|
||||
CheckNotNull(elt,x_complexType_SampleClassType);
|
||||
CheckEquals(x_complexType_SampleClassType,elt.Name);
|
||||
CheckEquals(x_complexType_SampleClassType,tr.GetExternalName(elt));
|
||||
CheckIs(elt,TPasClassType);
|
||||
clsType := elt as TPasClassType;
|
||||
prpLs.Clear();
|
||||
for i := 0 to Pred(clsType.Members.Count) do begin
|
||||
if TPasElement(clsType.Members[i]).InheritsFrom(TPasProperty) then
|
||||
prpLs.Add(clsType.Members[i]);
|
||||
end;
|
||||
CheckEquals(10,prpLs.Count);
|
||||
CheckProperty(x_intField,'int',ptField,clsType);
|
||||
CheckProperty(x_strField,'string',ptField,clsType);
|
||||
CheckProperty(x_floatField,'float',ptField,clsType);
|
||||
CheckProperty(x_byteField,'byte',ptField,clsType);
|
||||
CheckProperty(x_charField,'char',ptField,clsType);
|
||||
CheckProperty(x_longField,'long',ptField,clsType);
|
||||
CheckProperty(x_strAtt,'string',ptAttribute,clsType);
|
||||
CheckProperty(x_intAtt,'int',ptAttribute,clsType);
|
||||
CheckProperty(x_classField,nestedClassName,ptField,clsType);
|
||||
CheckProperty(x_enumField,nestedEnumName,ptField,clsType);
|
||||
|
||||
finally
|
||||
FreeAndNil(prpLs);
|
||||
end;
|
||||
end;
|
||||
|
||||
{ TTest_XsdParser }
|
||||
|
||||
function TTest_XsdParser.ParseDoc(const ADoc: string): TwstPasTreeContainer;
|
||||
var
|
||||
locDoc : TXMLDocument;
|
||||
prs : IXsdPaser;
|
||||
fileName : string;
|
||||
begin
|
||||
fileName := Format('.%sfiles%s%s.xsd',[PathDelim,PathDelim,ADoc]);
|
||||
{$IFNDEF FPC}
|
||||
fileName := Format('..%s%s',[PathDelim,fileName]);
|
||||
{$ENDIF}
|
||||
locDoc := LoadXmlFile(fileName);
|
||||
try
|
||||
Result := TwstPasTreeContainer.Create();
|
||||
CreateWstInterfaceSymbolTable(Result);
|
||||
prs := TXsdParser.Create(locDoc,Result,ADoc);
|
||||
prs.ParseTypes();
|
||||
finally
|
||||
ReleaseDomNode(locDoc);
|
||||
end;
|
||||
end;
|
||||
|
||||
function TTest_XsdParser.LoadEmptySchema(): TwstPasTreeContainer;
|
||||
begin
|
||||
Result := ParseDoc(x_empty);
|
||||
end;
|
||||
|
||||
function TTest_XsdParser.LoadSimpleType_Enum_Schema(): TwstPasTreeContainer;
|
||||
begin
|
||||
Result := ParseDoc(x_simpleType);
|
||||
end;
|
||||
|
||||
function TTest_XsdParser.LoadSimpleType_Enum_Embedded_Schema(): TwstPasTreeContainer;
|
||||
begin
|
||||
Result := ParseDoc(x_simpleTypeEmbedded);
|
||||
end;
|
||||
|
||||
function TTest_XsdParser.LoadComplexType_Class_Schema(): TwstPasTreeContainer;
|
||||
begin
|
||||
Result := ParseDoc(x_complexType_class);
|
||||
end;
|
||||
|
||||
function TTest_XsdParser.LoadComplexType_Class_Embedded_Schema(): TwstPasTreeContainer;
|
||||
begin
|
||||
Result := ParseDoc(x_complexType_class_embedded);
|
||||
end;
|
||||
|
||||
{ TTest_WsdlParser }
|
||||
|
||||
function TTest_WsdlParser.ParseDoc(const ADoc: string): TwstPasTreeContainer;
|
||||
var
|
||||
locDoc : TXMLDocument;
|
||||
prs : IParser;
|
||||
fileName : string;
|
||||
begin
|
||||
fileName := Format('.%sfiles%s%s.wsdl',[PathDelim,PathDelim,ADoc]);
|
||||
{$IFNDEF FPC}
|
||||
fileName := Format('..%s%s',[PathDelim,fileName]);
|
||||
{$ENDIF}
|
||||
locDoc := LoadXmlFile(fileName);
|
||||
try
|
||||
Result := TwstPasTreeContainer.Create();
|
||||
CreateWstInterfaceSymbolTable(Result);
|
||||
prs := TWsdlParser.Create(locDoc,Result);
|
||||
prs.Execute(pmAllTypes,ADoc);
|
||||
finally
|
||||
ReleaseDomNode(locDoc);
|
||||
end;
|
||||
end;
|
||||
|
||||
function TTest_WsdlParser.LoadEmptySchema(): TwstPasTreeContainer;
|
||||
begin
|
||||
Result := ParseDoc(x_empty);
|
||||
end;
|
||||
|
||||
function TTest_WsdlParser.LoadSimpleType_Enum_Schema(): TwstPasTreeContainer;
|
||||
begin
|
||||
Result := ParseDoc(x_simpleType);
|
||||
end;
|
||||
|
||||
function TTest_WsdlParser.LoadSimpleType_Enum_Embedded_Schema(): TwstPasTreeContainer;
|
||||
begin
|
||||
Result := ParseDoc(x_simpleTypeEmbedded);
|
||||
end;
|
||||
|
||||
function TTest_WsdlParser.LoadComplexType_Class_Schema(): TwstPasTreeContainer;
|
||||
begin
|
||||
Result := ParseDoc(x_complexType_class);
|
||||
end;
|
||||
|
||||
function TTest_WsdlParser.LoadComplexType_Class_Embedded_Schema(): TwstPasTreeContainer;
|
||||
begin
|
||||
Result := ParseDoc(x_complexType_class_embedded);
|
||||
end;
|
||||
|
||||
initialization
|
||||
RegisterTest('XSD parser',TTest_XsdParser.Suite);
|
||||
RegisterTest('WSDL parser',TTest_WsdlParser.Suite);
|
||||
|
||||
end.
|
@ -27,7 +27,7 @@
|
||||
<PackageName Value="FPCUnitTestRunner"/>
|
||||
</Item1>
|
||||
</RequiredPackages>
|
||||
<Units Count="75">
|
||||
<Units Count="83">
|
||||
<Unit0>
|
||||
<Filename Value="wst_test_suite.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
@ -40,9 +40,9 @@
|
||||
<Filename Value="testformatter_unit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="testformatter_unit"/>
|
||||
<CursorPos X="27" Y="3935"/>
|
||||
<TopLine Value="3914"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<CursorPos X="5" Y="3943"/>
|
||||
<TopLine Value="3900"/>
|
||||
<EditorIndex Value="0"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Bookmarks Count="1">
|
||||
<Item0 X="17" Y="1058" ID="3"/>
|
||||
@ -61,33 +61,29 @@
|
||||
<Filename Value="..\..\soap_formatter.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="soap_formatter"/>
|
||||
<CursorPos X="33" Y="31"/>
|
||||
<TopLine Value="22"/>
|
||||
<CursorPos X="1" Y="188"/>
|
||||
<TopLine Value="173"/>
|
||||
<UsageCount Value="200"/>
|
||||
</Unit3>
|
||||
<Unit4>
|
||||
<Filename Value="..\..\base_binary_formatter.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="base_binary_formatter"/>
|
||||
<CursorPos X="28" Y="223"/>
|
||||
<CursorPos X="42" Y="219"/>
|
||||
<TopLine Value="211"/>
|
||||
<EditorIndex Value="8"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit4>
|
||||
<Unit5>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="base_service_intf"/>
|
||||
<CursorPos X="26" Y="1232"/>
|
||||
<TopLine Value="1220"/>
|
||||
<EditorIndex Value="0"/>
|
||||
<CursorPos X="1" Y="4553"/>
|
||||
<TopLine Value="4538"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Bookmarks Count="2">
|
||||
<Item0 X="33" Y="1135" ID="0"/>
|
||||
<Item1 X="5" Y="1189" ID="1"/>
|
||||
</Bookmarks>
|
||||
<Loaded Value="True"/>
|
||||
</Unit5>
|
||||
<Unit6>
|
||||
<Filename Value="..\..\base_soap_formatter.pas"/>
|
||||
@ -101,8 +97,8 @@
|
||||
<Filename Value="..\..\binary_formatter.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="binary_formatter"/>
|
||||
<CursorPos X="28" Y="112"/>
|
||||
<TopLine Value="48"/>
|
||||
<CursorPos X="1" Y="125"/>
|
||||
<TopLine Value="110"/>
|
||||
<UsageCount Value="200"/>
|
||||
</Unit7>
|
||||
<Unit8>
|
||||
@ -122,9 +118,7 @@
|
||||
<UnitName Value="server_binary_formatter"/>
|
||||
<CursorPos X="9" Y="123"/>
|
||||
<TopLine Value="27"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit9>
|
||||
<Unit10>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
@ -138,8 +132,8 @@
|
||||
<Filename Value="testmetadata_unit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="testmetadata_unit"/>
|
||||
<CursorPos X="1" Y="30"/>
|
||||
<TopLine Value="7"/>
|
||||
<CursorPos X="1" Y="161"/>
|
||||
<TopLine Value="146"/>
|
||||
<UsageCount Value="202"/>
|
||||
</Unit11>
|
||||
<Unit12>
|
||||
@ -154,8 +148,8 @@
|
||||
<Filename Value="..\..\ws_helper\parserdefs.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="parserdefs"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="16"/>
|
||||
<CursorPos X="62" Y="1028"/>
|
||||
<TopLine Value="1009"/>
|
||||
<UsageCount Value="202"/>
|
||||
<Bookmarks Count="1">
|
||||
<Item0 X="18" Y="1133" ID="2"/>
|
||||
@ -165,24 +159,22 @@
|
||||
<Filename Value="..\..\metadata_wsdl.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="metadata_wsdl"/>
|
||||
<CursorPos X="43" Y="869"/>
|
||||
<TopLine Value="834"/>
|
||||
<EditorIndex Value="9"/>
|
||||
<CursorPos X="40" Y="836"/>
|
||||
<TopLine Value="828"/>
|
||||
<UsageCount Value="206"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit14>
|
||||
<Unit15>
|
||||
<Filename Value="D:\Lazarus\fpcsrc\fcl\xml\dom.pp"/>
|
||||
<UnitName Value="DOM"/>
|
||||
<CursorPos X="15" Y="429"/>
|
||||
<TopLine Value="413"/>
|
||||
<UsageCount Value="2"/>
|
||||
<UsageCount Value="1"/>
|
||||
</Unit15>
|
||||
<Unit16>
|
||||
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\rtl\objpas\sysutils\sysutilh.inc"/>
|
||||
<CursorPos X="13" Y="235"/>
|
||||
<TopLine Value="215"/>
|
||||
<UsageCount Value="6"/>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit16>
|
||||
<Unit17>
|
||||
<Filename Value="..\..\server_service_intf.pas"/>
|
||||
@ -190,49 +182,45 @@
|
||||
<UnitName Value="server_service_intf"/>
|
||||
<CursorPos X="25" Y="14"/>
|
||||
<TopLine Value="97"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<UsageCount Value="203"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit17>
|
||||
<Unit18>
|
||||
<Filename Value="..\..\service_intf.pas"/>
|
||||
<UnitName Value="service_intf"/>
|
||||
<CursorPos X="15" Y="22"/>
|
||||
<TopLine Value="10"/>
|
||||
<EditorIndex Value="6"/>
|
||||
<UsageCount Value="23"/>
|
||||
<Loaded Value="True"/>
|
||||
<UsageCount Value="25"/>
|
||||
</Unit18>
|
||||
<Unit19>
|
||||
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\rtl\objpas\classes\classesh.inc"/>
|
||||
<CursorPos X="3" Y="316"/>
|
||||
<TopLine Value="304"/>
|
||||
<UsageCount Value="6"/>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit19>
|
||||
<Unit20>
|
||||
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\rtl\objpas\classes\lists.inc"/>
|
||||
<CursorPos X="3" Y="407"/>
|
||||
<TopLine Value="404"/>
|
||||
<UsageCount Value="6"/>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit20>
|
||||
<Unit21>
|
||||
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\fcl\inc\contnrs.pp"/>
|
||||
<UnitName Value="contnrs"/>
|
||||
<CursorPos X="3" Y="474"/>
|
||||
<TopLine Value="471"/>
|
||||
<UsageCount Value="6"/>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit21>
|
||||
<Unit22>
|
||||
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\rtl\inc\objpash.inc"/>
|
||||
<CursorPos X="27" Y="121"/>
|
||||
<TopLine Value="104"/>
|
||||
<UsageCount Value="6"/>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit22>
|
||||
<Unit23>
|
||||
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\rtl\inc\objpas.inc"/>
|
||||
<CursorPos X="9" Y="166"/>
|
||||
<TopLine Value="142"/>
|
||||
<UsageCount Value="6"/>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit23>
|
||||
<Unit24>
|
||||
<Filename Value="D:\Lazarus\components\fpcunit\guitestrunner.pas"/>
|
||||
@ -241,30 +229,28 @@
|
||||
<UnitName Value="GuiTestRunner"/>
|
||||
<CursorPos X="34" Y="32"/>
|
||||
<TopLine Value="25"/>
|
||||
<UsageCount Value="6"/>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit24>
|
||||
<Unit25>
|
||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\fcl\fpcunit\fpcunit.pp"/>
|
||||
<UnitName Value="fpcunit"/>
|
||||
<CursorPos X="21" Y="94"/>
|
||||
<TopLine Value="83"/>
|
||||
<UsageCount Value="4"/>
|
||||
<UsageCount Value="3"/>
|
||||
</Unit25>
|
||||
<Unit26>
|
||||
<Filename Value="..\..\imp_utils.pas"/>
|
||||
<UnitName Value="imp_utils"/>
|
||||
<CursorPos X="12" Y="47"/>
|
||||
<TopLine Value="182"/>
|
||||
<EditorIndex Value="7"/>
|
||||
<UsageCount Value="15"/>
|
||||
<Loaded Value="True"/>
|
||||
<CursorPos X="1" Y="105"/>
|
||||
<TopLine Value="90"/>
|
||||
<UsageCount Value="17"/>
|
||||
</Unit26>
|
||||
<Unit27>
|
||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\fcl\xml\xmlread.pp"/>
|
||||
<UnitName Value="XMLRead"/>
|
||||
<CursorPos X="43" Y="13"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="2"/>
|
||||
<UsageCount Value="1"/>
|
||||
</Unit27>
|
||||
<Unit28>
|
||||
<Filename Value="test_parserdef.pas"/>
|
||||
@ -278,241 +264,237 @@
|
||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\inc\objpash.inc"/>
|
||||
<CursorPos X="8" Y="190"/>
|
||||
<TopLine Value="133"/>
|
||||
<UsageCount Value="3"/>
|
||||
<UsageCount Value="2"/>
|
||||
</Unit29>
|
||||
<Unit30>
|
||||
<Filename Value="..\..\wst.inc"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="9"/>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit30>
|
||||
<Unit31>
|
||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\inc\heaph.inc"/>
|
||||
<CursorPos X="43" Y="100"/>
|
||||
<TopLine Value="83"/>
|
||||
<UsageCount Value="1"/>
|
||||
</Unit31>
|
||||
<Unit32>
|
||||
<Filename Value="..\test_fpc\interface_problem\interface_problem.pas"/>
|
||||
<UnitName Value="interface_problem"/>
|
||||
<CursorPos X="1" Y="10"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit32>
|
||||
<Unit33>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit31>
|
||||
<Unit32>
|
||||
<Filename Value="..\..\base_xmlrpc_formatter.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="base_xmlrpc_formatter"/>
|
||||
<CursorPos X="35" Y="355"/>
|
||||
<TopLine Value="330"/>
|
||||
<UsageCount Value="151"/>
|
||||
</Unit33>
|
||||
<Unit34>
|
||||
<CursorPos X="70" Y="354"/>
|
||||
<TopLine Value="325"/>
|
||||
<UsageCount Value="165"/>
|
||||
</Unit32>
|
||||
<Unit33>
|
||||
<Filename Value="..\..\ws_helper\pscanner.pp"/>
|
||||
<UnitName Value="PScanner"/>
|
||||
<CursorPos X="19" Y="505"/>
|
||||
<TopLine Value="491"/>
|
||||
<UsageCount Value="16"/>
|
||||
</Unit34>
|
||||
<Unit35>
|
||||
<UsageCount Value="15"/>
|
||||
</Unit33>
|
||||
<Unit34>
|
||||
<Filename Value="..\..\ws_helper\pascal_parser_intf.pas"/>
|
||||
<UnitName Value="pascal_parser_intf"/>
|
||||
<CursorPos X="62" Y="296"/>
|
||||
<TopLine Value="296"/>
|
||||
<UsageCount Value="26"/>
|
||||
</Unit35>
|
||||
<Unit36>
|
||||
<CursorPos X="3" Y="226"/>
|
||||
<TopLine Value="206"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<UsageCount Value="32"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit34>
|
||||
<Unit35>
|
||||
<Filename Value="..\..\ws_helper\pastree.pp"/>
|
||||
<UnitName Value="PasTree"/>
|
||||
<CursorPos X="18" Y="254"/>
|
||||
<TopLine Value="243"/>
|
||||
<UsageCount Value="16"/>
|
||||
</Unit36>
|
||||
<Unit37>
|
||||
<CursorPos X="5" Y="150"/>
|
||||
<TopLine Value="135"/>
|
||||
<UsageCount Value="15"/>
|
||||
</Unit35>
|
||||
<Unit36>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215\fpc\2.1.5\source\packages\fcl-xml\src\dom.pp"/>
|
||||
<UnitName Value="DOM"/>
|
||||
<CursorPos X="38" Y="225"/>
|
||||
<TopLine Value="203"/>
|
||||
<UsageCount Value="15"/>
|
||||
</Unit37>
|
||||
<Unit38>
|
||||
<UsageCount Value="14"/>
|
||||
</Unit36>
|
||||
<Unit37>
|
||||
<Filename Value="..\..\wst_rtti_filter\cursor_intf.pas"/>
|
||||
<UnitName Value="cursor_intf"/>
|
||||
<CursorPos X="3" Y="75"/>
|
||||
<TopLine Value="70"/>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit38>
|
||||
<Unit39>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit37>
|
||||
<Unit38>
|
||||
<Filename Value="..\..\wst_rtti_filter\dom_cursors.pas"/>
|
||||
<UnitName Value="dom_cursors"/>
|
||||
<CursorPos X="3" Y="182"/>
|
||||
<TopLine Value="180"/>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit39>
|
||||
<Unit40>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit38>
|
||||
<Unit39>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215\fpc\2.1.5\source\packages\fcl-fpcunit\src\fpcunit.pp"/>
|
||||
<UnitName Value="fpcunit"/>
|
||||
<CursorPos X="1" Y="446"/>
|
||||
<TopLine Value="434"/>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit40>
|
||||
<Unit41>
|
||||
<UsageCount Value="4"/>
|
||||
</Unit39>
|
||||
<Unit40>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215\fpc\2.1.5\source\rtl\i386\i386.inc"/>
|
||||
<CursorPos X="1" Y="1284"/>
|
||||
<TopLine Value="1268"/>
|
||||
<UsageCount Value="4"/>
|
||||
</Unit41>
|
||||
<Unit42>
|
||||
<UsageCount Value="3"/>
|
||||
</Unit40>
|
||||
<Unit41>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215\fpc\2.1.5\source\rtl\objpas\classes\streams.inc"/>
|
||||
<CursorPos X="1" Y="107"/>
|
||||
<TopLine Value="95"/>
|
||||
<UsageCount Value="4"/>
|
||||
</Unit42>
|
||||
<Unit43>
|
||||
<UsageCount Value="3"/>
|
||||
</Unit41>
|
||||
<Unit42>
|
||||
<Filename Value="..\..\semaphore.pas"/>
|
||||
<UnitName Value="semaphore"/>
|
||||
<CursorPos X="3" Y="30"/>
|
||||
<TopLine Value="23"/>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit43>
|
||||
<Unit44>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit42>
|
||||
<Unit43>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
|
||||
<UnitName Value="DOM"/>
|
||||
<CursorPos X="14" Y="351"/>
|
||||
<TopLine Value="336"/>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit44>
|
||||
<Unit45>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit43>
|
||||
<Unit44>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\win32\system.pp"/>
|
||||
<UnitName Value="System"/>
|
||||
<CursorPos X="22" Y="33"/>
|
||||
<TopLine Value="18"/>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit45>
|
||||
<Unit46>
|
||||
<UsageCount Value="4"/>
|
||||
</Unit44>
|
||||
<Unit45>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-base\src\inc\contnrs.pp"/>
|
||||
<UnitName Value="contnrs"/>
|
||||
<CursorPos X="3" Y="964"/>
|
||||
<TopLine Value="962"/>
|
||||
<UsageCount Value="4"/>
|
||||
</Unit46>
|
||||
<Unit47>
|
||||
<UsageCount Value="3"/>
|
||||
</Unit45>
|
||||
<Unit46>
|
||||
<Filename Value="..\..\wst_delphi.inc"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit47>
|
||||
<Unit48>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit46>
|
||||
<Unit47>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\strutils.pp"/>
|
||||
<UnitName Value="strutils"/>
|
||||
<CursorPos X="10" Y="29"/>
|
||||
<TopLine Value="14"/>
|
||||
<UsageCount Value="4"/>
|
||||
</Unit48>
|
||||
<Unit49>
|
||||
<UsageCount Value="3"/>
|
||||
</Unit47>
|
||||
<Unit48>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\objpash.inc"/>
|
||||
<CursorPos X="26" Y="173"/>
|
||||
<TopLine Value="156"/>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit49>
|
||||
<Unit50>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit48>
|
||||
<Unit49>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\objpas.inc"/>
|
||||
<CursorPos X="11" Y="333"/>
|
||||
<TopLine Value="375"/>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit50>
|
||||
<Unit51>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit49>
|
||||
<Unit50>
|
||||
<Filename Value="..\..\wst_fpc_xml.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="wst_fpc_xml"/>
|
||||
<CursorPos X="65" Y="85"/>
|
||||
<TopLine Value="56"/>
|
||||
<UsageCount Value="97"/>
|
||||
</Unit51>
|
||||
<Unit52>
|
||||
<UsageCount Value="111"/>
|
||||
</Unit50>
|
||||
<Unit51>
|
||||
<Filename Value="..\..\wst_global.inc"/>
|
||||
<CursorPos X="3" Y="4"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit52>
|
||||
<Unit53>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit51>
|
||||
<Unit52>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-base\src\inc\custapp.pp"/>
|
||||
<UnitName Value="CustApp"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="4"/>
|
||||
</Unit53>
|
||||
<Unit54>
|
||||
<UsageCount Value="3"/>
|
||||
</Unit52>
|
||||
<Unit53>
|
||||
<Filename Value="test_utilities.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="test_utilities"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="10"/>
|
||||
<UsageCount Value="88"/>
|
||||
<CursorPos X="40" Y="64"/>
|
||||
<TopLine Value="58"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<UsageCount Value="102"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit54>
|
||||
<Unit55>
|
||||
</Unit53>
|
||||
<Unit54>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-fpcunit\src\fpcunit.pp"/>
|
||||
<UnitName Value="fpcunit"/>
|
||||
<CursorPos X="66" Y="231"/>
|
||||
<TopLine Value="231"/>
|
||||
<UsageCount Value="12"/>
|
||||
</Unit55>
|
||||
<Unit56>
|
||||
<UsageCount Value="11"/>
|
||||
</Unit54>
|
||||
<Unit55>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-fpcunit\src\testregistry.pp"/>
|
||||
<UnitName Value="testregistry"/>
|
||||
<CursorPos X="11" Y="32"/>
|
||||
<TopLine Value="17"/>
|
||||
<UsageCount Value="14"/>
|
||||
</Unit56>
|
||||
<Unit57>
|
||||
<UsageCount Value="13"/>
|
||||
</Unit55>
|
||||
<Unit56>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-fpcunit\src\testdecorator.pp"/>
|
||||
<UnitName Value="testdecorator"/>
|
||||
<CursorPos X="3" Y="30"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit57>
|
||||
<Unit58>
|
||||
<UsageCount Value="5"/>
|
||||
</Unit56>
|
||||
<Unit57>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-fpcunit\src\DUnitCompatibleInterface.inc"/>
|
||||
<CursorPos X="21" Y="9"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="11"/>
|
||||
</Unit58>
|
||||
<Unit59>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit57>
|
||||
<Unit58>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\typinfo.pp"/>
|
||||
<UnitName Value="typinfo"/>
|
||||
<CursorPos X="53" Y="41"/>
|
||||
<TopLine Value="37"/>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit59>
|
||||
<Unit60>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit58>
|
||||
<Unit59>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\sysstrh.inc"/>
|
||||
<CursorPos X="89" Y="122"/>
|
||||
<TopLine Value="106"/>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit60>
|
||||
<Unit61>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit59>
|
||||
<Unit60>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\sysinth.inc"/>
|
||||
<CursorPos X="24" Y="63"/>
|
||||
<TopLine Value="46"/>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit61>
|
||||
<Unit62>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit60>
|
||||
<Unit61>
|
||||
<Filename Value="..\..\ws_helper\wsdl2pas_imp.pas"/>
|
||||
<UnitName Value="wsdl2pas_imp"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="31"/>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit62>
|
||||
<Unit63>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit61>
|
||||
<Unit62>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus2204\fpc\2.0.4\source\fcl\xml\dom.pp"/>
|
||||
<UnitName Value="DOM"/>
|
||||
<CursorPos X="3" Y="196"/>
|
||||
<TopLine Value="191"/>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit63>
|
||||
<Unit64>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit62>
|
||||
<Unit63>
|
||||
<Filename Value="..\..\type_lib_edtr\umoduleedit.pas"/>
|
||||
<ComponentName Value="fModuleEdit"/>
|
||||
<HasResources Value="True"/>
|
||||
@ -520,9 +502,9 @@
|
||||
<UnitName Value="umoduleedit"/>
|
||||
<CursorPos X="47" Y="21"/>
|
||||
<TopLine Value="18"/>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit64>
|
||||
<Unit65>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit63>
|
||||
<Unit64>
|
||||
<Filename Value="..\..\type_lib_edtr\ubindingedit.pas"/>
|
||||
<ComponentName Value="fBindingEdit"/>
|
||||
<HasResources Value="True"/>
|
||||
@ -530,9 +512,9 @@
|
||||
<UnitName Value="ubindingedit"/>
|
||||
<CursorPos X="41" Y="21"/>
|
||||
<TopLine Value="18"/>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit65>
|
||||
<Unit66>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit64>
|
||||
<Unit65>
|
||||
<Filename Value="..\..\type_lib_edtr\ufarrayedit.pas"/>
|
||||
<ComponentName Value="fArrayEdit"/>
|
||||
<HasResources Value="True"/>
|
||||
@ -540,9 +522,9 @@
|
||||
<UnitName Value="ufarrayedit"/>
|
||||
<CursorPos X="41" Y="9"/>
|
||||
<TopLine Value="5"/>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit66>
|
||||
<Unit67>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit65>
|
||||
<Unit66>
|
||||
<Filename Value="..\..\type_lib_edtr\uftypealiasedit.pas"/>
|
||||
<ComponentName Value="fTypeAliasEdit"/>
|
||||
<HasResources Value="True"/>
|
||||
@ -550,9 +532,9 @@
|
||||
<UnitName Value="uftypealiasedit"/>
|
||||
<CursorPos X="22" Y="9"/>
|
||||
<TopLine Value="7"/>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit67>
|
||||
<Unit68>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit66>
|
||||
<Unit67>
|
||||
<Filename Value="..\..\type_lib_edtr\ufrmsaveoption.pas"/>
|
||||
<ComponentName Value="frmSaveOptions"/>
|
||||
<HasResources Value="True"/>
|
||||
@ -560,174 +542,238 @@
|
||||
<UnitName Value="ufrmsaveoption"/>
|
||||
<CursorPos X="22" Y="9"/>
|
||||
<TopLine Value="6"/>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit68>
|
||||
<Unit69>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit67>
|
||||
<Unit68>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\sysutilh.inc"/>
|
||||
<CursorPos X="4" Y="64"/>
|
||||
<TopLine Value="64"/>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit69>
|
||||
<Unit70>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit68>
|
||||
<Unit69>
|
||||
<Filename Value="..\..\server_service_xmlrpc.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="server_service_xmlrpc"/>
|
||||
<CursorPos X="10" Y="131"/>
|
||||
<TopLine Value="116"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<UsageCount Value="42"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit70>
|
||||
<Unit71>
|
||||
<CursorPos X="38" Y="33"/>
|
||||
<TopLine Value="27"/>
|
||||
<UsageCount Value="56"/>
|
||||
</Unit69>
|
||||
<Unit70>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\xmlread.pp"/>
|
||||
<UnitName Value="XMLRead"/>
|
||||
<CursorPos X="6" Y="37"/>
|
||||
<TopLine Value="31"/>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit71>
|
||||
<Unit72>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit70>
|
||||
<Unit71>
|
||||
<Filename Value="..\..\xmlrpc_formatter.pas"/>
|
||||
<UnitName Value="xmlrpc_formatter"/>
|
||||
<CursorPos X="31" Y="131"/>
|
||||
<TopLine Value="116"/>
|
||||
<UsageCount Value="11"/>
|
||||
</Unit72>
|
||||
<Unit73>
|
||||
<CursorPos X="1" Y="169"/>
|
||||
<TopLine Value="154"/>
|
||||
<UsageCount Value="12"/>
|
||||
</Unit71>
|
||||
<Unit72>
|
||||
<Filename Value="..\..\record_rtti.pas"/>
|
||||
<UnitName Value="record_rtti"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<CursorPos X="37" Y="276"/>
|
||||
<TopLine Value="265"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<UsageCount Value="17"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit73>
|
||||
<Unit74>
|
||||
<UsageCount Value="16"/>
|
||||
</Unit72>
|
||||
<Unit73>
|
||||
<Filename Value="..\..\wst_rtl_imp.inc"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="9"/>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit73>
|
||||
<Unit74>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="test_parsers"/>
|
||||
<CursorPos X="3" Y="401"/>
|
||||
<TopLine Value="421"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<UsageCount Value="34"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit74>
|
||||
<Unit75>
|
||||
<Filename Value="..\..\ws_helper\xsd_parser.pas"/>
|
||||
<UnitName Value="xsd_parser"/>
|
||||
<CursorPos X="14" Y="83"/>
|
||||
<TopLine Value="102"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<UsageCount Value="16"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit75>
|
||||
<Unit76>
|
||||
<Filename Value="..\..\ws_helper\parserutils.pas"/>
|
||||
<UnitName Value="parserutils"/>
|
||||
<CursorPos X="3" Y="76"/>
|
||||
<TopLine Value="61"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit76>
|
||||
<Unit77>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\fcl-fpcunit\src\testregistry.pp"/>
|
||||
<UnitName Value="testregistry"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="18"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit77>
|
||||
<Unit78>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\fcl-fpcunit\src\DUnitCompatibleInterface.inc"/>
|
||||
<CursorPos X="3" Y="120"/>
|
||||
<TopLine Value="115"/>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit78>
|
||||
<Unit79>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\fcl-fpcunit\src\fpcunit.pp"/>
|
||||
<UnitName Value="fpcunit"/>
|
||||
<CursorPos X="1" Y="446"/>
|
||||
<TopLine Value="431"/>
|
||||
<UsageCount Value="11"/>
|
||||
</Unit79>
|
||||
<Unit80>
|
||||
<Filename Value="..\..\ws_helper\logger_intf.pas"/>
|
||||
<UnitName Value="logger_intf"/>
|
||||
<CursorPos X="85" Y="50"/>
|
||||
<TopLine Value="35"/>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit80>
|
||||
<Unit81>
|
||||
<Filename Value="..\..\ws_helper\ws_parser_imp.pas"/>
|
||||
<UnitName Value="ws_parser_imp"/>
|
||||
<CursorPos X="65" Y="505"/>
|
||||
<TopLine Value="482"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<UsageCount Value="15"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit81>
|
||||
<Unit82>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpash.inc"/>
|
||||
<CursorPos X="26" Y="159"/>
|
||||
<TopLine Value="144"/>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit82>
|
||||
</Units>
|
||||
<JumpHistory Count="30" HistoryIndex="29">
|
||||
<Position1>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="4784" Column="33" TopLine="4769"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="1"/>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1356" Column="38" TopLine="1346"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="446" Column="53" TopLine="424"/>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1403" Column="82" TopLine="1388"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="494" Column="54" TopLine="472"/>
|
||||
</Position3>
|
||||
<Position4>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1422" Column="82" TopLine="1406"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="1"/>
|
||||
</Position4>
|
||||
<Position5>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1816" Column="31" TopLine="1795"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="446" Column="53" TopLine="424"/>
|
||||
</Position5>
|
||||
<Position6>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="3848" Column="31" TopLine="3827"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="494" Column="54" TopLine="472"/>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="4784" Column="55" TopLine="4778"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="1"/>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="1"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="446" Column="53" TopLine="424"/>
|
||||
</Position8>
|
||||
<Position9>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1191" Column="17" TopLine="1176"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="254" Column="44" TopLine="218"/>
|
||||
</Position9>
|
||||
<Position10>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1231" Column="32" TopLine="1216"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="300" Column="19" TopLine="262"/>
|
||||
</Position10>
|
||||
<Position11>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1228" Column="13" TopLine="1213"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="249" Column="34" TopLine="240"/>
|
||||
</Position11>
|
||||
<Position12>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="1"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="337" Column="11" TopLine="322"/>
|
||||
</Position12>
|
||||
<Position13>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1191" Column="32" TopLine="1176"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="245" Column="8" TopLine="219"/>
|
||||
</Position13>
|
||||
<Position14>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1235" Column="84" TopLine="1220"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="261" Column="9" TopLine="248"/>
|
||||
</Position14>
|
||||
<Position15>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1403" Column="82" TopLine="1388"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="264" Column="18" TopLine="249"/>
|
||||
</Position15>
|
||||
<Position16>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1421" Column="82" TopLine="1406"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="266" Column="26" TopLine="251"/>
|
||||
</Position16>
|
||||
<Position17>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1816" Column="31" TopLine="1789"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="292" Column="23" TopLine="279"/>
|
||||
</Position17>
|
||||
<Position18>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="3848" Column="31" TopLine="3827"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="295" Column="18" TopLine="280"/>
|
||||
</Position18>
|
||||
<Position19>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="4786" Column="25" TopLine="4777"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="297" Column="26" TopLine="282"/>
|
||||
</Position19>
|
||||
<Position20>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1359" Column="50" TopLine="1337"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="308" Column="21" TopLine="293"/>
|
||||
</Position20>
|
||||
<Position21>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="4783" Column="27" TopLine="4761"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="339" Column="10" TopLine="324"/>
|
||||
</Position21>
|
||||
<Position22>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1359" Column="47" TopLine="1337"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="342" Column="10" TopLine="327"/>
|
||||
</Position22>
|
||||
<Position23>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="4740" Column="9" TopLine="4668"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="353" Column="20" TopLine="338"/>
|
||||
</Position23>
|
||||
<Position24>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="4808" Column="35" TopLine="4794"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="355" Column="28" TopLine="340"/>
|
||||
</Position24>
|
||||
<Position25>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="180" Column="15" TopLine="177"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="361" Column="23" TopLine="346"/>
|
||||
</Position25>
|
||||
<Position26>
|
||||
<Filename Value="..\..\server_service_xmlrpc.pas"/>
|
||||
<Caret Line="144" Column="14" TopLine="130"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="399" Column="8" TopLine="384"/>
|
||||
</Position26>
|
||||
<Position27>
|
||||
<Filename Value="testformatter_unit.pas"/>
|
||||
<Caret Line="3890" Column="49" TopLine="3890"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="401" Column="8" TopLine="386"/>
|
||||
</Position27>
|
||||
<Position28>
|
||||
<Filename Value="testformatter_unit.pas"/>
|
||||
<Caret Line="1483" Column="30" TopLine="1465"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="421" Column="23" TopLine="408"/>
|
||||
</Position28>
|
||||
<Position29>
|
||||
<Filename Value="testformatter_unit.pas"/>
|
||||
<Caret Line="3538" Column="39" TopLine="3538"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="424" Column="18" TopLine="409"/>
|
||||
</Position29>
|
||||
<Position30>
|
||||
<Filename Value="..\..\record_rtti.pas"/>
|
||||
<Caret Line="265" Column="32" TopLine="232"/>
|
||||
<Filename Value="test_parsers.pas"/>
|
||||
<Caret Line="426" Column="27" TopLine="411"/>
|
||||
</Position30>
|
||||
</JumpHistory>
|
||||
</ProjectOptions>
|
||||
@ -739,7 +785,7 @@
|
||||
</Target>
|
||||
<SearchPaths>
|
||||
<IncludeFiles Value="..\..\"/>
|
||||
<OtherUnitFiles Value="..\..\;..\..\ws_helper\"/>
|
||||
<OtherUnitFiles Value="..\..\;..\..\ws_helper\;..\..\wst_rtti_filter\"/>
|
||||
<UnitOutputDirectory Value="obj"/>
|
||||
</SearchPaths>
|
||||
<Parsing>
|
||||
@ -767,48 +813,6 @@
|
||||
</Other>
|
||||
</CompilerOptions>
|
||||
<Debugging>
|
||||
<BreakPoints Count="10">
|
||||
<Item1>
|
||||
<Source Value="..\google_api\home\inoussa\Projets\Laz\tests\soap\test_soap.pas"/>
|
||||
<Line Value="15"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<Source Value="..\google_api\home\inoussa\Projets\Laz\tests\soap\test_soap.pas"/>
|
||||
<Line Value="16"/>
|
||||
</Item2>
|
||||
<Item3>
|
||||
<Source Value="..\google_api\home\inoussa\Projets\Laz\tests\soap\test_soap.pas"/>
|
||||
<Line Value="18"/>
|
||||
</Item3>
|
||||
<Item4>
|
||||
<Source Value="..\google_api\home\inoussa\Projets\Laz\tests\soap\googleintfimpunit.pas"/>
|
||||
<Line Value="63"/>
|
||||
</Item4>
|
||||
<Item5>
|
||||
<Source Value="..\google_api\home\inoussa\Projets\Laz\v0.2\indy_http_protocol.pas"/>
|
||||
<Line Value="69"/>
|
||||
</Item5>
|
||||
<Item6>
|
||||
<Source Value="..\google_api\home\inoussa\Projets\Laz\v0.2\service_intf.pas"/>
|
||||
<Line Value="567"/>
|
||||
</Item6>
|
||||
<Item7>
|
||||
<Source Value="..\google_api\home\inoussa\Projets\Laz\v0.2\imp_utils.pas"/>
|
||||
<Line Value="83"/>
|
||||
</Item7>
|
||||
<Item8>
|
||||
<Source Value="testmetadata_unit.pas"/>
|
||||
<Line Value="148"/>
|
||||
</Item8>
|
||||
<Item9>
|
||||
<Source Value="testmetadata_unit.pas"/>
|
||||
<Line Value="161"/>
|
||||
</Item9>
|
||||
<Item10>
|
||||
<Source Value="..\..\metadata_repository.pas"/>
|
||||
<Line Value="378"/>
|
||||
</Item10>
|
||||
</BreakPoints>
|
||||
<Watches Count="2">
|
||||
<Item1>
|
||||
<Expression Value="FScopeObject^.Name"/>
|
||||
|
@ -16,7 +16,7 @@ uses
|
||||
server_binary_formatter, metadata_repository,
|
||||
metadata_generator, parserdefs, server_service_intf, metadata_wsdl,
|
||||
test_parserdef, base_xmlrpc_formatter, wst_fpc_xml, test_utilities,
|
||||
server_service_xmlrpc;
|
||||
server_service_xmlrpc, test_parsers;
|
||||
|
||||
Const
|
||||
ShortOpts = 'alh';
|
||||
|
@ -7,7 +7,7 @@
|
||||
<MainUnit Value="0"/>
|
||||
<IconPath Value="./"/>
|
||||
<TargetFileExt Value=".exe"/>
|
||||
<ActiveEditorIndexAtStart Value="5"/>
|
||||
<ActiveEditorIndexAtStart Value="8"/>
|
||||
</General>
|
||||
<VersionInfo>
|
||||
<ProjectVersion Value=""/>
|
||||
@ -32,13 +32,13 @@
|
||||
<PackageName Value="LCL"/>
|
||||
</Item2>
|
||||
</RequiredPackages>
|
||||
<Units Count="85">
|
||||
<Units Count="93">
|
||||
<Unit0>
|
||||
<Filename Value="typ_lib_edtr.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<CursorPos X="48" Y="15"/>
|
||||
<CursorPos X="1" Y="21"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="6"/>
|
||||
<EditorIndex Value="8"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit0>
|
||||
@ -49,8 +49,8 @@
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ResourceFilename Value="uwsttypelibraryedit.lrs"/>
|
||||
<UnitName Value="uwsttypelibraryedit"/>
|
||||
<CursorPos X="24" Y="374"/>
|
||||
<TopLine Value="369"/>
|
||||
<CursorPos X="45" Y="170"/>
|
||||
<TopLine Value="151"/>
|
||||
<EditorIndex Value="0"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
@ -67,12 +67,10 @@
|
||||
<UnitName Value="wsdl2pas_imp"/>
|
||||
<CursorPos X="61" Y="1902"/>
|
||||
<TopLine Value="1879"/>
|
||||
<EditorIndex Value="12"/>
|
||||
<UsageCount Value="100"/>
|
||||
<Bookmarks Count="1">
|
||||
<Item0 X="65" Y="790" ID="2"/>
|
||||
</Bookmarks>
|
||||
<Loaded Value="True"/>
|
||||
</Unit3>
|
||||
<Unit4>
|
||||
<Filename Value="wsdl_generator.pas"/>
|
||||
@ -107,9 +105,9 @@
|
||||
<Filename Value="view_helper.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="view_helper"/>
|
||||
<CursorPos X="25" Y="331"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<CursorPos X="1" Y="667"/>
|
||||
<TopLine Value="652"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit7>
|
||||
@ -117,9 +115,9 @@
|
||||
<Filename Value="..\ws_helper\source_utils.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="source_utils"/>
|
||||
<CursorPos X="1" Y="274"/>
|
||||
<TopLine Value="259"/>
|
||||
<EditorIndex Value="11"/>
|
||||
<CursorPos X="1" Y="153"/>
|
||||
<TopLine Value="138"/>
|
||||
<EditorIndex Value="13"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit8>
|
||||
@ -129,7 +127,7 @@
|
||||
<UnitName Value="edit_helper"/>
|
||||
<CursorPos X="11" Y="717"/>
|
||||
<TopLine Value="712"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit9>
|
||||
@ -142,7 +140,7 @@
|
||||
<UnitName Value="ufclassedit"/>
|
||||
<CursorPos X="1" Y="118"/>
|
||||
<TopLine Value="131"/>
|
||||
<EditorIndex Value="7"/>
|
||||
<EditorIndex Value="9"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit10>
|
||||
@ -154,7 +152,7 @@
|
||||
<UnitName Value="ufpropedit"/>
|
||||
<CursorPos X="58" Y="147"/>
|
||||
<TopLine Value="129"/>
|
||||
<EditorIndex Value="9"/>
|
||||
<EditorIndex Value="11"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit11>
|
||||
@ -170,7 +168,7 @@
|
||||
<UnitName Value="parserutils"/>
|
||||
<CursorPos X="49" Y="27"/>
|
||||
<TopLine Value="18"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<EditorIndex Value="6"/>
|
||||
<UsageCount Value="101"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit13>
|
||||
@ -286,10 +284,10 @@
|
||||
<Filename Value="..\ws_helper\pascal_parser_intf.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="pascal_parser_intf"/>
|
||||
<CursorPos X="1" Y="636"/>
|
||||
<TopLine Value="621"/>
|
||||
<EditorIndex Value="13"/>
|
||||
<UsageCount Value="191"/>
|
||||
<CursorPos X="12" Y="176"/>
|
||||
<TopLine Value="137"/>
|
||||
<EditorIndex Value="14"/>
|
||||
<UsageCount Value="195"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit30>
|
||||
<Unit31>
|
||||
@ -298,7 +296,7 @@
|
||||
<UnitName Value="PParser"/>
|
||||
<CursorPos X="18" Y="1148"/>
|
||||
<TopLine Value="1126"/>
|
||||
<UsageCount Value="191"/>
|
||||
<UsageCount Value="195"/>
|
||||
</Unit31>
|
||||
<Unit32>
|
||||
<Filename Value="..\ws_helper\logger_intf.pas"/>
|
||||
@ -313,7 +311,7 @@
|
||||
<UnitName Value="PasTree"/>
|
||||
<CursorPos X="24" Y="296"/>
|
||||
<TopLine Value="274"/>
|
||||
<UsageCount Value="191"/>
|
||||
<UsageCount Value="195"/>
|
||||
</Unit33>
|
||||
<Unit34>
|
||||
<Filename Value="..\..\..\..\lazarus_23_215\lcl\include\treeview.inc"/>
|
||||
@ -344,10 +342,10 @@
|
||||
<Filename Value="..\ws_helper\generator.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="generator"/>
|
||||
<CursorPos X="1" Y="865"/>
|
||||
<TopLine Value="850"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<UsageCount Value="108"/>
|
||||
<CursorPos X="1" Y="2514"/>
|
||||
<TopLine Value="2475"/>
|
||||
<EditorIndex Value="7"/>
|
||||
<UsageCount Value="112"/>
|
||||
<Bookmarks Count="1">
|
||||
<Item0 X="36" Y="2046" ID="1"/>
|
||||
</Bookmarks>
|
||||
@ -440,7 +438,7 @@
|
||||
<UnitName Value="uprocedit"/>
|
||||
<CursorPos X="2" Y="12"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="147"/>
|
||||
<UsageCount Value="151"/>
|
||||
</Unit50>
|
||||
<Unit51>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\comctrls.pp"/>
|
||||
@ -455,8 +453,8 @@
|
||||
<UnitName Value="common_gui_utils"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="8"/>
|
||||
<UsageCount Value="145"/>
|
||||
<EditorIndex Value="10"/>
|
||||
<UsageCount Value="149"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit52>
|
||||
<Unit53>
|
||||
@ -474,7 +472,7 @@
|
||||
<UnitName Value="uargedit"/>
|
||||
<CursorPos X="2" Y="12"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="138"/>
|
||||
<UsageCount Value="142"/>
|
||||
</Unit54>
|
||||
<Unit55>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\interfaces\win32\win32wscontrols.pp"/>
|
||||
@ -498,7 +496,7 @@
|
||||
<UnitName Value="umoduleedit"/>
|
||||
<CursorPos X="2" Y="12"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="130"/>
|
||||
<UsageCount Value="134"/>
|
||||
</Unit57>
|
||||
<Unit58>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\stdctrls.pp"/>
|
||||
@ -515,7 +513,7 @@
|
||||
<UnitName Value="ubindingedit"/>
|
||||
<CursorPos X="2" Y="12"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="120"/>
|
||||
<UsageCount Value="124"/>
|
||||
</Unit59>
|
||||
<Unit60>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\objpash.inc"/>
|
||||
@ -556,7 +554,7 @@
|
||||
<UnitName Value="ufrmsaveoption"/>
|
||||
<CursorPos X="42" Y="64"/>
|
||||
<TopLine Value="42"/>
|
||||
<UsageCount Value="116"/>
|
||||
<UsageCount Value="120"/>
|
||||
</Unit65>
|
||||
<Unit66>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\dialogs.pp"/>
|
||||
@ -599,7 +597,7 @@
|
||||
<UnitName Value="ufarrayedit"/>
|
||||
<CursorPos X="67" Y="117"/>
|
||||
<TopLine Value="95"/>
|
||||
<UsageCount Value="100"/>
|
||||
<UsageCount Value="104"/>
|
||||
</Unit71>
|
||||
<Unit72>
|
||||
<Filename Value="uftypealiasedit.pas"/>
|
||||
@ -609,7 +607,7 @@
|
||||
<UnitName Value="uftypealiasedit"/>
|
||||
<CursorPos X="21" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="91"/>
|
||||
<UsageCount Value="95"/>
|
||||
</Unit72>
|
||||
<Unit73>
|
||||
<Filename Value="..\..\..\..\..\Documents and Settings\Administrateur\Bureau\ACER\n\AWSECommerceService.pas"/>
|
||||
@ -682,20 +680,75 @@
|
||||
<UnitName Value="ufrecordedit"/>
|
||||
<CursorPos X="35" Y="99"/>
|
||||
<TopLine Value="78"/>
|
||||
<EditorIndex Value="10"/>
|
||||
<UsageCount Value="57"/>
|
||||
<EditorIndex Value="12"/>
|
||||
<UsageCount Value="61"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit83>
|
||||
<Unit84>
|
||||
<Filename Value="..\ws_helper\wsdl_generator.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="wsdl_generator"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<UsageCount Value="28"/>
|
||||
<CursorPos X="50" Y="1031"/>
|
||||
<TopLine Value="1004"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<UsageCount Value="32"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit84>
|
||||
<Unit85>
|
||||
<Filename Value="..\ws_helper\wsdl_parser.pas"/>
|
||||
<UnitName Value="wsdl_parser"/>
|
||||
<CursorPos X="38" Y="1136"/>
|
||||
<TopLine Value="1113"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<UsageCount Value="12"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit85>
|
||||
<Unit86>
|
||||
<Filename Value="..\ws_helper\xsd_parser.pas"/>
|
||||
<UnitName Value="xsd_parser"/>
|
||||
<CursorPos X="15" Y="93"/>
|
||||
<TopLine Value="78"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<UsageCount Value="12"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit86>
|
||||
<Unit87>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpas.inc"/>
|
||||
<CursorPos X="1" Y="58"/>
|
||||
<TopLine Value="43"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit87>
|
||||
<Unit88>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\except.inc"/>
|
||||
<CursorPos X="1" Y="95"/>
|
||||
<TopLine Value="80"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit88>
|
||||
<Unit89>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\i386\setjump.inc"/>
|
||||
<CursorPos X="1" Y="36"/>
|
||||
<TopLine Value="21"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit89>
|
||||
<Unit90>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\i386\i386.inc"/>
|
||||
<CursorPos X="1" Y="1250"/>
|
||||
<TopLine Value="1235"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit90>
|
||||
<Unit91>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\win32\classes.pp"/>
|
||||
<UnitName Value="Classes"/>
|
||||
<CursorPos X="1" Y="50"/>
|
||||
<TopLine Value="21"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit91>
|
||||
<Unit92>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\objpas\classes\intf.inc"/>
|
||||
<CursorPos X="1" Y="35"/>
|
||||
<TopLine Value="194"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit92>
|
||||
</Units>
|
||||
<JumpHistory Count="0" HistoryIndex="-1"/>
|
||||
</ProjectOptions>
|
||||
@ -721,8 +774,10 @@
|
||||
</CodeGeneration>
|
||||
<Linking>
|
||||
<Debugging>
|
||||
<GenerateDebugInfo Value="True"/>
|
||||
<UseLineInfoUnit Value="False"/>
|
||||
<StripSymbols Value="True"/>
|
||||
</Debugging>
|
||||
<LinkSmart Value="True"/>
|
||||
<Options>
|
||||
<Win32>
|
||||
<GraphicApplication Value="True"/>
|
||||
|
@ -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
|
||||
|
@ -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,217 +268,118 @@ 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
|
||||
+'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
|
||||
+#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
|
||||
]);
|
||||
|
@ -168,7 +168,7 @@ var
|
||||
|
||||
implementation
|
||||
uses view_helper, DOM, XMLRead, XMLWrite, //HeapTrc,
|
||||
wsdl2pas_imp, source_utils, command_line_parser, generator, metadata_generator,
|
||||
xsd_parser, wsdl_parser, source_utils, command_line_parser, generator, metadata_generator,
|
||||
binary_streamer, wst_resources_utils, wsdl_generator,
|
||||
uabout, edit_helper, udm, ufrmsaveoption, pparser
|
||||
{$IFDEF WST_IDE},LazIDEIntf,IDEMsgIntf{$ENDIF};
|
||||
@ -249,7 +249,7 @@ function ParseWsdlFile(
|
||||
):TwstPasTreeContainer;overload;
|
||||
var
|
||||
locDoc : TXMLDocument;
|
||||
prsr : TWsdlParser;
|
||||
prsr : IParser;
|
||||
symName : string;
|
||||
begin
|
||||
Result := nil;
|
||||
@ -262,15 +262,13 @@ begin
|
||||
try
|
||||
Result := TwstPasTreeContainer.Create();
|
||||
try
|
||||
prsr := TWsdlParser.Create(locDoc,Result);
|
||||
prsr.OnMessage := ANotifier;
|
||||
prsr.Parse(pmAllTypes,symName);
|
||||
prsr := TWsdlParser.Create(locDoc,Result,ANotifier);
|
||||
prsr.Execute(pmAllTypes,symName);
|
||||
except
|
||||
FreeAndNil(Result);
|
||||
raise;
|
||||
end;
|
||||
finally
|
||||
FreeAndNil(prsr);
|
||||
FreeAndNil(locDoc);
|
||||
end;
|
||||
end;
|
||||
@ -389,12 +387,15 @@ begin
|
||||
end;
|
||||
|
||||
function CreateSymbolTable(const AName : string):TwstPasTreeContainer ;
|
||||
var
|
||||
mdl : TPasModule;
|
||||
begin
|
||||
Result := TwstPasTreeContainer.Create();
|
||||
try
|
||||
CreateWstInterfaceSymbolTable(Result);
|
||||
Result.CreateElement(TPasModule,AName,Result.Package,visDefault,'',0);
|
||||
Result.CurrentModule.InterfaceSection := TPasSection(Result.CreateElement(TPasSection,'',Result.CurrentModule,visDefault,'',0));
|
||||
mdl := TPasModule(Result.CreateElement(TPasModule,AName,Result.Package,visDefault,'',0));
|
||||
mdl.InterfaceSection := TPasSection(Result.CreateElement(TPasSection,'',mdl,visDefault,'',0));
|
||||
Result.Package.Modules.Add(mdl);
|
||||
except
|
||||
FreeAndNil(Result);
|
||||
raise;
|
||||
@ -708,6 +709,7 @@ var
|
||||
objPtr : ISymbolPainter;
|
||||
nd : TTreeNode;
|
||||
begin
|
||||
mmoLog.Clear();
|
||||
trvSchema.BeginUpdate();
|
||||
try
|
||||
trvSchema.Items.Clear();
|
||||
|
@ -100,7 +100,7 @@ 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"
|
||||
RunParams=-uA -i -p -b -a"C:\Programmes\lazarus\wst\trunk\tests\files" "C:\Programmes\lazarus\wst\trunk\type_lib_edtr\files\company.xsd"
|
||||
HostApplication=
|
||||
Launcher=
|
||||
UseLauncher=0
|
||||
@ -149,14 +149,15 @@ Item0=C:\Programmes\lazarus\wst\trunk\fcl-units\rtl\;C:\Programmes\lazarus\wst\t
|
||||
Count=1
|
||||
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
|
||||
[HistoryLists\hlSearchPath]
|
||||
Count=7
|
||||
Count=8
|
||||
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=..\
|
||||
Item1=$(DELPHI)\Lib\Debug;C:\PROGRA~1\Borland\Delphi7\MyTools\JVCL\3.20\jcl\lib\d7\debug;..\;..\..\;..\..\fcl-units\fcl-passrc\src;..\..\fcl-units\rtl\inc;..\..\wst_rtti_filter
|
||||
Item2=..\;..\..\;..\..\fcl-units\fcl-passrc\src;..\..\fcl-units\rtl;..\..\wst_rtti_filter
|
||||
Item3=..\;..\..\;..\..\fcl-units\fcl-passrc\src;..\..\fcl-units\rtl
|
||||
Item4=..\;..\..\;..\..\fcl-units\fcl-passrc\src
|
||||
Item5=..\;..\..\;..\..\fcl-passrc\src
|
||||
Item6=..\;..\..\
|
||||
Item7=..\
|
||||
[HistoryLists\hlUnitOutputDirectory]
|
||||
Count=1
|
||||
Item0=obj
|
||||
|
@ -35,11 +35,13 @@ uses
|
||||
XMLDoc,
|
||||
XMLIntf,
|
||||
wst_delphi_xml,
|
||||
wsdl2pas_imp,
|
||||
pastree,
|
||||
pparser,
|
||||
pascal_parser_intf,
|
||||
logger_intf;
|
||||
logger_intf,
|
||||
xsd_parser,
|
||||
ws_parser_imp,
|
||||
wsdl_parser;
|
||||
|
||||
{$INCLUDE ws_helper_prog.inc}
|
||||
|
||||
|
@ -164,11 +164,10 @@ type
|
||||
|
||||
procedure GenerateCustomMetadatas();
|
||||
function GetDestUnitName():string;
|
||||
|
||||
procedure PrepareModule();
|
||||
procedure InternalExecute();
|
||||
public
|
||||
constructor Create(
|
||||
ASymTable : TwstPasTreeContainer;
|
||||
ASrcMngr : ISourceManager
|
||||
);
|
||||
procedure Execute();override;
|
||||
end;
|
||||
|
||||
@ -2272,22 +2271,7 @@ begin
|
||||
Result := SymbolTable.CurrentModule.Name;
|
||||
end;
|
||||
|
||||
constructor TInftGenerator.Create(
|
||||
ASymTable : TwstPasTreeContainer;
|
||||
ASrcMngr : ISourceManager
|
||||
);
|
||||
begin
|
||||
inherited Create(ASymTable,ASrcMngr);
|
||||
FDecStream := SrcMngr.CreateItem(GetDestUnitName() + '.dec');
|
||||
FImpStream := SrcMngr.CreateItem(GetDestUnitName() + '.imp');
|
||||
FImpTempStream := SrcMngr.CreateItem(GetDestUnitName() + '.tmp_imp');
|
||||
FImpLastStream := SrcMngr.CreateItem(GetDestUnitName() + '.tmp_imp_last');
|
||||
FRttiFunc := SrcMngr.CreateItem(GetDestUnitName() + '.tmp_rtti_func');
|
||||
FImpTempStream.IncIndent();
|
||||
FImpLastStream.IncIndent();
|
||||
end;
|
||||
|
||||
procedure TInftGenerator.Execute();
|
||||
procedure TInftGenerator.InternalExecute();
|
||||
|
||||
procedure SortRecords(AList : TList);
|
||||
var
|
||||
@ -2361,7 +2345,9 @@ var
|
||||
elt : TPasElement;
|
||||
classAncestor : TPasElement;
|
||||
tmpList : TList;
|
||||
intfCount : PtrInt;
|
||||
begin
|
||||
intfCount := 0;
|
||||
objLst := nil;
|
||||
tmpList := nil;
|
||||
gnrClssLst := TObjectList.Create(False);
|
||||
@ -2470,15 +2456,19 @@ begin
|
||||
elt := TPasElement(typeList[i]);
|
||||
if elt.InheritsFrom(TPasClassType) and ( TPasClassType(elt).ObjKind = okInterface ) then begin
|
||||
GenerateIntf(TPasClassType(elt));
|
||||
Inc(intfCount);
|
||||
end;
|
||||
end;
|
||||
|
||||
NewLine();
|
||||
IncIndent();
|
||||
Indent(); WriteLn('procedure Register_%s_ServiceMetadata();',[SymbolTable.CurrentModule.Name]);
|
||||
DecIndent();
|
||||
GenerateCustomMetadatas();
|
||||
|
||||
if ( intfCount > 0 ) then begin
|
||||
SetCurrentStream(FDecStream);
|
||||
NewLine();
|
||||
IncIndent();
|
||||
Indent(); WriteLn('procedure Register_%s_ServiceMetadata();',[SymbolTable.CurrentModule.Name]);
|
||||
DecIndent();
|
||||
GenerateCustomMetadatas();
|
||||
end;
|
||||
|
||||
FImpLastStream.NewLine();
|
||||
GenerateUnitImplementationFooter();
|
||||
FSrcMngr.Merge(GetDestUnitName() + '.pas',[FDecStream,FImpStream,FRttiFunc,FImpTempStream,FImpLastStream]);
|
||||
@ -2492,4 +2482,37 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TInftGenerator.PrepareModule();
|
||||
begin
|
||||
FDecStream := SrcMngr.CreateItem(GetDestUnitName() + '.dec');
|
||||
FImpStream := SrcMngr.CreateItem(GetDestUnitName() + '.imp');
|
||||
FImpTempStream := SrcMngr.CreateItem(GetDestUnitName() + '.tmp_imp');
|
||||
FImpLastStream := SrcMngr.CreateItem(GetDestUnitName() + '.tmp_imp_last');
|
||||
FRttiFunc := SrcMngr.CreateItem(GetDestUnitName() + '.tmp_rtti_func');
|
||||
FImpTempStream.IncIndent();
|
||||
FImpLastStream.IncIndent();
|
||||
end;
|
||||
|
||||
procedure TInftGenerator.Execute();
|
||||
var
|
||||
oldCurrent, mdl : TPasModule;
|
||||
i : PtrInt;
|
||||
mdlList : TList;
|
||||
begin
|
||||
oldCurrent := SymbolTable.CurrentModule;
|
||||
try
|
||||
mdlList := SymbolTable.Package.Modules;
|
||||
for i := 0 to Pred(mdlList.Count) do begin
|
||||
mdl := TPasModule(mdlList[i]);
|
||||
if not mdl.InheritsFrom(TPasNativeModule) then begin
|
||||
SymbolTable.SetCurrentModule(mdl);
|
||||
PrepareModule();
|
||||
InternalExecute();
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
SymbolTable.SetCurrentModule(oldCurrent);
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
@ -46,8 +46,9 @@ type
|
||||
end;
|
||||
|
||||
|
||||
function SetLogger(ALogger : ILogger) : ILogger;
|
||||
function GetLogger() : ILogger;
|
||||
function HasLogger() : Boolean;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||
function SetLogger(ALogger : ILogger) : ILogger;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||
function GetLogger() : ILogger;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||
|
||||
implementation
|
||||
|
||||
@ -63,6 +64,11 @@ begin
|
||||
Result := FLogger;
|
||||
end;
|
||||
|
||||
function HasLogger() : Boolean;
|
||||
begin
|
||||
Result := Assigned(FLogger);
|
||||
end;
|
||||
|
||||
{ TSimpleConsoleLogger }
|
||||
|
||||
procedure TSimpleConsoleLogger.Log(const AMsgType: TMessageType; const AMsg: string);
|
||||
|
@ -22,18 +22,121 @@ unit parserutils;
|
||||
interface
|
||||
|
||||
uses
|
||||
SysUtils;
|
||||
SysUtils, Classes
|
||||
{$IFNDEF FPC}, xmldom, wst_delphi_xml{$ELSE},DOM{$ENDIF}
|
||||
, cursor_intf, dom_cursors
|
||||
;
|
||||
|
||||
const
|
||||
sNEW_LINE = {$ifndef Unix}#13#10{$else}#10{$endif};
|
||||
s_address : WideString = 'address';
|
||||
s_all : WideString = 'all';
|
||||
//s_any : WideString = 'any';
|
||||
s_annotation : WideString = 'annotation';
|
||||
s_appinfo : WideString = 'appinfo';
|
||||
s_array : WideString = 'array';
|
||||
s_arrayType : WideString = 'arrayType';
|
||||
s_attribute : WideString = 'attribute';
|
||||
s_base : WideString = 'base';
|
||||
s_binding : WideString = 'binding';
|
||||
s_body : WideString = 'body';
|
||||
s_complexContent : WideString = 'complexContent';
|
||||
s_complexType : WideString = 'complexType';
|
||||
s_customAttributes : WideString = 'customAttributes';
|
||||
s_document : WideString = 'document';
|
||||
s_element : WideString = 'element';
|
||||
s_enumeration : WideString = 'enumeration';
|
||||
s_extension : WideString = 'extension';
|
||||
s_guid : WideString = 'GUID';
|
||||
s_headerBlock : WideString = 'headerBlock';
|
||||
s_input : WideString = 'input';
|
||||
s_item : WideString = 'item';
|
||||
s_location : WideString = 'location';
|
||||
s_message : WideString = 'message';
|
||||
s_maxOccurs : WideString = 'maxOccurs';
|
||||
s_minOccurs : WideString = 'minOccurs';
|
||||
s_name : WideString = 'name';
|
||||
s_operation : WideString = 'operation';
|
||||
s_optional : WideString = 'optional';
|
||||
s_output : WideString = 'output';
|
||||
s_part : WideString = 'part';
|
||||
s_port : WideString = 'port';
|
||||
s_portType : WideString = 'portType';
|
||||
s_prohibited : WideString = 'prohibited';
|
||||
s_record : WideString = 'record';
|
||||
s_ref : WideString = 'ref';
|
||||
s_required : WideString = 'required';
|
||||
s_restriction : WideString = 'restriction';
|
||||
//s_return : WideString = 'return';
|
||||
s_rpc : WideString = 'rpc';
|
||||
s_schema : WideString = 'schema';
|
||||
s_xs : WideString = 'http://www.w3.org/2001/XMLSchema';
|
||||
s_sequence : WideString = 'sequence';
|
||||
s_service : WideString = 'service';
|
||||
s_simpleContent : WideString = 'simpleContent';
|
||||
s_simpleType : WideString = 'simpleType';
|
||||
s_soap : WideString = 'http://schemas.xmlsoap.org/wsdl/soap/';
|
||||
s_soapAction : WideString = 'soapAction';
|
||||
s_soapInputEncoding : WideString = 'Input_EncodingStyle';
|
||||
s_soapOutputEncoding : WideString = 'OutputEncodingStyle';
|
||||
s_soapStyle : WideString = 'style';
|
||||
s_style : WideString = 'style';
|
||||
s_targetNamespace : WideString = 'targetNamespace';
|
||||
s_type : WideString = 'type';
|
||||
s_types : WideString = 'types';
|
||||
s_unbounded : WideString = 'unbounded';
|
||||
s_use : WideString = 'use';
|
||||
s_value : WideString = 'value';
|
||||
s_wsdl : WideString = 'http://schemas.xmlsoap.org/wsdl/';
|
||||
s_xmlns : WideString = 'xmlns';
|
||||
|
||||
type
|
||||
TNotFoundAction = ( nfaNone, nfaRaiseException );
|
||||
|
||||
const
|
||||
sNEW_LINE = sLineBreak;
|
||||
|
||||
function IsStrEmpty(Const AStr : String):Boolean;
|
||||
function ExtractIdentifier(const AValue : string) : string ;
|
||||
|
||||
|
||||
function IsReservedKeyWord(const AValue : string):Boolean ;
|
||||
|
||||
procedure ExtractNameSpaceShortNamesNested(
|
||||
ANode : TDOMNode;
|
||||
AResList : TStrings;
|
||||
const ANameSpace : WideString
|
||||
);
|
||||
function CreateQualifiedNameFilterStr(
|
||||
const AName : WideString;
|
||||
APrefixList : TStrings
|
||||
) : string;
|
||||
function ExtractNameFromQName(const AQName : string):string ;
|
||||
procedure ExtractNameSpaceShortNames(
|
||||
AAttribCursor : IObjectCursor;
|
||||
AResList : TStrings;
|
||||
const ANameSpace : WideString;
|
||||
const ANotFoundAction : TNotFoundAction;
|
||||
const AClearBefore : Boolean;
|
||||
const AExceptionClass : ExceptClass
|
||||
);
|
||||
function AddNameSpace(const AValue: string; ANameSpaceList : TStrings): TStrings;
|
||||
procedure BuildNameSpaceList(AAttCursor : IObjectCursor; ANameSpaceList : TStrings);
|
||||
procedure ExplodeQName(const AQName : string; out ALocalName, ANameSpace : string) ;
|
||||
|
||||
function wst_findCustomAttribute(
|
||||
AWsdlShortNames : TStrings;
|
||||
ANode : TDOMNode;
|
||||
const AAttribute : string;
|
||||
out AValue : string
|
||||
) : Boolean;
|
||||
function wst_findCustomAttributeXsd(
|
||||
AXsdShortNames : TStrings;
|
||||
ANode : TDOMNode;
|
||||
const AAttribute : string;
|
||||
out AValue : string
|
||||
) : Boolean;
|
||||
|
||||
implementation
|
||||
uses StrUtils;
|
||||
uses StrUtils, rtti_filters;
|
||||
|
||||
const LANGAGE_TOKEN : array[0..107] of string = (
|
||||
'ABSTRACT', 'AND', 'ARRAY', 'AS', 'ASM',
|
||||
@ -90,6 +193,246 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function ExtractNameFromQName(const AQName : string):string ;
|
||||
var
|
||||
i : Integer;
|
||||
begin
|
||||
Result := Trim(AQName);
|
||||
i := Pos(':',Result);
|
||||
if ( i > 0 ) then
|
||||
Result := Copy(Result,( i + 1 ), MaxInt);
|
||||
end;
|
||||
|
||||
function CreateQualifiedNameFilterStr(
|
||||
const AName : WideString;
|
||||
APrefixList : TStrings
|
||||
) : string;
|
||||
var
|
||||
k : Integer;
|
||||
locStr : string;
|
||||
locWStr : WideString;
|
||||
begin
|
||||
Result := '';
|
||||
if ( APrefixList.Count > 0 ) then begin
|
||||
for k := 0 to Pred(APrefixList.Count) do begin
|
||||
if IsStrEmpty(APrefixList[k]) then begin
|
||||
locWStr := ''
|
||||
end else begin
|
||||
locWStr := APrefixList[k] + ':';
|
||||
end;
|
||||
locWStr := locWStr + AName;
|
||||
locStr := s_NODE_NAME;
|
||||
Result := Result + ' or ' + locStr + ' = ' + QuotedStr(locWStr);
|
||||
end;
|
||||
if ( Length(Result) > 0 ) then begin
|
||||
Delete(Result,1,Length(' or'));
|
||||
end;
|
||||
end else begin
|
||||
Result := Format('%s = %s',[s_NODE_NAME,QuotedStr(AName)]);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure ExtractNameSpaceShortNamesNested(
|
||||
ANode : TDOMNode;
|
||||
AResList : TStrings;
|
||||
const ANameSpace : WideString
|
||||
);
|
||||
var
|
||||
nd : TDOMNode;
|
||||
begin
|
||||
AResList.Clear();
|
||||
nd := ANode;
|
||||
while Assigned(nd) do begin
|
||||
if Assigned(nd.Attributes) and ( nd.Attributes.Length > 0 ) then begin
|
||||
ExtractNameSpaceShortNames(CreateAttributesCursor(nd,cetRttiNode),AResList,ANameSpace,nfaNone,False,nil);
|
||||
end;
|
||||
nd := nd.ParentNode;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure ExtractNameSpaceShortNames(
|
||||
AAttribCursor : IObjectCursor;
|
||||
AResList : TStrings;
|
||||
const ANameSpace : WideString;
|
||||
const ANotFoundAction : TNotFoundAction;
|
||||
const AClearBefore : Boolean;
|
||||
const AExceptionClass : ExceptClass
|
||||
);
|
||||
var
|
||||
crs : IObjectCursor;
|
||||
locObj : TDOMNodeRttiExposer;
|
||||
wStr : WideString;
|
||||
i : Integer;
|
||||
ec : ExceptClass;
|
||||
begin
|
||||
if AClearBefore then begin
|
||||
AResList.Clear();
|
||||
end;
|
||||
AAttribCursor.Reset();
|
||||
crs := CreateCursorOn(AAttribCursor,ParseFilter(Format('%s=%s',[s_NODE_VALUE,QuotedStr(ANameSpace)]),TDOMNodeRttiExposer));
|
||||
crs.Reset();
|
||||
if crs.MoveNext() then begin
|
||||
repeat
|
||||
locObj := crs.GetCurrent() as TDOMNodeRttiExposer;
|
||||
wStr := Trim(locObj.NodeName);
|
||||
i := AnsiPos(s_xmlns + ':',wStr);
|
||||
if ( i > 0 ) then begin
|
||||
i := AnsiPos(':',wStr);
|
||||
AResList.Add(Copy(wStr,( i + 1 ), MaxInt));
|
||||
end else begin
|
||||
if ( AResList.IndexOf('') = -1 ) then
|
||||
AResList.Add('');
|
||||
end;
|
||||
until not crs.MoveNext();
|
||||
end else begin
|
||||
if ( ANotFoundAction = nfaRaiseException ) then begin
|
||||
if Assigned(AExceptionClass) then
|
||||
ec := AExceptionClass
|
||||
else
|
||||
ec := Exception;
|
||||
raise ec.CreateFmt('Namespace not found : "%s"',[ANameSpace]);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
function wst_findCustomAttribute(
|
||||
AWsdlShortNames : TStrings;
|
||||
ANode : TDOMNode;
|
||||
const AAttribute : string;
|
||||
out AValue : string
|
||||
) : Boolean;
|
||||
var
|
||||
nd : TDOMNode;
|
||||
tmpCrs : IObjectCursor;
|
||||
begin
|
||||
Result := False;
|
||||
tmpCrs := CreateCursorOn(
|
||||
CreateChildrenCursor(ANode,cetRttiNode),
|
||||
ParseFilter(CreateQualifiedNameFilterStr(s_document,AWsdlShortNames),TDOMNodeRttiExposer)
|
||||
);
|
||||
tmpCrs.Reset();
|
||||
if tmpCrs.MoveNext() then begin
|
||||
nd := (tmpCrs.GetCurrent() as TDOMNodeRttiExposer).InnerObject;
|
||||
if nd.HasChildNodes() then begin
|
||||
tmpCrs := CreateCursorOn(
|
||||
CreateChildrenCursor(nd,cetRttiNode),
|
||||
ParseFilter(Format('%s=%s',[s_NODE_NAME,QuotedStr(s_customAttributes)]),TDOMNodeRttiExposer)
|
||||
);
|
||||
tmpCrs.Reset();
|
||||
if tmpCrs.MoveNext() then begin
|
||||
nd := (tmpCrs.GetCurrent() as TDOMNodeRttiExposer).InnerObject;
|
||||
if ( nd.Attributes <> nil ) then begin
|
||||
nd := nd.Attributes.GetNamedItem(AAttribute);
|
||||
if Assigned(nd) then begin
|
||||
Result := True;
|
||||
AValue := nd.NodeValue;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
function wst_findCustomAttributeXsd(
|
||||
AXsdShortNames : TStrings;
|
||||
ANode : TDOMNode;
|
||||
const AAttribute : string;
|
||||
out AValue : string
|
||||
) : Boolean;
|
||||
var
|
||||
nd : TDOMNode;
|
||||
tmpCrs : IObjectCursor;
|
||||
begin
|
||||
Result := False;
|
||||
tmpCrs := CreateCursorOn(
|
||||
CreateChildrenCursor(ANode,cetRttiNode),
|
||||
ParseFilter(CreateQualifiedNameFilterStr(s_annotation,AXsdShortNames),TDOMNodeRttiExposer)
|
||||
);
|
||||
tmpCrs.Reset();
|
||||
if tmpCrs.MoveNext() then begin
|
||||
nd := (tmpCrs.GetCurrent() as TDOMNodeRttiExposer).InnerObject;
|
||||
if nd.HasChildNodes() then begin
|
||||
tmpCrs := CreateCursorOn(
|
||||
CreateChildrenCursor(nd,cetRttiNode),
|
||||
ParseFilter(Format('%s=%s',[s_NODE_NAME,QuotedStr(s_appinfo)]),TDOMNodeRttiExposer)
|
||||
);
|
||||
tmpCrs.Reset();
|
||||
if tmpCrs.MoveNext() then begin
|
||||
nd := (tmpCrs.GetCurrent() as TDOMNodeRttiExposer).InnerObject;
|
||||
if ( nd.Attributes <> nil ) then begin
|
||||
nd := nd.Attributes.GetNamedItem(AAttribute);
|
||||
if Assigned(nd) then begin
|
||||
Result := True;
|
||||
AValue := nd.NodeValue;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure ExplodeQName(const AQName : string; out ALocalName, ANameSpace : string) ;
|
||||
var
|
||||
i : PtrInt;
|
||||
begin
|
||||
i := Pos(':',AQName);
|
||||
if ( i > 0 ) then begin
|
||||
ANameSpace := Copy(AQName,1,Pred(i));
|
||||
ALocalName := Copy(AQName,Succ(i),Length(AQName));
|
||||
end else begin
|
||||
ANameSpace := '';
|
||||
ALocalName := AQName;
|
||||
end;
|
||||
end;
|
||||
|
||||
function AddNameSpace(const AValue: string; ANameSpaceList : TStrings): TStrings;
|
||||
var
|
||||
i : PtrInt;
|
||||
s : string;
|
||||
ls : TStringList;
|
||||
begin
|
||||
s := Trim(AValue);
|
||||
i := ANameSpaceList.IndexOf(s);
|
||||
if ( i < 0 ) then begin
|
||||
i := ANameSpaceList.Add(s);
|
||||
ls := TStringList.Create();
|
||||
ANameSpaceList.Objects[i] := ls;
|
||||
ls.Duplicates := dupIgnore;
|
||||
ls.Sorted := True;
|
||||
Result := ls;
|
||||
end else begin
|
||||
Result := ANameSpaceList.Objects[i] as TStrings;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure BuildNameSpaceList(AAttCursor : IObjectCursor; ANameSpaceList : TStrings);
|
||||
var
|
||||
locObj : TDOMNodeRttiExposer;
|
||||
locNameSpace, locNameSpaceShort : string;
|
||||
tmpXmlNs : string;
|
||||
found : Boolean;
|
||||
begin
|
||||
if Assigned(AAttCursor) then begin
|
||||
tmpXmlNs := s_xmlns + ':';
|
||||
AAttCursor.Reset();
|
||||
while AAttCursor.MoveNext() do begin
|
||||
found := False;
|
||||
locObj := AAttCursor.GetCurrent() as TDOMNodeRttiExposer;
|
||||
if AnsiSameText(s_xmlns,locObj.NodeName) then begin
|
||||
found := True;
|
||||
locNameSpace := locObj.NodeValue;
|
||||
locNameSpaceShort := '';
|
||||
end else if AnsiStartsText(tmpXmlNs,locObj.NodeName) then begin
|
||||
found := True;
|
||||
locNameSpace := locObj.NodeValue;
|
||||
locNameSpaceShort := locObj.NodeName;
|
||||
locNameSpaceShort := Copy(locNameSpaceShort,Pos(':',locNameSpaceShort) + 1, Length(locNameSpaceShort));
|
||||
end;
|
||||
if found then
|
||||
AddNameSpace(locNameSpace,ANameSpaceList).Add(locNameSpaceShort);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
end.
|
||||
|
||||
|
@ -111,9 +111,11 @@ type
|
||||
procedure SetArrayStyle(AArray : TPasArrayType; const AStyle : TArrayStyle);
|
||||
procedure SetArrayItemExternalName(AArray : TPasArrayType; const AExternalName : string);
|
||||
function FindElement(const AName: String): TPasElement; override;
|
||||
function FindElementNS(const AName, ANameSpace : string): TPasElement;
|
||||
function FindElementInModule(const AName: String; AModule: TPasModule): TPasElement;
|
||||
function FindModule(const AName: String): TPasModule;override;
|
||||
function IsEnumItemNameUsed(const AName : string) : Boolean;
|
||||
function IsEnumItemNameUsed(const AName : string; AModule : TPasModule) : Boolean;overload;
|
||||
function IsEnumItemNameUsed(const AName : string) : Boolean;overload;
|
||||
procedure SetCurrentModule(AModule : TPasModule);
|
||||
property CurrentModule : TPasModule read FCurrentModule;
|
||||
|
||||
@ -134,6 +136,9 @@ type
|
||||
function IsInitNeed(AType: TPasType): Boolean;
|
||||
function IsOfType(AType: TPasType; AClass: TClass): Boolean;
|
||||
end;
|
||||
|
||||
TPasNativeModule = class(TPasModule)
|
||||
end;
|
||||
|
||||
TPasClassTypeClass = class of TPasClassType;
|
||||
TPasNativeClassType = class(TPasClassType) end;
|
||||
@ -173,7 +178,9 @@ type
|
||||
implementation
|
||||
uses parserutils;
|
||||
|
||||
const SIMPLE_TYPES : Array[0..14] Of array[0..2] of string = (
|
||||
const
|
||||
SIMPLE_TYPES_COUNT = 15;
|
||||
SIMPLE_TYPES : Array[0..Pred(SIMPLE_TYPES_COUNT)] Of array[0..2] of string = (
|
||||
('string', 'TComplexStringContentRemotable', 'string'),
|
||||
('integer', 'TComplexInt32SContentRemotable', 'int'),
|
||||
('LongWord', 'TComplexInt32UContentRemotable', 'unsignedInt' ),
|
||||
@ -200,11 +207,13 @@ var
|
||||
splTyp : TPasNativeSimpleType;
|
||||
syb : TPasNativeSimpleContentClassType;
|
||||
s : string;
|
||||
typlst : array[0..Pred(SIMPLE_TYPES_COUNT)] of TPasNativeSimpleType;
|
||||
begin
|
||||
for i := Low(SIMPLE_TYPES) to High(SIMPLE_TYPES) do begin
|
||||
splTyp := TPasNativeSimpleType(AContainer.CreateElement(TPasNativeSimpleType,SIMPLE_TYPES[i][0],ADest.InterfaceSection,visPublic,'',0));
|
||||
ADest.InterfaceSection.Declarations.Add(splTyp);
|
||||
ADest.InterfaceSection.Types.Add(splTyp);
|
||||
typlst[i] := splTyp;
|
||||
s := SIMPLE_TYPES[i][1];
|
||||
if not IsStrEmpty(s) then begin
|
||||
syb := AContainer.FindElementInModule(SIMPLE_TYPES[i][1],ADest) as TPasNativeSimpleContentClassType;
|
||||
@ -217,7 +226,8 @@ begin
|
||||
end;
|
||||
end;
|
||||
for i := Low(SIMPLE_TYPES) to High(SIMPLE_TYPES) do begin
|
||||
splTyp := AContainer.FindElementInModule(SIMPLE_TYPES[i][0],ADest) as TPasNativeSimpleType;
|
||||
//splTyp := AContainer.FindElementInModule(SIMPLE_TYPES[i][0],ADest) as TPasNativeSimpleType;
|
||||
splTyp := typlst[i];
|
||||
if not IsStrEmpty(SIMPLE_TYPES[i][2]) then begin
|
||||
AContainer.RegisterExternalAlias(splTyp,SIMPLE_TYPES[i][2]);
|
||||
if ( splTyp.BoxedType <> nil ) then begin
|
||||
@ -267,7 +277,7 @@ function CreateWstInterfaceSymbolTable(AContainer : TwstPasTreeContainer) : TPas
|
||||
var
|
||||
loc_TBaseComplexSimpleContentRemotable : TPasClassType;
|
||||
begin
|
||||
Result := TPasModule(AContainer.CreateElement(TPasModule,'base_service_intf',AContainer.Package,visPublic,'',0));
|
||||
Result := TPasNativeModule(AContainer.CreateElement(TPasNativeModule,'base_service_intf',AContainer.Package,visPublic,'',0));
|
||||
try
|
||||
AContainer.Package.Modules.Add(Result);
|
||||
AContainer.RegisterExternalAlias(Result,sXSD_NS);
|
||||
@ -540,11 +550,23 @@ begin
|
||||
if Assigned(AModule) and Assigned(AModule.InterfaceSection.Declarations) then begin
|
||||
decs := AModule.InterfaceSection.Declarations;
|
||||
c := decs.Count;
|
||||
for i := 0 to Pred(c) do begin
|
||||
{for i := 0 to Pred(c) do begin
|
||||
if SameName(TPasElement(decs[i]),AName) then begin
|
||||
Result := TPasElement(decs[i]);
|
||||
Exit;
|
||||
end;
|
||||
end;}
|
||||
for i := 0 to Pred(c) do begin
|
||||
if AnsiSameText(AName, GetExternalName(TPasElement(decs[i]))) then begin
|
||||
Result := TPasElement(decs[i]);
|
||||
Exit;
|
||||
end;
|
||||
end;
|
||||
for i := 0 to Pred(c) do begin
|
||||
if AnsiSameText(AName, TPasElement(decs[i]).Name) then begin
|
||||
Result := TPasElement(decs[i]);
|
||||
Exit;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@ -579,13 +601,13 @@ begin
|
||||
mdl := Package.Modules;
|
||||
c := mdl.Count;
|
||||
for i := 0 to Pred(c) do begin
|
||||
if AnsiSameText(AName,TPasModule(mdl[i]).Name) then begin
|
||||
if SameName(TPasModule(mdl[i]),AName) then begin
|
||||
Result := TPasModule(mdl[i]);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TwstPasTreeContainer.IsEnumItemNameUsed(const AName: string): Boolean;
|
||||
function TwstPasTreeContainer.IsEnumItemNameUsed(const AName: string;AModule: TPasModule): Boolean;
|
||||
var
|
||||
i, c, j : Integer;
|
||||
elt : TPasElement;
|
||||
@ -593,7 +615,7 @@ var
|
||||
typeList : TList;
|
||||
begin
|
||||
Result := False;
|
||||
typeList := CurrentModule.InterfaceSection.Declarations;
|
||||
typeList := AModule.InterfaceSection.Declarations;
|
||||
c := typeList.Count;
|
||||
for i := 0 to Pred(c) do begin
|
||||
elt := TPasElement(typeList[i]);
|
||||
@ -609,6 +631,11 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function TwstPasTreeContainer.IsEnumItemNameUsed(const AName: string): Boolean;
|
||||
begin
|
||||
Result := IsEnumItemNameUsed(AName,CurrentModule);
|
||||
end;
|
||||
|
||||
function TwstPasTreeContainer.IsOfType(AType : TPasType; AClass : TClass) : Boolean;
|
||||
var
|
||||
ut : TPasType;
|
||||
@ -728,6 +755,17 @@ begin
|
||||
Properties.SetValue(AObject,sATTRIBUTE,s);
|
||||
end;
|
||||
|
||||
function TwstPasTreeContainer.FindElementNS(const AName, ANameSpace: string): TPasElement;
|
||||
var
|
||||
mdl : TPasModule;
|
||||
begin
|
||||
Result := nil;
|
||||
mdl := FindModule(ANameSpace);
|
||||
if Assigned(mdl) then begin
|
||||
Result := FindElementInModule(AName,mdl);
|
||||
end;
|
||||
end;
|
||||
|
||||
{ TwstBinding }
|
||||
|
||||
constructor TwstBinding.Create(
|
||||
|
@ -12,7 +12,7 @@
|
||||
<MainUnit Value="0"/>
|
||||
<IconPath Value=".\"/>
|
||||
<TargetFileExt Value=""/>
|
||||
<ActiveEditorIndexAtStart Value="7"/>
|
||||
<ActiveEditorIndexAtStart Value="2"/>
|
||||
</General>
|
||||
<PublishOptions>
|
||||
<Version Value="2"/>
|
||||
@ -24,7 +24,7 @@
|
||||
<RunParams>
|
||||
<local>
|
||||
<FormatVersion Value="1"/>
|
||||
<CommandLineParams Value="-i -p -b -a"C:\Programmes\lazarus\release\tests\files" "C:\Programmes\lazarus\release\tests\files\AWSECommerceService.pas" >test_res_AWSECommerceService2.txt"/>
|
||||
<CommandLineParams Value="-uA -i -p -b -a"C:\Programmes\lazarus\wst\trunk\tests\files" "C:\Programmes\lazarus\wst\trunk\type_lib_edtr\files\iplookup.wsdl""/>
|
||||
<LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
|
||||
</local>
|
||||
</RunParams>
|
||||
@ -33,13 +33,13 @@
|
||||
<PackageName Value="FCL"/>
|
||||
</Item1>
|
||||
</RequiredPackages>
|
||||
<Units Count="76">
|
||||
<Units Count="88">
|
||||
<Unit0>
|
||||
<Filename Value="ws_helper.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="ws_helper"/>
|
||||
<CursorPos X="32" Y="25"/>
|
||||
<TopLine Value="21"/>
|
||||
<CursorPos X="38" Y="31"/>
|
||||
<TopLine Value="20"/>
|
||||
<EditorIndex Value="0"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
@ -50,7 +50,7 @@
|
||||
<UnitName Value="ws_parser"/>
|
||||
<CursorPos X="1" Y="487"/>
|
||||
<TopLine Value="444"/>
|
||||
<EditorIndex Value="13"/>
|
||||
<EditorIndex Value="19"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit1>
|
||||
@ -58,9 +58,9 @@
|
||||
<Filename Value="generator.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="generator"/>
|
||||
<CursorPos X="45" Y="3"/>
|
||||
<TopLine Value="67"/>
|
||||
<EditorIndex Value="14"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="20"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Bookmarks Count="3">
|
||||
<Item0 X="69" Y="935" ID="1"/>
|
||||
@ -84,9 +84,9 @@
|
||||
<Filename Value="parserutils.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="parserutils"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="10"/>
|
||||
<CursorPos X="18" Y="400"/>
|
||||
<TopLine Value="381"/>
|
||||
<EditorIndex Value="17"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit4>
|
||||
@ -94,9 +94,9 @@
|
||||
<Filename Value="source_utils.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="source_utils"/>
|
||||
<CursorPos X="32" Y="29"/>
|
||||
<CursorPos X="17" Y="19"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<EditorIndex Value="13"/>
|
||||
<UsageCount Value="201"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit5>
|
||||
@ -125,17 +125,15 @@
|
||||
<UnitName Value="command_line_parser"/>
|
||||
<CursorPos X="11" Y="39"/>
|
||||
<TopLine Value="19"/>
|
||||
<EditorIndex Value="6"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit9>
|
||||
<Unit10>
|
||||
<Filename Value="metadata_generator.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="metadata_generator"/>
|
||||
<CursorPos X="20" Y="19"/>
|
||||
<TopLine Value="132"/>
|
||||
<EditorIndex Value="7"/>
|
||||
<TopLine Value="114"/>
|
||||
<EditorIndex Value="14"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit10>
|
||||
@ -153,9 +151,7 @@
|
||||
<UnitName Value="wst_resources_utils"/>
|
||||
<CursorPos X="26" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit12>
|
||||
<Unit13>
|
||||
<Filename Value="..\wsdl_to_pascal\wsdl2pas_imp.pas"/>
|
||||
@ -177,16 +173,18 @@
|
||||
<UnitName Value="dom_cursors"/>
|
||||
<CursorPos X="13" Y="353"/>
|
||||
<TopLine Value="317"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<EditorIndex Value="12"/>
|
||||
<UsageCount Value="101"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit15>
|
||||
<Unit16>
|
||||
<Filename Value="..\wst_rtti_filter\cursor_intf.pas"/>
|
||||
<UnitName Value="cursor_intf"/>
|
||||
<CursorPos X="32" Y="41"/>
|
||||
<TopLine Value="1"/>
|
||||
<CursorPos X="1" Y="159"/>
|
||||
<TopLine Value="133"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<UsageCount Value="101"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit16>
|
||||
<Unit17>
|
||||
<Filename Value="..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\objpas\sysutils\sysstrh.inc"/>
|
||||
@ -205,13 +203,11 @@
|
||||
<UnitName Value="wsdl2pas_imp"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="11"/>
|
||||
<UsageCount Value="102"/>
|
||||
<Bookmarks Count="2">
|
||||
<Item0 X="21" Y="763" ID="3"/>
|
||||
<Item1 X="50" Y="657" ID="5"/>
|
||||
</Bookmarks>
|
||||
<Loaded Value="True"/>
|
||||
</Unit19>
|
||||
<Unit20>
|
||||
<Filename Value="..\..\..\..\lazarus211\fpc\2.1.1\source\rtl\inc\getopts.pp"/>
|
||||
@ -292,10 +288,10 @@
|
||||
<Filename Value="pascal_parser_intf.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="pascal_parser_intf"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="9"/>
|
||||
<UsageCount Value="199"/>
|
||||
<CursorPos X="1" Y="652"/>
|
||||
<TopLine Value="637"/>
|
||||
<EditorIndex Value="16"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit31>
|
||||
<Unit32>
|
||||
@ -435,8 +431,8 @@
|
||||
<UnitName Value="logger_intf"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="12"/>
|
||||
<UsageCount Value="111"/>
|
||||
<EditorIndex Value="18"/>
|
||||
<UsageCount Value="115"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit52>
|
||||
<Unit53>
|
||||
@ -503,18 +499,18 @@
|
||||
</Unit62>
|
||||
<Unit63>
|
||||
<Filename Value="..\wst_global.inc"/>
|
||||
<CursorPos X="16" Y="1"/>
|
||||
<CursorPos X="25" Y="4"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="6"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit63>
|
||||
<Unit64>
|
||||
<Filename Value="wsdl_generator.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="wsdl_generator"/>
|
||||
<CursorPos X="34" Y="52"/>
|
||||
<TopLine Value="128"/>
|
||||
<EditorIndex Value="8"/>
|
||||
<UsageCount Value="64"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="116"/>
|
||||
<EditorIndex Value="15"/>
|
||||
<UsageCount Value="68"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit64>
|
||||
<Unit65>
|
||||
@ -576,18 +572,19 @@
|
||||
<Unit73>
|
||||
<Filename Value="..\wst_fpc_xml.pas"/>
|
||||
<UnitName Value="wst_fpc_xml"/>
|
||||
<CursorPos X="13" Y="17"/>
|
||||
<TopLine Value="4"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<UsageCount Value="20"/>
|
||||
<CursorPos X="1" Y="55"/>
|
||||
<TopLine Value="43"/>
|
||||
<EditorIndex Value="11"/>
|
||||
<UsageCount Value="22"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit73>
|
||||
<Unit74>
|
||||
<Filename Value="ws_helper_prog.inc"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<UsageCount Value="20"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<CursorPos X="33" Y="89"/>
|
||||
<TopLine Value="75"/>
|
||||
<EditorIndex Value="7"/>
|
||||
<UsageCount Value="23"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit74>
|
||||
<Unit75>
|
||||
@ -597,12 +594,224 @@
|
||||
<TopLine Value="486"/>
|
||||
<UsageCount Value="15"/>
|
||||
</Unit75>
|
||||
<Unit76>
|
||||
<Filename Value="xsd_parser.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="xsd_parser"/>
|
||||
<CursorPos X="16" Y="14"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="6"/>
|
||||
<UsageCount Value="22"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit76>
|
||||
<Unit77>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\heaptrc.pp"/>
|
||||
<UnitName Value="heaptrc"/>
|
||||
<CursorPos X="29" Y="49"/>
|
||||
<TopLine Value="31"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit77>
|
||||
<Unit78>
|
||||
<Filename Value="wsdl_parser.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="wsdl_parser"/>
|
||||
<CursorPos X="24" Y="178"/>
|
||||
<TopLine Value="162"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<UsageCount Value="22"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit78>
|
||||
<Unit79>
|
||||
<Filename Value="ws_parser_imp.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="ws_parser_imp"/>
|
||||
<CursorPos X="52" Y="1265"/>
|
||||
<TopLine Value="1242"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<UsageCount Value="22"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit79>
|
||||
<Unit80>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\heaptrc.pp"/>
|
||||
<UnitName Value="heaptrc"/>
|
||||
<CursorPos X="1" Y="182"/>
|
||||
<TopLine Value="167"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit80>
|
||||
<Unit81>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\i386\i386.inc"/>
|
||||
<CursorPos X="1" Y="1110"/>
|
||||
<TopLine Value="1095"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit81>
|
||||
<Unit82>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\objpas\sysutils\fina.inc"/>
|
||||
<CursorPos X="1" Y="32"/>
|
||||
<TopLine Value="17"/>
|
||||
<EditorIndex Value="8"/>
|
||||
<UsageCount Value="11"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit82>
|
||||
<Unit83>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\except.inc"/>
|
||||
<CursorPos X="1" Y="223"/>
|
||||
<TopLine Value="208"/>
|
||||
<EditorIndex Value="9"/>
|
||||
<UsageCount Value="11"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit83>
|
||||
<Unit84>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\i386\setjump.inc"/>
|
||||
<CursorPos X="1" Y="36"/>
|
||||
<TopLine Value="21"/>
|
||||
<EditorIndex Value="10"/>
|
||||
<UsageCount Value="11"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit84>
|
||||
<Unit85>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpas.inc"/>
|
||||
<CursorPos X="9" Y="759"/>
|
||||
<TopLine Value="756"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<UsageCount Value="11"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit85>
|
||||
<Unit86>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\rtti.inc"/>
|
||||
<CursorPos X="1" Y="166"/>
|
||||
<TopLine Value="151"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit86>
|
||||
<Unit87>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpash.inc"/>
|
||||
<CursorPos X="23" Y="241"/>
|
||||
<TopLine Value="226"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<UsageCount Value="11"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit87>
|
||||
</Units>
|
||||
<JumpHistory Count="1" HistoryIndex="0">
|
||||
<JumpHistory Count="30" HistoryIndex="29">
|
||||
<Position1>
|
||||
<Filename Value="command_line_parser.pas"/>
|
||||
<Caret Line="39" Column="11" TopLine="19"/>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpas.inc"/>
|
||||
<Caret Line="725" Column="1" TopLine="710"/>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpas.inc"/>
|
||||
<Caret Line="727" Column="1" TopLine="712"/>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpas.inc"/>
|
||||
<Caret Line="56" Column="1" TopLine="41"/>
|
||||
</Position3>
|
||||
<Position4>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpas.inc"/>
|
||||
<Caret Line="58" Column="1" TopLine="43"/>
|
||||
</Position4>
|
||||
<Position5>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpas.inc"/>
|
||||
<Caret Line="53" Column="1" TopLine="38"/>
|
||||
</Position5>
|
||||
<Position6>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpas.inc"/>
|
||||
<Caret Line="55" Column="1" TopLine="40"/>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="..\wst_rtti_filter\cursor_intf.pas"/>
|
||||
<Caret Line="159" Column="1" TopLine="133"/>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpas.inc"/>
|
||||
<Caret Line="723" Column="1" TopLine="708"/>
|
||||
</Position8>
|
||||
<Position9>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpas.inc"/>
|
||||
<Caret Line="724" Column="1" TopLine="709"/>
|
||||
</Position9>
|
||||
<Position10>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpas.inc"/>
|
||||
<Caret Line="725" Column="1" TopLine="710"/>
|
||||
</Position10>
|
||||
<Position11>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpas.inc"/>
|
||||
<Caret Line="726" Column="1" TopLine="711"/>
|
||||
</Position11>
|
||||
<Position12>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpas.inc"/>
|
||||
<Caret Line="144" Column="1" TopLine="129"/>
|
||||
</Position12>
|
||||
<Position13>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpas.inc"/>
|
||||
<Caret Line="740" Column="1" TopLine="725"/>
|
||||
</Position13>
|
||||
<Position14>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpas.inc"/>
|
||||
<Caret Line="742" Column="1" TopLine="727"/>
|
||||
</Position14>
|
||||
<Position15>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpas.inc"/>
|
||||
<Caret Line="145" Column="1" TopLine="130"/>
|
||||
</Position15>
|
||||
<Position16>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpas.inc"/>
|
||||
<Caret Line="221" Column="1" TopLine="206"/>
|
||||
</Position16>
|
||||
<Position17>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpas.inc"/>
|
||||
<Caret Line="222" Column="1" TopLine="207"/>
|
||||
</Position17>
|
||||
<Position18>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpas.inc"/>
|
||||
<Caret Line="549" Column="1" TopLine="546"/>
|
||||
</Position18>
|
||||
<Position19>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpas.inc"/>
|
||||
<Caret Line="550" Column="1" TopLine="535"/>
|
||||
</Position19>
|
||||
<Position20>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpas.inc"/>
|
||||
<Caret Line="551" Column="1" TopLine="536"/>
|
||||
</Position20>
|
||||
<Position21>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpas.inc"/>
|
||||
<Caret Line="555" Column="1" TopLine="564"/>
|
||||
</Position21>
|
||||
<Position22>
|
||||
<Filename Value="wsdl_parser.pas"/>
|
||||
<Caret Line="39" Column="35" TopLine="35"/>
|
||||
</Position22>
|
||||
<Position23>
|
||||
<Filename Value="..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpash.inc"/>
|
||||
<Caret Line="216" Column="37" TopLine="201"/>
|
||||
</Position23>
|
||||
<Position24>
|
||||
<Filename Value="wsdl_parser.pas"/>
|
||||
<Caret Line="89" Column="16" TopLine="74"/>
|
||||
</Position24>
|
||||
<Position25>
|
||||
<Filename Value="xsd_parser.pas"/>
|
||||
<Caret Line="134" Column="39" TopLine="132"/>
|
||||
</Position25>
|
||||
<Position26>
|
||||
<Filename Value="ws_helper.pas"/>
|
||||
<Caret Line="31" Column="38" TopLine="20"/>
|
||||
</Position26>
|
||||
<Position27>
|
||||
<Filename Value="wsdl_parser.pas"/>
|
||||
<Caret Line="358" Column="7" TopLine="343"/>
|
||||
</Position27>
|
||||
<Position28>
|
||||
<Filename Value="wsdl_parser.pas"/>
|
||||
<Caret Line="1140" Column="41" TopLine="1122"/>
|
||||
</Position28>
|
||||
<Position29>
|
||||
<Filename Value="wsdl_parser.pas"/>
|
||||
<Caret Line="186" Column="11" TopLine="162"/>
|
||||
</Position29>
|
||||
<Position30>
|
||||
<Filename Value="wsdl_parser.pas"/>
|
||||
<Caret Line="176" Column="12" TopLine="161"/>
|
||||
</Position30>
|
||||
</JumpHistory>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
@ -630,8 +839,7 @@
|
||||
</CodeGeneration>
|
||||
<Linking>
|
||||
<Debugging>
|
||||
<GenerateDebugInfo Value="True"/>
|
||||
<UseHeaptrc Value="True"/>
|
||||
<UseLineInfoUnit Value="False"/>
|
||||
<StripSymbols Value="True"/>
|
||||
</Debugging>
|
||||
<LinkSmart Value="True"/>
|
||||
|
@ -37,10 +37,13 @@ uses
|
||||
XMLWrite,
|
||||
XMLRead,
|
||||
wst_fpc_xml,
|
||||
wsdl2pas_imp,
|
||||
pastree,
|
||||
pparser,
|
||||
pascal_parser_intf,
|
||||
logger_intf;
|
||||
logger_intf,
|
||||
xsd_parser,
|
||||
ws_parser_imp,
|
||||
wsdl_parser;
|
||||
|
||||
|
||||
{$INCLUDE ws_helper_prog.inc}
|
||||
|
@ -15,7 +15,7 @@ const
|
||||
sWST_META = 'wst_meta';
|
||||
|
||||
type
|
||||
TSourceFileType = ( sftPascal, sftWSDL );
|
||||
TSourceFileType = ( sftPascal, sftWSDL, sftXsd );
|
||||
|
||||
var
|
||||
inFileName,outPath,errStr : string;
|
||||
@ -41,6 +41,8 @@ var
|
||||
sourceType := sftPascal;
|
||||
end else if AnsiSameText(ExtractFileExt(inFileName),'.WSDL') then begin
|
||||
sourceType := sftWSDL;
|
||||
end else if AnsiSameText(ExtractFileExt(inFileName),'.XSD') then begin
|
||||
sourceType := sftXsd;
|
||||
end;
|
||||
if Result then begin
|
||||
if ( AppOptions = [] ) then begin
|
||||
@ -62,6 +64,10 @@ var
|
||||
if AnsiSameText('A',Trim(GetOptionArg(cloInterface))) then begin
|
||||
parserMode := pmAllTypes;
|
||||
end;
|
||||
|
||||
if ( sourceType = sftXsd ) then begin
|
||||
AppOptions := AppOptions - [ cloProxy, cloImp, cloBinder, cloWsdl ];
|
||||
end;
|
||||
end;
|
||||
|
||||
function GenerateSymbolTable() : Boolean ;
|
||||
@ -74,25 +80,48 @@ var
|
||||
procedure ParseWsdlFile();
|
||||
var
|
||||
locDoc : TXMLDocument;
|
||||
prsr : TWsdlParser;
|
||||
prsrW : IParser;
|
||||
begin
|
||||
ReadXMLFile(locDoc,inFileName);
|
||||
{$IFNDEF WST_INTF_DOM}
|
||||
try
|
||||
{$ENDIF}
|
||||
prsrW := TWsdlParser.Create(locDoc,symtable);// as IParser;
|
||||
prsrW.Execute(parserMode,ChangeFileExt(ExtractFileName(inFileName),''));
|
||||
{$IFNDEF WST_INTF_DOM}
|
||||
finally
|
||||
prsrW := nil;
|
||||
ReleaseDomNode(locDoc);
|
||||
end;
|
||||
{$ENDIF}
|
||||
end;
|
||||
|
||||
procedure ParseXsdFile();
|
||||
var
|
||||
locDoc : TXMLDocument;
|
||||
prsr : IXsdPaser;
|
||||
begin
|
||||
prsr := nil;
|
||||
ReadXMLFile(locDoc,inFileName);
|
||||
{$IFNDEF WST_INTF_DOM}
|
||||
try
|
||||
prsr := TWsdlParser.Create(locDoc,symtable);
|
||||
prsr.Parse(parserMode,ChangeFileExt(ExtractFileName(inFileName),''));
|
||||
{$ENDIF}
|
||||
prsr := TXsdParser.Create(locDoc,symtable,ChangeFileExt(ExtractFileName(inFileName),'')) as IXsdPaser;
|
||||
prsr.ParseTypes();
|
||||
{$IFNDEF WST_INTF_DOM}
|
||||
finally
|
||||
FreeAndNil(prsr);
|
||||
FreeAndNil(locDoc);
|
||||
ReleaseDomNode(locDoc);
|
||||
end;
|
||||
{$ENDIF}
|
||||
end;
|
||||
|
||||
|
||||
begin
|
||||
try
|
||||
WriteLn('Parsing the file : ', inFileName);
|
||||
case sourceType of
|
||||
sftPascal : ParsePascalFile();
|
||||
sftWSDL : ParseWsdlFile();
|
||||
sftXsd : ParseXsdFile();
|
||||
end;
|
||||
Result := True;
|
||||
except
|
||||
@ -112,7 +141,7 @@ var
|
||||
GenerateWSDL(ASymbol,doc);
|
||||
WriteXML(doc,ADest);
|
||||
finally
|
||||
FreeAndNil(doc);
|
||||
ReleaseDomNode(doc);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -198,6 +227,11 @@ var
|
||||
end;
|
||||
|
||||
begin
|
||||
{$IFDEF FPC}
|
||||
{$IF Declared(SetHeapTraceOutput) }
|
||||
SetHeapTraceOutput('heapOut.txt');
|
||||
{$IFEND}
|
||||
{$ENDIF}
|
||||
osParam := 'windows';
|
||||
targetParam := 'x86';
|
||||
|
||||
|
1272
wst/trunk/ws_helper/ws_parser_imp.pas
Normal file
1272
wst/trunk/ws_helper/ws_parser_imp.pas
Normal file
File diff suppressed because it is too large
Load Diff
@ -421,7 +421,6 @@ procedure TWsdlParser.Prepare(const AModuleName : string);
|
||||
var
|
||||
locAttCursor : IObjectCursor;
|
||||
locObj : TDOMNodeRttiExposer;
|
||||
|
||||
begin
|
||||
CreateWstInterfaceSymbolTable(SymbolTable);
|
||||
FModule := TPasModule(SymbolTable.CreateElement(TPasModule,AModuleName,SymbolTable.Package,visDefault,'',0));
|
||||
@ -443,7 +442,7 @@ begin
|
||||
ParseFilter(CreateQualifiedNameFilterStr(s_service,FWsdlShortNames),TDOMNodeRttiExposer)
|
||||
);
|
||||
FServiceCursor.Reset();
|
||||
|
||||
|
||||
FBindingCursor := CreateCursorOn(
|
||||
FChildCursor.Clone() as IObjectCursor,
|
||||
ParseFilter(CreateQualifiedNameFilterStr(s_binding,FWsdlShortNames),TDOMNodeRttiExposer)
|
||||
|
@ -153,6 +153,8 @@ const
|
||||
sSOAP_USE = 'use';
|
||||
|
||||
sADDRESS = 'address';
|
||||
sANNOTATION = 'annotation';
|
||||
sAPPINFO = 'appinfo';
|
||||
sATTRIBUTE = 'attribute';
|
||||
sBASE = 'base';
|
||||
sBINDING = 'binding';
|
||||
@ -199,7 +201,7 @@ const
|
||||
sWSDL_TYPES = 'types';
|
||||
|
||||
var
|
||||
WsdlTypeHandlerRegistryInst : IWsdlTypeHandlerRegistry;
|
||||
WsdlTypeHandlerRegistryInst : IWsdlTypeHandlerRegistry = nil;
|
||||
|
||||
|
||||
function GetTypeNameSpace(
|
||||
@ -665,12 +667,12 @@ procedure TClassTypeDefinition_TypeHandler.Generate(
|
||||
AWsdlDocument : TDOMDocument
|
||||
);
|
||||
var
|
||||
cplxNode, docNode : TDOMElement;
|
||||
cplxNode, annNode : TDOMElement;
|
||||
|
||||
procedure CreateDocNode();
|
||||
begin
|
||||
if ( docNode = nil ) then begin
|
||||
docNode := CreateElement(sDOCUMENT,cplxNode,AWsdlDocument);
|
||||
if ( annNode = nil ) then begin
|
||||
annNode := CreateElement(sDOCUMENT,cplxNode,AWsdlDocument);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -686,7 +688,7 @@ var
|
||||
trueParent : TPasType;
|
||||
begin
|
||||
inherited;
|
||||
docNode := nil;
|
||||
annNode := nil;
|
||||
typItm := ASymbol as TPasClassType;
|
||||
if Assigned(typItm) then begin
|
||||
GetNameSpaceShortName(AContainer.GetExternalName(AContainer.CurrentModule) ,AWsdlDocument);
|
||||
@ -706,8 +708,8 @@ begin
|
||||
|
||||
if trueParent.InheritsFrom(TPasNativeClassType) and AnsiSameText('THeaderBlock',trueParent.Name) then begin
|
||||
CreateDocNode();
|
||||
CreateElement(sCUSTOM_ATTRIBUTE,docNode,AWsdlDocument).SetAttribute(sHEADER_Block,'true');
|
||||
end;
|
||||
CreateElement(sAPPINFO,annNode,AWsdlDocument).SetAttribute(sHEADER_Block,'true');
|
||||
end;
|
||||
|
||||
if trueParent.InheritsFrom(TPasAliasType) then begin
|
||||
trueParent := GetUltimeType(trueParent);
|
||||
@ -994,12 +996,12 @@ procedure TPasRecordType_TypeHandler.Generate(
|
||||
AWsdlDocument : TDOMDocument
|
||||
);
|
||||
var
|
||||
cplxNode, docNode : TDOMElement;
|
||||
cplxNode, annNode : TDOMElement;
|
||||
|
||||
procedure CreateDocNode();
|
||||
begin
|
||||
if ( docNode = nil ) then begin
|
||||
docNode := CreateElement(sDOCUMENT,cplxNode,AWsdlDocument);
|
||||
if ( annNode = nil ) then begin
|
||||
annNode := CreateElement(Format('%s:%s',[sXSD,sANNOTATION]),cplxNode,AWsdlDocument);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -1013,7 +1015,7 @@ var
|
||||
hasSequence : Boolean;
|
||||
begin
|
||||
inherited;
|
||||
docNode := nil;
|
||||
annNode := nil;
|
||||
typItm := ASymbol as TPasRecordType;
|
||||
if Assigned(typItm) then begin
|
||||
GetNameSpaceShortName(AContainer.GetExternalName(AContainer.CurrentModule) ,AWsdlDocument);
|
||||
@ -1026,7 +1028,7 @@ begin
|
||||
cplxNode.SetAttribute(sNAME, AContainer.GetExternalName(typItm)) ;
|
||||
|
||||
CreateDocNode();
|
||||
CreateElement(sCUSTOM_ATTRIBUTE,docNode,AWsdlDocument).SetAttribute(sRECORD,'true');
|
||||
CreateElement(Format('%s:%s',[sXSD,sAPPINFO]),annNode,AWsdlDocument).SetAttribute(sRECORD,'true');
|
||||
|
||||
hasSequence := False;
|
||||
for i := 0 to Pred(typItm.Members.Count) do begin
|
||||
|
1237
wst/trunk/ws_helper/wsdl_parser.pas
Normal file
1237
wst/trunk/ws_helper/wsdl_parser.pas
Normal file
File diff suppressed because it is too large
Load Diff
590
wst/trunk/ws_helper/xsd_parser.pas
Normal file
590
wst/trunk/ws_helper/xsd_parser.pas
Normal file
@ -0,0 +1,590 @@
|
||||
{
|
||||
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 xsd_parser;
|
||||
|
||||
interface
|
||||
uses
|
||||
Classes, SysUtils,
|
||||
{$IFNDEF FPC}xmldom, wst_delphi_xml{$ELSE}DOM{$ENDIF},
|
||||
cursor_intf, rtti_filters,
|
||||
pastree, pascal_parser_intf, logger_intf;
|
||||
|
||||
type
|
||||
|
||||
EXsdParserException = class(Exception)
|
||||
end;
|
||||
|
||||
EXsdParserAssertException = class(EXsdParserException)
|
||||
end;
|
||||
|
||||
EXsdTypeNotFoundException = class(EXsdParserException)
|
||||
end;
|
||||
|
||||
EXsdInvalidDefinitionException = class(EXsdParserException)
|
||||
end;
|
||||
|
||||
EXsdInvalidTypeDefinitionException = class(EXsdInvalidDefinitionException)
|
||||
end;
|
||||
|
||||
EXsdInvalidElementDefinitionException = class(EXsdInvalidDefinitionException)
|
||||
end;
|
||||
|
||||
TOnParserMessage = procedure (const AMsgType : TMessageType; const AMsg : string) of object;
|
||||
|
||||
|
||||
IParserContext = interface
|
||||
['{F400BA9E-41AC-456C-ABF9-CEAA75313685}']
|
||||
function GetXsShortNames() : TStrings;
|
||||
function GetSymbolTable() : TwstPasTreeContainer;
|
||||
function FindNameSpace(const AShortName : string; out AResult : string) : Boolean;
|
||||
function FindShortNamesForNameSpace(const ANameSpace : string) : TStrings;
|
||||
function GetTargetNameSpace() : string;
|
||||
function GetTargetModule() : TPasModule;
|
||||
end;
|
||||
|
||||
IXsdPaser = interface
|
||||
['{F0CEC726-A068-4CCC-B1E7-D31F018415B2}']
|
||||
function ParseType(const AName : string) : TPasType;
|
||||
procedure ParseTypes();
|
||||
procedure SetNotifier(ANotifier : TOnParserMessage);
|
||||
end;
|
||||
|
||||
{ TCustomXsdSchemaParser }
|
||||
|
||||
TCustomXsdSchemaParser = class(TInterfacedObject, IInterface, IParserContext, IXsdPaser)
|
||||
private
|
||||
FDoc : TXMLDocument;
|
||||
FParentContext : Pointer;//IParserContext;
|
||||
FSymbols : TwstPasTreeContainer;
|
||||
FModuleName : string;
|
||||
FModule : TPasModule;
|
||||
FTargetNameSpace : string;
|
||||
FSchemaNode : TDOMNode;
|
||||
private
|
||||
FNameSpaceList : TStringList;
|
||||
FXSShortNames : TStrings;
|
||||
FChildCursor : IObjectCursor;
|
||||
FOnMessage: TOnParserMessage;
|
||||
private
|
||||
procedure DoOnMessage(const AMsgType : TMessageType; const AMsg : string);
|
||||
private
|
||||
function FindNamedNode(AList : IObjectCursor; const AName : WideString; const AOrder : Integer = 0):TDOMNode;
|
||||
function AddNameSpace(const AValue : string) : TStrings; {$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||
function GetParentContext() : IParserContext;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||
procedure Prepare();
|
||||
function FindElement(const AName: String) : TPasElement; {$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||
protected
|
||||
function GetXsShortNames() : TStrings;
|
||||
function GetSymbolTable() : TwstPasTreeContainer;
|
||||
function FindNameSpace(const AShortName : string; out AResult : string) : Boolean;
|
||||
function FindShortNamesForNameSpaceLocal(const ANameSpace : string) : TStrings;
|
||||
function FindShortNamesForNameSpace(const ANameSpace : string) : TStrings;
|
||||
procedure SetNotifier(ANotifier : TOnParserMessage);
|
||||
public
|
||||
constructor Create(
|
||||
ADoc : TXMLDocument;
|
||||
ASchemaNode : TDOMNode;
|
||||
ASymbols : TwstPasTreeContainer;
|
||||
AParentContext : IParserContext
|
||||
);
|
||||
destructor Destroy();override;
|
||||
function ParseType(const AName : string) : TPasType;
|
||||
procedure ParseTypes();
|
||||
|
||||
function GetTargetNameSpace() : string;
|
||||
function GetTargetModule() : TPasModule;
|
||||
|
||||
property SymbolTable : TwstPasTreeContainer read FSymbols;
|
||||
property Module : TPasModule read FModule;
|
||||
property OnMessage : TOnParserMessage read FOnMessage write FOnMessage;
|
||||
end;
|
||||
|
||||
TXsdParser = class(TCustomXsdSchemaParser)
|
||||
public
|
||||
constructor Create(
|
||||
ADoc : TXMLDocument;
|
||||
ASymbols : TwstPasTreeContainer;
|
||||
const AModuleName : string
|
||||
);
|
||||
end;
|
||||
|
||||
implementation
|
||||
uses ws_parser_imp, dom_cursors, parserutils, StrUtils
|
||||
{$IFDEF FPC}
|
||||
,wst_fpc_xml
|
||||
{$ENDIF}
|
||||
;
|
||||
|
||||
{ TCustomXsdSchemaParser }
|
||||
|
||||
function TCustomXsdSchemaParser.AddNameSpace(const AValue: string): TStrings;
|
||||
begin
|
||||
Result := parserutils.AddNameSpace(AValue,FNameSpaceList)
|
||||
end;
|
||||
|
||||
constructor TCustomXsdSchemaParser.Create(
|
||||
ADoc : TXMLDocument;
|
||||
ASchemaNode : TDOMNode;
|
||||
ASymbols : TwstPasTreeContainer;
|
||||
AParentContext : IParserContext
|
||||
);
|
||||
begin
|
||||
if ( ADoc = nil ) then
|
||||
raise EXsdParserAssertException.Create('Invalid DOM document.');
|
||||
if ( ASchemaNode = nil ) then
|
||||
raise EXsdParserAssertException.Create('Invalid schema node.');
|
||||
if ( ASymbols = nil ) then
|
||||
raise EXsdParserAssertException.Create('Invalid Symbol table.');
|
||||
if ( ASchemaNode = nil ) then
|
||||
raise EXsdParserAssertException.Create('Invalid schema node.');
|
||||
|
||||
FDoc := ADoc;
|
||||
FParentContext := Pointer(AParentContext);
|
||||
FSymbols := ASymbols;
|
||||
FSchemaNode := ASchemaNode;
|
||||
|
||||
FNameSpaceList := TStringList.Create();
|
||||
FNameSpaceList.Duplicates := dupError;
|
||||
FNameSpaceList.Sorted := True;
|
||||
|
||||
Prepare();
|
||||
end;
|
||||
|
||||
destructor TCustomXsdSchemaParser.Destroy();
|
||||
var
|
||||
i : PtrInt;
|
||||
begin
|
||||
FParentContext := nil;
|
||||
for i := 0 to Pred(FNameSpaceList.Count) do begin
|
||||
FNameSpaceList.Objects[i].Free();
|
||||
end;
|
||||
FreeAndNil(FNameSpaceList);
|
||||
inherited;
|
||||
end;
|
||||
|
||||
procedure TCustomXsdSchemaParser.DoOnMessage(
|
||||
const AMsgType: TMessageType;
|
||||
const AMsg: string
|
||||
);
|
||||
begin
|
||||
if Assigned(FOnMessage) then begin
|
||||
FOnMessage(AMsgType,AMsg);
|
||||
end else if IsConsole and HasLogger() then begin
|
||||
GetLogger().Log(AMsgType, AMsg);
|
||||
end;
|
||||
end;
|
||||
|
||||
function TCustomXsdSchemaParser.FindElement(const AName: String): TPasElement;
|
||||
begin
|
||||
Result := SymbolTable.FindElementInModule(AName,FModule);
|
||||
end;
|
||||
|
||||
function TCustomXsdSchemaParser.FindNamedNode(
|
||||
AList : IObjectCursor;
|
||||
const AName : WideString;
|
||||
const AOrder : Integer
|
||||
): TDOMNode;
|
||||
var
|
||||
attCrs, crs : IObjectCursor;
|
||||
curObj : TDOMNodeRttiExposer;
|
||||
fltr : IObjectFilter;
|
||||
locOrder : Integer;
|
||||
begin
|
||||
Result := nil;
|
||||
if Assigned(AList) then begin
|
||||
fltr := ParseFilter(Format('%s = %s',[s_NODE_NAME,QuotedStr(s_name)]),TDOMNodeRttiExposer);
|
||||
AList.Reset();
|
||||
locOrder := AOrder;
|
||||
while AList.MoveNext() do begin
|
||||
curObj := AList.GetCurrent() as TDOMNodeRttiExposer;
|
||||
attCrs := CreateAttributesCursor(curObj.InnerObject,cetRttiNode);
|
||||
if Assigned(attCrs) then begin
|
||||
crs := CreateCursorOn(attCrs,fltr);
|
||||
crs.Reset();
|
||||
if crs.MoveNext() and AnsiSameText(AName,TDOMNodeRttiExposer(crs.GetCurrent()).NodeValue) then begin
|
||||
Dec(locOrder);
|
||||
if ( locOrder <= 0 ) then begin
|
||||
Result := curObj.InnerObject;
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TCustomXsdSchemaParser.FindNameSpace(
|
||||
const AShortName : string;
|
||||
out AResult : string
|
||||
) : Boolean;
|
||||
var
|
||||
i : PtrInt;
|
||||
ls : TStrings;
|
||||
begin
|
||||
AResult := '';
|
||||
Result := False;
|
||||
for i := 0 to Pred(FNameSpaceList.Count) do begin
|
||||
ls := FNameSpaceList.Objects[i] as TStrings;
|
||||
if ( ls.IndexOf(AShortName) >= 0 ) then begin
|
||||
AResult := FNameSpaceList[i];
|
||||
Result := True;
|
||||
Break;
|
||||
end;
|
||||
end;
|
||||
if not Result then
|
||||
Result := GetParentContext().FindNameSpace(AShortName,AResult);
|
||||
end;
|
||||
|
||||
function TCustomXsdSchemaParser.FindShortNamesForNameSpace(const ANameSpace: string): TStrings;
|
||||
var
|
||||
prtCtx : IParserContext;
|
||||
begin
|
||||
Result := FindShortNamesForNameSpaceLocal(ANameSpace);
|
||||
if ( Result = nil ) then begin
|
||||
prtCtx := GetParentContext();
|
||||
if Assigned(prtCtx) then
|
||||
Result := prtCtx.FindShortNamesForNameSpace(ANameSpace);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCustomXsdSchemaParser.SetNotifier(ANotifier: TOnParserMessage);
|
||||
begin
|
||||
FOnMessage := ANotifier;
|
||||
end;
|
||||
|
||||
function TCustomXsdSchemaParser.FindShortNamesForNameSpaceLocal(const ANameSpace: string): TStrings;
|
||||
var
|
||||
i : PtrInt;
|
||||
begin
|
||||
i := FNameSpaceList.IndexOf(ANameSpace);
|
||||
if ( i >= 0 ) then
|
||||
Result := FNameSpaceList.Objects[i] as TStrings
|
||||
else
|
||||
Result := nil;
|
||||
end;
|
||||
|
||||
function TCustomXsdSchemaParser.GetParentContext() : IParserContext;
|
||||
begin
|
||||
Result := IParserContext(FParentContext);
|
||||
end;
|
||||
|
||||
function TCustomXsdSchemaParser.GetSymbolTable() : TwstPasTreeContainer;
|
||||
begin
|
||||
Result := FSymbols;
|
||||
end;
|
||||
|
||||
function TCustomXsdSchemaParser.GetTargetModule() : TPasModule;
|
||||
begin
|
||||
Result := FModule;
|
||||
end;
|
||||
|
||||
function TCustomXsdSchemaParser.GetTargetNameSpace() : string;
|
||||
begin
|
||||
Result := FTargetNameSpace;
|
||||
end;
|
||||
|
||||
function TCustomXsdSchemaParser.GetXsShortNames() : TStrings;
|
||||
begin
|
||||
Result := FXSShortNames;
|
||||
end;
|
||||
|
||||
function TCustomXsdSchemaParser.ParseType(const AName: string): TPasType;
|
||||
var
|
||||
crsSchemaChild : IObjectCursor;
|
||||
typNd : TDOMNode;
|
||||
typName : string;
|
||||
embededType : Boolean;
|
||||
localTypeName : string;
|
||||
|
||||
procedure Init();
|
||||
begin
|
||||
crsSchemaChild := FChildCursor.Clone() as IObjectCursor;
|
||||
end;
|
||||
|
||||
function FindTypeNode(out ASimpleTypeAlias : TPasType) : Boolean;
|
||||
var
|
||||
nd, oldTypeNode : TDOMNode;
|
||||
crs : IObjectCursor;
|
||||
locStrFilter : string;
|
||||
begin
|
||||
ASimpleTypeAlias := nil;
|
||||
Result := True;
|
||||
typNd := FindNamedNode(crsSchemaChild,localTypeName);
|
||||
if not Assigned(typNd) then
|
||||
raise EXsdTypeNotFoundException.CreateFmt('Type definition not found 1 : "%s"',[AName]);
|
||||
if AnsiSameText(ExtractNameFromQName(typNd.NodeName),s_element) then begin
|
||||
crs := CreateCursorOn(CreateAttributesCursor(typNd,cetRttiNode),ParseFilter(Format('%s = %s',[s_NODE_NAME,QuotedStr(s_type)]),TDOMNodeRttiExposer));
|
||||
crs.Reset();
|
||||
if crs.MoveNext() then begin
|
||||
nd := (crs.GetCurrent() as TDOMNodeRttiExposer).InnerObject;
|
||||
ASimpleTypeAlias := FindElement(ExtractNameFromQName(nd.NodeValue)) as TPasType;
|
||||
if Assigned(ASimpleTypeAlias) then begin
|
||||
Result := False;
|
||||
end else begin
|
||||
oldTypeNode := typNd;
|
||||
typNd := FindNamedNode(crsSchemaChild,ExtractNameFromQName(nd.NodeValue));
|
||||
if not Assigned(typNd) then
|
||||
raise EXsdTypeNotFoundException.CreateFmt('Type definition not found 2 : "%s"',[AName]);
|
||||
embededType := False;
|
||||
if ( typNd = oldTypeNode ) then begin
|
||||
typNd := FindNamedNode(crsSchemaChild,ExtractNameFromQName(nd.NodeValue),2);
|
||||
if not Assigned(typNd) then
|
||||
raise EXsdTypeNotFoundException.CreateFmt('Type definition not found 2.1 : "%s"',[AName]);
|
||||
end;
|
||||
end;
|
||||
end else begin
|
||||
//locStrFilter := Format('%s = %s or %s = %s ',[s_NODE_NAME,QuotedStr(s_complexType),s_NODE_NAME,QuotedStr(s_simpleType)]);
|
||||
locStrFilter := CreateQualifiedNameFilterStr(s_complexType,FXSShortNames) + ' or ' +
|
||||
CreateQualifiedNameFilterStr(s_simpleType,FXSShortNames);
|
||||
crs := CreateCursorOn(CreateChildrenCursor(typNd,cetRttiNode),ParseFilter(locStrFilter,TDOMNodeRttiExposer));
|
||||
crs.Reset();
|
||||
if not crs.MoveNext() then begin
|
||||
raise EXsdTypeNotFoundException.CreateFmt('Type definition not found 3 : "%s"',[AName]);
|
||||
end;
|
||||
typNd := (crs.GetCurrent() as TDOMNodeRttiExposer).InnerObject;
|
||||
typName := ExtractNameFromQName(AName);
|
||||
embededType := True;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
function ParseComplexType():TPasType;
|
||||
var
|
||||
locParser : TComplexTypeParser;
|
||||
begin
|
||||
locParser := TComplexTypeParser.Create(Self,typNd,typName,embededType);
|
||||
try
|
||||
Result := locParser.Parse();
|
||||
finally
|
||||
FreeAndNil(locParser);
|
||||
end;
|
||||
end;
|
||||
|
||||
function ParseSimpleType():TPasType;
|
||||
var
|
||||
locParser : TSimpleTypeParser;
|
||||
begin
|
||||
locParser := TSimpleTypeParser.Create(Self,typNd,typName,embededType);
|
||||
try
|
||||
Result := locParser.Parse();
|
||||
finally
|
||||
FreeAndNil(locParser);
|
||||
end;
|
||||
end;
|
||||
|
||||
function CreateTypeAlias(const ABase : TPasType): TPasType;
|
||||
var
|
||||
hasInternameName : Boolean;
|
||||
internameName : string;
|
||||
begin
|
||||
internameName := ExtractNameFromQName(AName);
|
||||
hasInternameName := IsReservedKeyWord(internameName) or
|
||||
( not IsValidIdent(internameName) );
|
||||
if hasInternameName then begin
|
||||
internameName := '_' + internameName;
|
||||
end;
|
||||
Result := TPasType(SymbolTable.CreateElement(TPasAliasType,internameName,SymbolTable.CurrentModule.InterfaceSection,visDefault,'',0));
|
||||
TPasAliasType(Result).DestType := ABase;
|
||||
ABase.AddRef();
|
||||
end;
|
||||
|
||||
function CreateUnresolveType(): TPasType;
|
||||
var
|
||||
hasInternameName : Boolean;
|
||||
internameName : string;
|
||||
begin
|
||||
internameName := ExtractNameFromQName(AName);
|
||||
hasInternameName := IsReservedKeyWord(internameName) or
|
||||
( not IsValidIdent(internameName) );
|
||||
if hasInternameName then begin
|
||||
internameName := '_' + internameName;
|
||||
end;
|
||||
Result := TPasUnresolvedTypeRef(SymbolTable.CreateElement(TPasUnresolvedTypeRef,internameName,SymbolTable.CurrentModule.InterfaceSection,visDefault,'',0));
|
||||
if not AnsiSameText(internameName,AName) then
|
||||
SymbolTable.RegisterExternalAlias(Result,AName);
|
||||
end;
|
||||
|
||||
var
|
||||
frwType, aliasType : TPasType;
|
||||
sct : TPasSection;
|
||||
shortNameSpace, longNameSpace : string;
|
||||
typeModule : TPasModule;
|
||||
begin
|
||||
DoOnMessage(mtInfo, Format('Parsing "%s" ...',[AName]));
|
||||
try
|
||||
embededType := False;
|
||||
aliasType := nil;
|
||||
Result := nil;
|
||||
typeModule := nil;
|
||||
ExplodeQName(AName,localTypeName,shortNameSpace);
|
||||
if IsStrEmpty(shortNameSpace) then begin
|
||||
typeModule := FModule;
|
||||
end else begin
|
||||
if not FindNameSpace(shortNameSpace,longNameSpace) then
|
||||
raise EXsdParserAssertException.CreateFmt('Unable to resolve namespace, short name = "%s".',[shortNameSpace]);
|
||||
typeModule := SymbolTable.FindModule(longNameSpace);
|
||||
end;
|
||||
if ( typeModule = nil ) then
|
||||
raise EXsdTypeNotFoundException.Create(AName);
|
||||
Result := SymbolTable.FindElementInModule(localTypeName,typeModule) as TPasType;
|
||||
if ( ( Result = nil ) or Result.InheritsFrom(TPasUnresolvedTypeRef) ) and
|
||||
( typeModule = FModule )
|
||||
then begin
|
||||
sct := FModule.InterfaceSection;
|
||||
frwType := Result;
|
||||
Result := nil;
|
||||
Init();
|
||||
if FindTypeNode(aliasType) then begin
|
||||
if AnsiSameText(ExtractNameFromQName(typNd.NodeName),s_complexType) then begin
|
||||
Result := ParseComplexType();
|
||||
end else if AnsiSameText(ExtractNameFromQName(typNd.NodeName),s_simpleType) then begin
|
||||
Result := ParseSimpleType();
|
||||
end;
|
||||
if Assigned(Result) then begin
|
||||
if Assigned(frwType) and AnsiSameText(SymbolTable.GetExternalName(Result),SymbolTable.GetExternalName(frwType)) then begin
|
||||
Result.Name := frwType.Name;
|
||||
SymbolTable.RegisterExternalAlias(Result,SymbolTable.GetExternalName(frwType));
|
||||
end;
|
||||
end else begin
|
||||
raise EXsdTypeNotFoundException.CreateFmt('Type node found but unable to parse it : "%s"',[AName]);
|
||||
end;
|
||||
end else begin
|
||||
Result := CreateTypeAlias(aliasType);
|
||||
end;
|
||||
if ( frwType <> nil ) then begin
|
||||
sct.Declarations.Extract(frwType);
|
||||
sct.Types.Extract(frwType);
|
||||
frwType.Release();
|
||||
end;
|
||||
sct.Declarations.Add(Result);
|
||||
sct.Types.Add(Result);
|
||||
if Result.InheritsFrom(TPasClassType) then begin
|
||||
sct.Classes.Add(Result);
|
||||
end;
|
||||
end;
|
||||
except
|
||||
on e : EXsdTypeNotFoundException do begin
|
||||
Result := CreateUnresolveType();
|
||||
sct.Declarations.Add(Result);
|
||||
sct.Types.Add(Result);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCustomXsdSchemaParser.ParseTypes();
|
||||
var
|
||||
nd : TDOMNodeRttiExposer;
|
||||
schmCrsr, crsSchemaChild, typTmpCrs : IObjectCursor;
|
||||
typFilterStr : string;
|
||||
typNode : TDOMNode;
|
||||
begin
|
||||
if Assigned(FChildCursor) then begin
|
||||
crsSchemaChild := FChildCursor.Clone() as IObjectCursor;
|
||||
typFilterStr := Format(
|
||||
'%s or %s or %s',
|
||||
[ CreateQualifiedNameFilterStr(s_complexType,FXSShortNames),
|
||||
CreateQualifiedNameFilterStr(s_simpleType,FXSShortNames),
|
||||
CreateQualifiedNameFilterStr(s_element,FXSShortNames)
|
||||
]
|
||||
);
|
||||
crsSchemaChild := CreateCursorOn(crsSchemaChild,ParseFilter(typFilterStr,TDOMNodeRttiExposer));
|
||||
crsSchemaChild.Reset();
|
||||
while crsSchemaChild.MoveNext() do begin
|
||||
typNode := (crsSchemaChild.GetCurrent() as TDOMNodeRttiExposer).InnerObject;
|
||||
typTmpCrs := CreateAttributesCursor(typNode,cetRttiNode);
|
||||
if Assigned(typTmpCrs) then begin
|
||||
typTmpCrs.Reset();
|
||||
typTmpCrs := CreateCursorOn(typTmpCrs,ParseFilter(Format('%s=%s',[s_NODE_NAME,QuotedStr(s_name)]),TDOMNodeRttiExposer));
|
||||
typTmpCrs.Reset();
|
||||
if typTmpCrs.MoveNext() then begin
|
||||
ParseType(
|
||||
(typTmpCrs.GetCurrent() as TDOMNodeRttiExposer).NodeValue
|
||||
);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCustomXsdSchemaParser.Prepare();
|
||||
var
|
||||
locAttCursor : IObjectCursor;
|
||||
prntCtx : IParserContext;
|
||||
nd : TDOMNode;
|
||||
i : PtrInt;
|
||||
ls : TStrings;
|
||||
begin
|
||||
if ( FSchemaNode.Attributes = nil ) or ( GetNodeListCount(FSchemaNode.Attributes) = 0 ) then
|
||||
raise EXsdParserAssertException.CreateFmt('The Schema node has at least the "%s" attribute.',[s_targetNamespace]);
|
||||
nd := FSchemaNode.Attributes.GetNamedItem(s_targetNamespace);
|
||||
if ( nd = nil ) then
|
||||
raise EXsdParserAssertException.CreateFmt('The Schema node has at least the "%s" attribute.',[s_targetNamespace]);
|
||||
FTargetNameSpace := nd.NodeValue;
|
||||
if IsStrEmpty(FModuleName) then
|
||||
FModuleName := ExtractIdentifier(FTargetNameSpace);
|
||||
if ( SymbolTable.FindModule(s_xs) = nil ) then begin
|
||||
CreateWstInterfaceSymbolTable(SymbolTable);
|
||||
end;
|
||||
FChildCursor := CreateChildrenCursor(FSchemaNode,cetRttiNode);
|
||||
|
||||
locAttCursor := CreateAttributesCursor(FSchemaNode,cetRttiNode);
|
||||
BuildNameSpaceList(locAttCursor,FNameSpaceList);
|
||||
FXSShortNames := FindShortNamesForNameSpaceLocal(s_xs);
|
||||
prntCtx := GetParentContext();
|
||||
if ( FXSShortNames = nil ) then begin
|
||||
if ( prntCtx = nil ) then
|
||||
raise EXsdParserAssertException.CreateFmt('Invalid Schema document, namespace not found :'#13'%s.',[s_xs]);
|
||||
FXSShortNames := prntCtx.FindShortNamesForNameSpace(s_xs);
|
||||
if ( FXSShortNames = nil ) then
|
||||
raise EXsdParserAssertException.CreateFmt('Invalid Schema document, namespace not found ( short names ) :'#13'%s.',[s_xs]);
|
||||
end;
|
||||
|
||||
if Assigned(prntCtx) then begin
|
||||
for i:= 0 to Pred(FNameSpaceList.Count) do begin
|
||||
ls := prntCtx.FindShortNamesForNameSpace(FNameSpaceList[i]);
|
||||
if Assigned(ls) then
|
||||
(FNameSpaceList.Objects[i] as TStrings).AddStrings(ls);
|
||||
end;
|
||||
end;
|
||||
|
||||
FModule := SymbolTable.FindModule(FTargetNameSpace);
|
||||
if ( FModule = nil ) then begin
|
||||
FModule := TPasModule(SymbolTable.CreateElement(TPasModule,FModuleName,SymbolTable.Package,visDefault,'',0));
|
||||
SymbolTable.Package.Modules.Add(FModule);
|
||||
SymbolTable.RegisterExternalAlias(FModule,FTargetNameSpace);
|
||||
FModule.InterfaceSection := TPasSection(SymbolTable.CreateElement(TPasSection,'',FModule,visDefault,'',0));
|
||||
end;
|
||||
end;
|
||||
|
||||
{ TXsdParser }
|
||||
|
||||
constructor TXsdParser.Create(
|
||||
ADoc : TXMLDocument;
|
||||
ASymbols : TwstPasTreeContainer;
|
||||
const AModuleName : string
|
||||
);
|
||||
var
|
||||
locName : string;
|
||||
begin
|
||||
inherited Create(ADoc,ADoc.DocumentElement,ASymbols,nil);
|
||||
if not IsStrEmpty(AModuleName) then begin
|
||||
locName := ExtractIdentifier(AModuleName);
|
||||
if not IsStrEmpty(locName) then begin
|
||||
FModuleName := locName;
|
||||
Module.Name := FModuleName;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
Reference in New Issue
Block a user