Parse only _once_ any binding (wsdl).

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@999 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
inoussa
2009-11-09 09:58:51 +00:00
parent 5d40568799
commit b2525ef5c1

View File

@ -943,23 +943,25 @@ begin
if ExtractBindingQName(bindingName) then begin if ExtractBindingQName(bindingName) then begin
i := Pos(':',bindingName); i := Pos(':',bindingName);
bindingName := Copy(bindingName,( i + 1 ), MaxInt); bindingName := Copy(bindingName,( i + 1 ), MaxInt);
bindingNode := FindBindingNode(bindingName); if ( SymbolTable.FindBinding(bindingName) = nil ) then begin
if Assigned(bindingNode) then begin bindingNode := FindBindingNode(bindingName);
if ExtractTypeQName(bindingNode,typeName) then begin if Assigned(bindingNode) then begin
i := Pos(':',typeName); if ExtractTypeQName(bindingNode,typeName) then begin
typeName := Copy(typeName,( i + 1 ), MaxInt); i := Pos(':',typeName);
typeNode := FindTypeNode(typeName); typeName := Copy(typeName,( i + 1 ), MaxInt);
if Assigned(typeNode) then begin typeNode := FindTypeNode(typeName);
ExtractSoapBindingStyle(bindingNode,locWStrBuffer); if Assigned(typeNode) then begin
locSoapBindingStyle := locWStrBuffer; ExtractSoapBindingStyle(bindingNode,locWStrBuffer);
if IsStrEmpty(locSoapBindingStyle) then locSoapBindingStyle := locWStrBuffer;
locSoapBindingStyle := s_document; if IsStrEmpty(locSoapBindingStyle) then
intfDef := ParsePortType(typeNode,bindingNode,locSoapBindingStyle); locSoapBindingStyle := s_document;
bdng := SymbolTable.AddBinding(bindingName,intfDef); intfDef := ParsePortType(typeNode,bindingNode,locSoapBindingStyle);
bdng.Address := ExtractAddress(); bdng := SymbolTable.AddBinding(bindingName,intfDef);
bdng.BindingStyle := StrToBindingStyle(locSoapBindingStyle); bdng.Address := ExtractAddress();
bdng.BindingStyle := StrToBindingStyle(locSoapBindingStyle);
end;
end; end;
end; end;
end; end;
end; end;
end; end;