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
i := Pos(':',bindingName);
bindingName := Copy(bindingName,( i + 1 ), MaxInt);
bindingNode := FindBindingNode(bindingName);
if Assigned(bindingNode) then begin
if ExtractTypeQName(bindingNode,typeName) then begin
i := Pos(':',typeName);
typeName := Copy(typeName,( i + 1 ), MaxInt);
typeNode := FindTypeNode(typeName);
if Assigned(typeNode) then begin
ExtractSoapBindingStyle(bindingNode,locWStrBuffer);
locSoapBindingStyle := locWStrBuffer;
if IsStrEmpty(locSoapBindingStyle) then
locSoapBindingStyle := s_document;
intfDef := ParsePortType(typeNode,bindingNode,locSoapBindingStyle);
bdng := SymbolTable.AddBinding(bindingName,intfDef);
bdng.Address := ExtractAddress();
bdng.BindingStyle := StrToBindingStyle(locSoapBindingStyle);
if ( SymbolTable.FindBinding(bindingName) = nil ) then begin
bindingNode := FindBindingNode(bindingName);
if Assigned(bindingNode) then begin
if ExtractTypeQName(bindingNode,typeName) then begin
i := Pos(':',typeName);
typeName := Copy(typeName,( i + 1 ), MaxInt);
typeNode := FindTypeNode(typeName);
if Assigned(typeNode) then begin
ExtractSoapBindingStyle(bindingNode,locWStrBuffer);
locSoapBindingStyle := locWStrBuffer;
if IsStrEmpty(locSoapBindingStyle) then
locSoapBindingStyle := s_document;
intfDef := ParsePortType(typeNode,bindingNode,locSoapBindingStyle);
bdng := SymbolTable.AddBinding(bindingName,intfDef);
bdng.Address := ExtractAddress();
bdng.BindingStyle := StrToBindingStyle(locSoapBindingStyle);
end;
end;
end;
end;
end;
end;
end;