Я получил эту ошибку во время десериализации моего XML.Не могли бы вы помочь мне понять, что не так, я работаю над этим в течение нескольких часов.Это должна быть какая-то маленькая деталь, которую я упускаю, или, может быть, проблема в корне.
Ошибка: «В xml документе (1, 40) есть ошибка»
Вот мой класс:
[Serializable()]
[XmlRoot("return")]
public class Response
{
private string ticket { get; set; };
private string name { get; set; };
private string profile { get; set; };
private string companyId { get; set; };
private string storeId { get; set; };
private string terminalId { get; set; };
private string accountNo { get; set; };
private bool postae { get; set; };
private bool postaeproduct { get; set; };
}
Это XML, который я пытался десериализовать
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:loginResponse xmlns:ns2="http://webservices/">
<return>
<xml>
<ticket>123456789</ticket>
<name>TEST</name>
<profile>Sale</profile>
<companyId>2</companyId>
<storeId>1</storeId>
<terminalId>1</terminalId>
<accountNo>0000000001</accountNo>
<postae>true</postae>
<postaeproduct>true</postaeproduct>
</xml>
</return>
</ns2:loginResponse>
</S:Body>
</S:Envelope>
И, наконец, метод десериализации
private T Deserializa<T>(byte[] xmlByteData)
{ XmlSerializer ds = new XmlSerializer(typeof(T));
MemoryStream memoryStream = new MemoryStream(xmlByteData);
object d = ds.Deserialize(memoryStream);
return (T)d;
}
ОБНОВЛЕНИЕ
Вот как выглядит цепочка, которая обрабатывается в методе десериализации:
"<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"><S:Body><ns2:loginResponse xmlns:ns2=\"http://webservices/\"><return><xml><ticket>123456789</ticket><name>TEST</name><profile>Sale</profile>\n<companyId>2</companyId>\n<storeId>1</storeId>\n<terminalId>1</terminalId>\n<accountNo>0000000001</accountNo>\n<postae>true</postae>\n<postaeproduct>true</postaeproduct>\n</xml>\n</return></ns2:loginResponse></S:Body></S:Envelope>"