First thing that jumps out at me is that the XML is supposedly UTF-8 encoded, but the getCountries section has some characters in it that appear to be Unicode. Don't know if that would cause an error or not...
On May 25, 1:23 pm, "[email protected]" <[email protected]> wrote: > Hello everyone. > I've read MSDN manual about creating proxy class to work with Web- > Services.... Created it and cann't make it work properly. > Here is the link to wsdl file:http://api.a1agregator.ru/api.wsdl > The problem is in complex types of return values(with INT or BOOL > proxy class works fine). > "getCountries" method should return 'object[]' value in responce, but > insted I'm getting error message thet there is an error in XML file, > in position where this method is described. > > This is the part of *.wsdl file that describes needet to me method: > --------------------------------------------------------------------------------------------- > <?xml version="1.0" encoding="utf-8"?> > <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:typens="urn:api-a1agregator" xmlns:soapenc="http:// > schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/ > XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" name="api- > a1agregator" targetNamespace="urn:api-a1agregator" xmlns:wsdl="http:// > schemas.xmlsoap.org/wsdl/"> > <wsdl:types /> > .............................. > <wsdl:message name="getCountries" /> > <wsdl:message name="getCountriesResponse"> > <wsdl:part name="getCountriesReturn" type="xsd:anyType" /> > </wsdl:message> > .............................. > <wsdl:portType name="ApiPortType"> > .............................. > <wsdl:operation name="getCountries"> > <documentation> > Получение списка стран > </documentation> > <wsdl:input message="typens:getCountries" /> > <wsdl:output message="typens:getCountriesResponse" /> > </wsdl:operation> > .............................. > </wsdl:portType> > .............................. > <wsdl:binding name="ApiBinding" type="typens:ApiPortType"> > <soap:binding transport="http://schemas.xmlsoap.org/soap/http" > style="rpc" /> > .............................. > <wsdl:operation name="getCountries"> > <soap:operation soapAction="urn:ApiAction" /> > <wsdl:input> > <soap:body use="encoded" namespace="urn:api-a1agregator" > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> > </wsdl:input> > <wsdl:output> > <soap:body use="encoded" namespace="urn:api-a1agregator" > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> > </wsdl:output> > </wsdl:operation> > .............................. > </wsdl:binding> > > <wsdl:service name="api-a1agregatorService"> > <wsdl:port name="ApiPort" binding="typens:ApiBinding"> > <soap:address location="http://api.a1agregator.ru/index.php" /> > </wsdl:port> > </wsdl:service> > </wsdl:definitions> > --------------------------------------------------------------------------------------------- > > And this is part of generated proxy class: > --------------------------------------------------------------------------------------------- > [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", > "2.0.50727.3038")] > [System.Diagnostics.DebuggerStepThroughAttribute()] > [System.ComponentModel.DesignerCategoryAttribute("code")] > [System.Web.Services.WebServiceBindingAttribute(Name = > "ApiBinding", Namespace = "urn:api-a1agregator")] > public partial class apia1agregatorService : > System.Web.Services.Protocols.SoapHttpClientProtocol > { > private System.Threading.SendOrPostCallback > getCountriesOperationCompleted; > > /// <remarks/> > public apia1agregatorService() > { > this.Url = "http://api.a1agregator.ru/index.php"; > } > > /// <remarks/> > public event getCountriesCompletedEventHandler > getCountriesCompleted; > > /// <remarks/> > [System.Web.Services.Protocols.SoapRpcMethodAttribute > ("urn:ApiAction", RequestNamespace = "urn:api-a1agregator", > ResponseNamespace = "urn:api-a1agregator")] > [return: System.Xml.Serialization.SoapElementAttribute > ("getCountriesReturn")] > public object getCountries() > { > object[] results = this.Invoke("getCountries", new object > [0]); > return ((object)(results[0])); > } > > /// <remarks/> > public void getCountriesAsync() > { > this.getCountriesAsync(null); > } > > /// <remarks/> > public void getCountriesAsync(object userState) > { > if ((this.getCountriesOperationCompleted == null)) > { > this.getCountriesOperationCompleted = new > System.Threading.SendOrPostCallback > (this.OngetCountriesOperationCompleted); > } > this.InvokeAsync("getCountries", new object[0], > this.getCountriesOperationCompleted, userState); > } > > private void OngetCountriesOperationCompleted(object arg) > { > if ((this.getCountriesCompleted != null)) > { > System.Web.Services.Protocols.InvokeCompletedEventArgs > invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs) > (arg)); > this.getCountriesCompleted(this, new > getCountriesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, > invokeArgs.Cancelled, invokeArgs.UserState)); > } > } > > /// <remarks/> > [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", > "2.0.50727.3038")] > public delegate void getCountriesCompletedEventHandler(object > sender, getCountriesCompletedEventArgs e); > > /// <remarks/> > [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", > "2.0.50727.3038")] > [System.Diagnostics.DebuggerStepThroughAttribute()] > [System.ComponentModel.DesignerCategoryAttribute("code")] > public partial class getCountriesCompletedEventArgs : > System.ComponentModel.AsyncCompletedEventArgs > { > > private object[] results; > > internal getCountriesCompletedEventArgs(object[] results, > System.Exception exception, bool cancelled, object userState) : > base(exception, cancelled, userState) > { > this.results = results; > } > > /// <remarks/> > public object Result > { > get > { > this.RaiseExceptionIfNecessary(); > return ((object)(this.results[0])); > } > } > } > } > --------------------------------------------------------------------------------------------- > > Please, help me somebody )
