ws_helper : nested type definition parsing

Example :
	        <xs:element name="NestedType">
	                <xs:complexType>
	                        <xs:sequence>
	                                <xs:element name="Property_1" type="xs:string"/>
	                                <xs:element name="Property_2" minOccurs="0" maxOccurs="unbounded">
      		                              <xs:complexType>
      	                                          <xs:sequence>
      	                                                 <xs:element name="Name" type="xs:string"/>
      	                                                 <xs:element name="Value" type="xs:string"/>
      	                                          </xs:sequence>
      	                                </xs:complexType>
	                                </xs:element>
	                        </xs:sequence>
	                </xs:complexType>
	        </xs:element>

ws_helper : Soap Binding Style are now recorded in the metadata registration subroutine generated by ws_helper


git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@144 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
inoussa
2007-04-12 00:48:00 +00:00
parent 98a3f13377
commit bbeed9acfd
9 changed files with 652 additions and 364 deletions

View File

@ -30,6 +30,7 @@ const
sNEW_LINE = {$ifndef Unix}#13#10{$else}#10{$endif};
function IsStrEmpty(Const AStr : String):Boolean;
function ExtractIdentifier(const AValue : string) : string ;
implementation
@ -38,5 +39,30 @@ begin
Result := ( Length(Trim(AStr)) = 0 );
end;
function ExtractIdentifier(const AValue : string) : string ;
var
i, c : Integer;
s : string;
begin
Result := '';
s := Trim(AValue);
c := Length(s);
if ( c > 0 ) then begin
if not ( s[1] in ['A'..'Z', 'a'..'z', '_'] ) then begin
Result := '_';
end;
for i := 1 to c do begin
if ( s[i] in ['A'..'Z', 'a'..'z', '0'..'9', '_'] ) then begin
Result := Result + s[i];
end else begin
if ( Length(Result) > 0 ) and ( Result[Length(Result)] <> '_' ) then begin
Result := Result + '_';
end;
end;
end;
end;
end;
end.