Error in xml document at (1,280)

Discussion in 'ASP .Net Web Services' started by Eric, Sep 13, 2004.

  1. Eric

    Eric Guest

    I try to call a logon webservice method with 3 parameters that are
    strings.
    the return value should be a xml string including all information on a
    user object. When I execute the web service from visual studio test
    environment the webservice method run fine and I get the expected xml
    string. But when I try to call this method from a asp.NET page the
    method failed and I get the following error message:

    Error in xml document at (1,280)

    I try to debug the web service (that is currently on my local machine)
    and I see that the user object is correctly serialized and return. But
    the caller of this method is catching a exception. and in the caller
    the xml string is empty.
    I already try to find help on the web like some similar post or white
    papers but nothing seems to match.

    I already tried to change the return value into the user object but I
    get the same problem, it was working in the test envirronment but not
    from a asp.net Page.

    I saw that the problem could be due to derived data class. Is that
    true? if it is , is there a work around?

    I already made a few web services (but not based on derived data
    class) that run perfectly by returning either objects or strings but I
    never encountered this problem.

    here is the Schema of my webservice provided from Webservice studio
    1.0

    <definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:s="http://www.w3.org/2001/XMLSchema"
    xmlns:s0="http://www.sogecore.com/webservices/"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    targetNamespace="http://www.sogecore.com/webservices/"
    xmlns="http://schemas.xmlsoap.org/wsdl/">
    <types>
    <s:schema elementFormDefault="qualified"
    targetNamespace="http://www.sogecore.com/webservices/">
    <s:element name="Logon">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="Login"
    type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="Password"
    type="s:string" />
    <s:element minOccurs="0" maxOccurs="1"
    name="LogicalUserId" type="s:string" />
    </s:sequence>
    </s:complexType>
    </s:element>
    <s:element name="LogonResponse">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="LogonResult"
    type="s:string" />
    </s:sequence>
    </s:complexType>
    </s:element>
    <s:element name="string" nillable="true" type="s:string" />
    </s:schema>
    </types>
    <message name="LogonSoapIn">
    <part name="parameters" element="s0:Logon" />
    </message>
    <message name="LogonSoapOut">
    <part name="parameters" element="s0:LogonResponse" />
    </message>
    <message name="LogonHttpGetIn">
    <part name="Login" type="s:string" />
    <part name="Password" type="s:string" />
    <part name="LogicalUserId" type="s:string" />
    </message>
    <message name="LogonHttpGetOut">
    <part name="Body" element="s0:string" />
    </message>
    <message name="LogonHttpPostIn">
    <part name="Login" type="s:string" />
    <part name="Password" type="s:string" />
    <part name="LogicalUserId" type="s:string" />
    </message>
    <message name="LogonHttpPostOut">
    <part name="Body" element="s0:string" />
    </message>
    <portType name="LoginSoap">
    <operation name="Logon">
    <documentation>Check user login and grant access to user if
    successfull.</documentation>
    <input message="s0:LogonSoapIn" />
    <output message="s0:LogonSoapOut" />
    </operation>
    </portType>
    <portType name="LoginHttpGet">
    <operation name="Logon">
    <documentation>Check user login and grant access to user if
    successfull.</documentation>
    <input message="s0:LogonHttpGetIn" />
    <output message="s0:LogonHttpGetOut" />
    </operation>
    </portType>
    <portType name="LoginHttpPost">
    <operation name="Logon">
    <documentation>Check user login and grant access to user if
    successfull.</documentation>
    <input message="s0:LogonHttpPostIn" />
    <output message="s0:LogonHttpPostOut" />
    </operation>
    </portType>
    <binding name="LoginSoap" type="s0:LoginSoap">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http"
    style="document" />
    <operation name="Logon">
    <soap:eek:peration
    soapAction="http://www.sogecore.com/webservices/Logon"
    style="document" />
    <input>
    <soap:body use="literal" />
    </input>
    <output>
    <soap:body use="literal" />
    </output>
    </operation>
    </binding>
    <binding name="LoginHttpGet" type="s0:LoginHttpGet">
    <http:binding verb="GET" />
    <operation name="Logon">
    <http:eek:peration location="/Logon" />
    <input>
    <http:urlEncoded />
    </input>
    <output>
    <mime:mimeXml part="Body" />
    </output>
    </operation>
    </binding>
    <binding name="LoginHttpPost" type="s0:LoginHttpPost">
    <http:binding verb="POST" />
    <operation name="Logon">
    <http:eek:peration location="/Logon" />
    <input>
    <mime:content type="application/x-www-form-urlencoded" />
    </input>
    <output>
    <mime:mimeXml part="Body" />
    </output>
    </operation>
    </binding>
    <service name="Login">
    <port name="LoginSoap" binding="s0:LoginSoap">
    <soap:address location="http://localhost/wsadmar/arlogin.asmx"
    />
    </port>
    <port name="LoginHttpGet" binding="s0:LoginHttpGet">
    <http:address location="http://localhost/wsadmar/arlogin.asmx"
    />
    </port>
    <port name="LoginHttpPost" binding="s0:LoginHttpPost">
    <http:address location="http://localhost/wsadmar/arlogin.asmx"
    />
    </port>
    </service>
    </definitions>

    I hope someone could be of any help to me,
    thank you in advance for any advice

    Eric
     
    Eric, Sep 13, 2004
    #1
    1. Advertising

  2. Eric

    Eric Guest

    (Eric) wrote in message news:<>...
    > I try to call a logon webservice method with 3 parameters that are
    > strings.
    > the return value should be a xml string including all information on a
    > user object. When I execute the web service from visual studio test
    > environment the webservice method run fine and I get the expected xml
    > string. But when I try to call this method from a asp.NET page the
    > method failed and I get the following error message:
    >
    > Error in xml document at (1,280)
    >
    > I try to debug the web service (that is currently on my local machine)
    > and I see that the user object is correctly serialized and return. But
    > the caller of this method is catching a exception. and in the caller
    > the xml string is empty.
    > I already try to find help on the web like some similar post or white
    > papers but nothing seems to match.
    >
    > I already tried to change the return value into the user object but I
    > get the same problem, it was working in the test envirronment but not
    > from a asp.net Page.
    >
    > I saw that the problem could be due to derived data class. Is that
    > true? if it is , is there a work around?
    >
    > I already made a few web services (but not based on derived data
    > class) that run perfectly by returning either objects or strings but I
    > never encountered this problem.
    >
    > here is the Schema of my webservice provided from Webservice studio
    > 1.0
    >
    > <definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
    > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    > xmlns:s="http://www.w3.org/2001/XMLSchema"
    > xmlns:s0="http://www.sogecore.com/webservices/"
    > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    > xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
    > xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    > targetNamespace="http://www.sogecore.com/webservices/"
    > xmlns="http://schemas.xmlsoap.org/wsdl/">
    > <types>
    > <s:schema elementFormDefault="qualified"
    > targetNamespace="http://www.sogecore.com/webservices/">
    > <s:element name="Logon">
    > <s:complexType>
    > <s:sequence>
    > <s:element minOccurs="0" maxOccurs="1" name="Login"
    > type="s:string" />
    > <s:element minOccurs="0" maxOccurs="1" name="Password"
    > type="s:string" />
    > <s:element minOccurs="0" maxOccurs="1"
    > name="LogicalUserId" type="s:string" />
    > </s:sequence>
    > </s:complexType>
    > </s:element>
    > <s:element name="LogonResponse">
    > <s:complexType>
    > <s:sequence>
    > <s:element minOccurs="0" maxOccurs="1" name="LogonResult"
    > type="s:string" />
    > </s:sequence>
    > </s:complexType>
    > </s:element>
    > <s:element name="string" nillable="true" type="s:string" />
    > </s:schema>
    > </types>
    > <message name="LogonSoapIn">
    > <part name="parameters" element="s0:Logon" />
    > </message>
    > <message name="LogonSoapOut">
    > <part name="parameters" element="s0:LogonResponse" />
    > </message>
    > <message name="LogonHttpGetIn">
    > <part name="Login" type="s:string" />
    > <part name="Password" type="s:string" />
    > <part name="LogicalUserId" type="s:string" />
    > </message>
    > <message name="LogonHttpGetOut">
    > <part name="Body" element="s0:string" />
    > </message>
    > <message name="LogonHttpPostIn">
    > <part name="Login" type="s:string" />
    > <part name="Password" type="s:string" />
    > <part name="LogicalUserId" type="s:string" />
    > </message>
    > <message name="LogonHttpPostOut">
    > <part name="Body" element="s0:string" />
    > </message>
    > <portType name="LoginSoap">
    > <operation name="Logon">
    > <documentation>Check user login and grant access to user if
    > successfull.</documentation>
    > <input message="s0:LogonSoapIn" />
    > <output message="s0:LogonSoapOut" />
    > </operation>
    > </portType>
    > <portType name="LoginHttpGet">
    > <operation name="Logon">
    > <documentation>Check user login and grant access to user if
    > successfull.</documentation>
    > <input message="s0:LogonHttpGetIn" />
    > <output message="s0:LogonHttpGetOut" />
    > </operation>
    > </portType>
    > <portType name="LoginHttpPost">
    > <operation name="Logon">
    > <documentation>Check user login and grant access to user if
    > successfull.</documentation>
    > <input message="s0:LogonHttpPostIn" />
    > <output message="s0:LogonHttpPostOut" />
    > </operation>
    > </portType>
    > <binding name="LoginSoap" type="s0:LoginSoap">
    > <soap:binding transport="http://schemas.xmlsoap.org/soap/http"
    > style="document" />
    > <operation name="Logon">
    > <soap:eek:peration
    > soapAction="http://www.sogecore.com/webservices/Logon"
    > style="document" />
    > <input>
    > <soap:body use="literal" />
    > </input>
    > <output>
    > <soap:body use="literal" />
    > </output>
    > </operation>
    > </binding>
    > <binding name="LoginHttpGet" type="s0:LoginHttpGet">
    > <http:binding verb="GET" />
    > <operation name="Logon">
    > <http:eek:peration location="/Logon" />
    > <input>
    > <http:urlEncoded />
    > </input>
    > <output>
    > <mime:mimeXml part="Body" />
    > </output>
    > </operation>
    > </binding>
    > <binding name="LoginHttpPost" type="s0:LoginHttpPost">
    > <http:binding verb="POST" />
    > <operation name="Logon">
    > <http:eek:peration location="/Logon" />
    > <input>
    > <mime:content type="application/x-www-form-urlencoded" />
    > </input>
    > <output>
    > <mime:mimeXml part="Body" />
    > </output>
    > </operation>
    > </binding>
    > <service name="Login">
    > <port name="LoginSoap" binding="s0:LoginSoap">
    > <soap:address location="http://localhost/wsadmar/arlogin.asmx"
    > />
    > </port>
    > <port name="LoginHttpGet" binding="s0:LoginHttpGet">
    > <http:address location="http://localhost/wsadmar/arlogin.asmx"
    > />
    > </port>
    > <port name="LoginHttpPost" binding="s0:LoginHttpPost">
    > <http:address location="http://localhost/wsadmar/arlogin.asmx"
    > />
    > </port>
    > </service>
    > </definitions>
    >
    > I hope someone could be of any help to me,
    > thank you in advance for any advice
    >
    > Eric


    After further investigation I finally found that the string returned
    by the webmethod end with the following characters . Hexadecimal


    &lt;/Groups&gt;
    &lt;/User&gt;</LogonResult>
    </LogonResponse>
    </soap:Body>
    </soap:Envelope>


    I supposed this is the null terminated character.
    So now my question is the following, this is the way I get the string
    from serialization:

    XmlSerializer xmlSer=new XmlSerializer( obj.GetType() );
    MemoryStream st=new MemoryStream();
    xmlSer.Serialize(st,obj);
    byte[] buff=st.GetBuffer();
    UTF8Encoding encoding=new UTF8Encoding(false, true);
    xml = encoding.GetString(buff);
    st.Close();

    how can i avoid these characters at the end of the serialization flow.
    should I use another encoding type like ASCII or should I remove
    manually the bad characters at the end.

    May be my way of doing this is not the smartest. If some one has a
    better way , It would be nice to share it with me.
    thanks in advance.

    Eric
     
    Eric, Sep 13, 2004
    #2
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Tony Prichard
    Replies:
    0
    Views:
    768
    Tony Prichard
    Dec 12, 2003
  2. Manish Hatwalne
    Replies:
    1
    Views:
    410
    Martin Honnen
    Jul 13, 2004
  3. Replies:
    4
    Views:
    702
  4. Erik Wasser
    Replies:
    5
    Views:
    495
    Peter J. Holzer
    Mar 5, 2006
  5. icogs
    Replies:
    0
    Views:
    150
    icogs
    Jan 31, 2008
Loading...

Share This Page