XML 反序列化无效 - XML 文档 (0, 0) 中存在错误
XML deserialization not working - there is an error in XML document (0, 0)
我正在尝试反序列化 XML 响应,但我似乎无法理解此处不起作用的原因
这些是我的 类(使用 .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);
}
class GSSCcalcolaIupResponse
中的名称空间与 xml 字符串中的名称空间不同。这就是原因。只需更改为使用相同的命名空间,它就会修复错误:
- http://www.crs.lombardia.it/schemas/DCSanita/GSSC/2007-01/calcolaIup/
- http://www.crs.lombardia.it/schemas/DCSanita/GSSC/2013-01/calcolaIup/
我正在尝试反序列化 XML 响应,但我似乎无法理解此处不起作用的原因
这些是我的 类(使用 .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);
}
class GSSCcalcolaIupResponse
中的名称空间与 xml 字符串中的名称空间不同。这就是原因。只需更改为使用相同的命名空间,它就会修复错误:
- http://www.crs.lombardia.it/schemas/DCSanita/GSSC/2007-01/calcolaIup/
- http://www.crs.lombardia.it/schemas/DCSanita/GSSC/2013-01/calcolaIup/