anchor.diff:    end.
   
   
  -getXsdFromWsdl(Definitions) ->
  -    [#'wsdl:tTypes'{choice = [Xsd]}] = getTopLevelElements(Definitions, 'wsdl:tTypes'),
  -    Xsd.
  +getXsdsFromWsdl(Definitions) ->
  +  case getTopLevelElements(Definitions, 'wsdl:tTypes') of
  +    [#'wsdl:tTypes'{choice = Xsds}] -> Xsds;
  +    [] -> undefined
  +  end.
   
   config_file_xsd() ->
   "<xs:schema xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">"
  
positive.code:     call(Wsdl, Operation, Header, Msg);
  call(Wsdl, Operation, Header, Msg) when record(Wsdl, wsdl) ->
      case get_operation(Wsdl#wsdl.operations, Operation) of
          {ok, Op} ->
              call(Wsdl, Operation, Op#operation.port, Op#operation.service, 
                   Header, Msg);
          Else ->
              Else
      end.
  
  
  mk_msg(Prefix, Operation, ListOfData) ->
      list_to_tuple([list_to_atom(Prefix++":"++Operation), % record name
                     []                                    % anyAttribs
                     | ListOfData]).                       % rest of record data
  
  get_operation([#operation{operation = X} = Op|_], X) -> {ok, Op};
  get_operation([_|T], Op)                             -> get_operation(T, Op);
  
negative.code:     call(Wsdl, Operation, ListOfData);
  call(Wsdl, Operation, ListOfData) when record(Wsdl, wsdl) ->
      case get_operation(Wsdl#wsdl.operations, Operation) of
  	{ok, Op} ->
  	    Msg = mk_msg(?DefaultPrefix, Operation, ListOfData),
  	    call(Wsdl, Operation, Op#operation.port, Op#operation.service, [], Msg);
  	Else ->
  	    Else
      end.
  
  %%% --------------------------------------------------------------------
  