2016-12-23 4 views
0

Я пытаюсь десериализации XML ответ, но я не могу понять, что не работает здесьXML десериализации не работает - есть ошибка в документе XML (0, 0)

Это мои классы (генерируется с помощью инструментов разработчика .NET) ответ

[Serializable] 
[XmlType(AnonymousType = true, Namespace = "http://www.crs.lombardia.it/schemas/DCSanita/GSSC/2007-01/calcolaIup/")] 
[XmlRoot("GSSC.calcolaIupResponse", Namespace = "http://www.crs.lombardia.it/schemas/DCSanita/GSSC/2007-01/calcolaIup/", IsNullable = false)] 
public partial class GSSCcalcolaIupResponse 
{ 
    private param1 paramField; 

    /// <remarks/> 
    [XmlElementAttribute(Namespace = "")] 
    public param1 param 
    { 
     get 
     { 
      return this.paramField; 
     } 
     set 
     { 
      this.paramField = value; 
     } 
    } 
} 

/// <remarks/> 
[XmlType(AnonymousType = true)] 
public partial class param1 
{ 
    private string iupField; 

    /// <remarks/> 
    public string iup 
    { 
     get 
     { 
      return this.iupField; 
     } 
     set 
     { 
      this.iupField = value; 
     } 
    } 
} 

XML-как это:

<m:GSSC.calcolaIupResponse xmlns:m="http://www.crs.lombardia.it/schemas/DCSanita/GSSC/2013-01/calcolaIup/"> 
    <param> 
     <iup>0000W05RNF</iup> 
    </param> 
</m:GSSC.calcolaIupResponse> 

А вот код для десериализации.

GSSCcalcolaIupResponse iup = new GSSCcalcolaIupResponse(); 
XmlSerializer serializer = new XmlSerializer(typeof(GSSCcalcolaIupResponse)); 

IUPDummyResponse retValue = new IUPDummyResponse(); 

using (TextReader reader = new StringReader(xml)) 
{ 
    if (soapFault == null) 
     iup = (GSSCcalcolaIupResponse)serializer.Deserialize(reader); 
} 
+0

Вы подтвердили, что 'xml' really * does * содержит текст, который вы указали? Обычно ошибка возникает из-за попытки десериализации пустой строки. –

+0

@JonSkeet Да, он содержит точную строку – zombiechainsaw

ответ

1

Пространство имен в вашем классе GSSCcalcolaIupResponse и пространство имен в вашей строке xml различаются. Это причина. Просто измените использование одного и того же пространства имен, оно исправит ошибку:

- http://www.crs.lombardia.it/schemas/DCSanita/GSSC/2007-01/calcolaIup/ 
- http://www.crs.lombardia.it/schemas/DCSanita/GSSC/2013-01/calcolaIup/ 
+0

Спасибо за ответ, но он все равно не работает. Исключение: ошибка на корневом элементе – zombiechainsaw

+0

@zombiechainsaw, я уже пробовал. Это работает. Я использую пространство имен в строке xml «http://www.crs.lombardia.it/schemas/DCSanita/GSSC/2013-01/calcolaIup/», чтобы заменить оба пространства имен в определении класса. Примечание: измените как XmlType, так и XmlRoot –

 Смежные вопросы

  • Нет связанных вопросов^_^