ws_helper parses ( and records in procedure Register_%service%_ServiceMetadata() )

- service/port for <soap:address>
  - binding/operation for "soapAction"
  
ws_helper : better parsing of "function" operations

ws_helper supports a new switch :
  -u MODE Generate the pascal translation of the WSDL input file
       MODE value may be U for used types or A for all types


Complexe types extending with simpleContent support in the runtime and ws_helper :
   sample WSDL type
  	<xs:complexType name="MeasureType">
  		<xs:simpleContent>
  			<xs:extension base="xs:decimal">
  				<xs:attribute name="UnitSystem" type="xs:token" use="optional">
  				</xs:attribute>
  				<xs:attribute name="ZeroPoint" type="string" use="optional">
  				</xs:attribute>
  			</xs:extension>
  		</xs:simpleContent>
  	</xs:complexType> 


embedded array support :
   sample WSDL type
      <xsd:complexType name="EmbeddeArraySample">
        <xsd:sequence>
          <xsd:element name="Name" type="xsd:string"/>
          <xsd:element name="Count" type="xsd:int"/>
          <xsd:element name="ArrayItem" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:complexType>

   sample instance of "EmbeddeArraySample"
      <example>
        <Name>WST NAME</Name>
        <Count>3</Count>
        <ArrayItem>Item 0</ArrayItem>
        <ArrayItem>Item 1</ArrayItem>
        <ArrayItem>Item 2</ArrayItem>
      </example>

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@139 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
inoussa
2007-04-02 13:19:48 +00:00
parent 77d87602b6
commit 2090bf84b2
24 changed files with 973 additions and 783 deletions

View File

@ -7,7 +7,7 @@
<MainUnit Value="0"/>
<IconPath Value="./"/>
<TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="0"/>
<ActiveEditorIndexAtStart Value="3"/>
</General>
<PublishOptions>
<Version Value="2"/>
@ -26,14 +26,14 @@
<PackageName Value="LCL"/>
</Item1>
</RequiredPackages>
<Units Count="36">
<Units Count="38">
<Unit0>
<Filename Value="test_ebay_gui.lpr"/>
<IsPartOfProject Value="True"/>
<UnitName Value="test_ebay_gui"/>
<CursorPos X="1" Y="17"/>
<CursorPos X="5" Y="8"/>
<TopLine Value="1"/>
<UsageCount Value="121"/>
<UsageCount Value="127"/>
</Unit0>
<Unit1>
<Filename Value="umain.pas"/>
@ -41,59 +41,59 @@
<IsPartOfProject Value="True"/>
<ResourceFilename Value="umain.lrs"/>
<UnitName Value="umain"/>
<CursorPos X="1" Y="10"/>
<TopLine Value="1"/>
<CursorPos X="40" Y="9"/>
<TopLine Value="4"/>
<EditorIndex Value="0"/>
<UsageCount Value="121"/>
<UsageCount Value="127"/>
<Loaded Value="True"/>
</Unit1>
<Unit2>
<Filename Value="..\..\synapse_http_protocol.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="synapse_http_protocol"/>
<CursorPos X="42" Y="22"/>
<TopLine Value="8"/>
<UsageCount Value="121"/>
<CursorPos X="1" Y="162"/>
<TopLine Value="149"/>
<UsageCount Value="127"/>
</Unit2>
<Unit3>
<Filename Value="..\..\base_service_intf.pas"/>
<UnitName Value="base_service_intf"/>
<CursorPos X="3" Y="2307"/>
<TopLine Value="2302"/>
<EditorIndex Value="10"/>
<UsageCount Value="61"/>
<CursorPos X="13" Y="3058"/>
<TopLine Value="3056"/>
<EditorIndex Value="7"/>
<UsageCount Value="63"/>
<Loaded Value="True"/>
</Unit3>
<Unit4>
<Filename Value="..\..\service_intf.pas"/>
<UnitName Value="service_intf"/>
<CursorPos X="15" Y="158"/>
<TopLine Value="136"/>
<EditorIndex Value="1"/>
<UsageCount Value="26"/>
<CursorPos X="1" Y="253"/>
<TopLine Value="239"/>
<EditorIndex Value="2"/>
<UsageCount Value="28"/>
<Loaded Value="True"/>
</Unit4>
<Unit5>
<Filename Value="..\..\soap_formatter.pas"/>
<UnitName Value="soap_formatter"/>
<CursorPos X="60" Y="159"/>
<TopLine Value="149"/>
<UsageCount Value="18"/>
<CursorPos X="1" Y="146"/>
<TopLine Value="132"/>
<UsageCount Value="20"/>
</Unit5>
<Unit6>
<Filename Value="..\..\imp_utils.pas"/>
<UnitName Value="imp_utils"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="11"/>
<CursorPos X="1" Y="86"/>
<TopLine Value="72"/>
<UsageCount Value="12"/>
</Unit6>
<Unit7>
<Filename Value="..\..\base_soap_formatter.pas"/>
<UnitName Value="base_soap_formatter"/>
<CursorPos X="28" Y="377"/>
<TopLine Value="371"/>
<EditorIndex Value="6"/>
<UsageCount Value="54"/>
<CursorPos X="1" Y="1625"/>
<TopLine Value="1611"/>
<EditorIndex Value="4"/>
<UsageCount Value="56"/>
<Bookmarks Count="2">
<Item0 X="14" Y="670" ID="1"/>
<Item1 X="1" Y="437" ID="2"/>
@ -111,10 +111,10 @@
<Filename Value="ebay.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="ebay"/>
<CursorPos X="3" Y="237"/>
<TopLine Value="223"/>
<EditorIndex Value="7"/>
<UsageCount Value="105"/>
<CursorPos X="49" Y="126"/>
<TopLine Value="124"/>
<EditorIndex Value="1"/>
<UsageCount Value="111"/>
<Loaded Value="True"/>
</Unit9>
<Unit10>
@ -127,10 +127,10 @@
<Unit11>
<Filename Value="..\..\metadata_repository.pas"/>
<UnitName Value="metadata_repository"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<EditorIndex Value="8"/>
<UsageCount Value="17"/>
<CursorPos X="3" Y="112"/>
<TopLine Value="9"/>
<EditorIndex Value="5"/>
<UsageCount Value="19"/>
<Bookmarks Count="1">
<Item0 X="1" Y="91" ID="3"/>
</Bookmarks>
@ -140,10 +140,10 @@
<Filename Value="ebay_proxy.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="ebay_proxy"/>
<CursorPos X="19" Y="11"/>
<TopLine Value="1"/>
<EditorIndex Value="9"/>
<UsageCount Value="105"/>
<CursorPos X="1" Y="75"/>
<TopLine Value="61"/>
<EditorIndex Value="6"/>
<UsageCount Value="111"/>
<Loaded Value="True"/>
</Unit12>
<Unit13>
@ -253,17 +253,17 @@
<UnitName Value="binary_streamer"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="55"/>
<EditorIndex Value="11"/>
<UsageCount Value="29"/>
<EditorIndex Value="8"/>
<UsageCount Value="31"/>
<Loaded Value="True"/>
</Unit29>
<Unit30>
<Filename Value="..\files\eBayWSDL.pas"/>
<UnitName Value="eBayWSDL"/>
<CursorPos X="56" Y="16040"/>
<TopLine Value="16029"/>
<EditorIndex Value="5"/>
<UsageCount Value="16"/>
<CursorPos X="48" Y="10961"/>
<TopLine Value="10947"/>
<EditorIndex Value="3"/>
<UsageCount Value="18"/>
<Loaded Value="True"/>
</Unit30>
<Unit31>
@ -285,45 +285,53 @@
<UnitName Value="eBayWSDL_proxy"/>
<CursorPos X="41" Y="11"/>
<TopLine Value="1"/>
<EditorIndex Value="4"/>
<UsageCount Value="15"/>
<Loaded Value="True"/>
</Unit33>
<Unit34>
<Filename Value="..\files\eBayWSDL_imp.pas"/>
<UnitName Value="eBayWSDL_imp"/>
<CursorPos X="39" Y="1074"/>
<TopLine Value="1327"/>
<EditorIndex Value="3"/>
<TopLine Value="1325"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit34>
<Unit35>
<Filename Value="..\files\eBayWSDL_binder.pas"/>
<UnitName Value="eBayWSDL_binder"/>
<CursorPos X="68" Y="11"/>
<TopLine Value="1"/>
<EditorIndex Value="2"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit35>
<Unit36>
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\fcl\xml\xmlread.pp"/>
<UnitName Value="XMLRead"/>
<CursorPos X="3" Y="1433"/>
<TopLine Value="1431"/>
<UsageCount Value="11"/>
</Unit36>
<Unit37>
<Filename Value="..\..\..\..\..\lazarusClean\others_package\synapse\httpsend.pas"/>
<UnitName Value="httpsend"/>
<CursorPos X="1" Y="466"/>
<TopLine Value="461"/>
<UsageCount Value="10"/>
</Unit37>
</Units>
<JumpHistory Count="21" HistoryIndex="20">
<JumpHistory Count="6" HistoryIndex="5">
<Position1>
<Filename Value="..\files\eBayWSDL_proxy.pas"/>
<Caret Line="506" Column="85" TopLine="500"/>
<Filename Value="..\files\eBayWSDL.pas"/>
<Caret Line="33919" Column="45" TopLine="33905"/>
</Position1>
<Position2>
<Filename Value="ebay.pas"/>
<Caret Line="520" Column="27" TopLine="515"/>
<Filename Value="..\files\eBayWSDL.pas"/>
<Caret Line="32893" Column="23" TopLine="32867"/>
</Position2>
<Position3>
<Filename Value="ebay.pas"/>
<Caret Line="1" Column="1" TopLine="249"/>
<Filename Value="..\files\eBayWSDL.pas"/>
<Caret Line="12" Column="53" TopLine="1"/>
</Position3>
<Position4>
<Filename Value="ebay.pas"/>
<Caret Line="519" Column="17" TopLine="511"/>
<Filename Value="..\files\eBayWSDL.pas"/>
<Caret Line="32726" Column="1" TopLine="32699"/>
</Position4>
<Position5>
<Filename Value="..\files\eBayWSDL.pas"/>
@ -331,68 +339,8 @@
</Position5>
<Position6>
<Filename Value="..\files\eBayWSDL.pas"/>
<Caret Line="31804" Column="8" TopLine="32688"/>
<Caret Line="503" Column="3" TopLine="489"/>
</Position6>
<Position7>
<Filename Value="..\files\eBayWSDL.pas"/>
<Caret Line="23" Column="71" TopLine="1"/>
</Position7>
<Position8>
<Filename Value="..\files\eBayWSDL.pas"/>
<Caret Line="10951" Column="10" TopLine="10937"/>
</Position8>
<Position9>
<Filename Value="..\files\eBayWSDL.pas"/>
<Caret Line="10958" Column="93" TopLine="10944"/>
</Position9>
<Position10>
<Filename Value="..\files\eBayWSDL.pas"/>
<Caret Line="16072" Column="5" TopLine="16058"/>
</Position10>
<Position11>
<Filename Value="..\files\eBayWSDL.pas"/>
<Caret Line="24735" Column="32" TopLine="24721"/>
</Position11>
<Position12>
<Filename Value="..\files\eBayWSDL.pas"/>
<Caret Line="24765" Column="39" TopLine="24751"/>
</Position12>
<Position13>
<Filename Value="..\files\eBayWSDL_imp.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position13>
<Position14>
<Filename Value="..\files\eBayWSDL.pas"/>
<Caret Line="31806" Column="19" TopLine="31802"/>
</Position14>
<Position15>
<Filename Value="..\files\eBayWSDL_binder.pas"/>
<Caret Line="11" Column="69" TopLine="1"/>
</Position15>
<Position16>
<Filename Value="..\..\service_intf.pas"/>
<Caret Line="84" Column="29" TopLine="83"/>
</Position16>
<Position17>
<Filename Value="..\..\service_intf.pas"/>
<Caret Line="158" Column="36" TopLine="144"/>
</Position17>
<Position18>
<Filename Value="..\..\service_intf.pas"/>
<Caret Line="225" Column="15" TopLine="204"/>
</Position18>
<Position19>
<Filename Value="umain.pas"/>
<Caret Line="55" Column="36" TopLine="49"/>
</Position19>
<Position20>
<Filename Value="..\files\eBayWSDL.pas"/>
<Caret Line="32124" Column="58" TopLine="32116"/>
</Position20>
<Position21>
<Filename Value="..\files\eBayWSDL.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position21>
</JumpHistory>
</ProjectOptions>
<CompilerOptions>
@ -418,7 +366,7 @@
</Other>
</CompilerOptions>
<Debugging>
<BreakPoints Count="10">
<BreakPoints Count="11">
<Item1>
<Source Value="..\google_api\home\inoussa\Projets\Laz\tests\soap\test_soap.pas"/>
<Line Value="15"/>
@ -457,8 +405,12 @@
</Item9>
<Item10>
<Source Value="umain.pas"/>
<Line Value="92"/>
<Line Value="77"/>
</Item10>
<Item11>
<Source Value="..\..\soap_formatter.pas"/>
<Line Value="146"/>
</Item11>
</BreakPoints>
<Watches Count="1">
<Item1>

View File

@ -6,7 +6,7 @@ interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls,
Buttons, StdCtrls, ComCtrls;
Buttons, StdCtrls, ComCtrls, eBayWSDL;
type
@ -85,7 +85,7 @@ begin
end;
except
on e : ESOAPException do begin
ShowMessageFmt('SOAP EXCEPTION Code : "%s"; String = "%s"',[e.FaultCode,e.FaultString]);
ShowMessageFmt('SOAP EXCEPTION Code : "%s"; String = "%s"; Msg : '#13'%s',[e.FaultCode,e.FaultString,e.Message]);
end;
end;
end;
@ -166,7 +166,7 @@ begin
end;
except
on e : ESOAPException do begin
ShowMessageFmt('SOAP EXCEPTION Code : "%s"; String = "%s"',[e.FaultCode,e.FaultString]);
ShowMessageFmt('SOAP EXCEPTION Code : "%s"; String = "%s"; Msg : '#13'%s',[e.FaultCode,e.FaultString,e.Message]);
end;
end;
end;