You've already forked lazarus-ccr
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:
@ -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.
|
||||
|
||||
|
Reference in New Issue
Block a user