[英]Remove p2:type="<<type>>" xmlns:p2="http://www.w3.org/2001/XMLSchema-instance" from xml
[英]XML Deserialization Error in C# - InvalidOperationException: <element xmlns='http://www.w3.org/2001/XMLSchema'> was not expected
我呼叫客户的网络服务。 它返回一个XMLElement。 我想反序列化此结果,但出现错误:
InvalidOperationException:不应预期
<element xmlns='http://www.w3.org/2001/XMLSchema'>
。
我尝试如下:
XElement root = XElement.Parse(result.OuterXml);
var query = root.Descendants().FirstOrDefault(r => r.FirstAttribute != null && r.FirstAttribute.Value == "ZER_ENTEGRASYON");
XmlSerializer XML = new XmlSerializer(typeof(ZerDataList));
using (var reader = new StringReader(query.ToString()))
{
var serializer = new XmlSerializer(typeof(ZerDataList));
var someTest = serializer.Deserialize(reader) as ZerDataList;
}
result.OuterXml:
<xs:element name="ZER_ENTEGRASYON" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="ZER_DAYSYIKTRANSIT">
<xs:complexType>
<xs:sequence>
<xs:element name="SIPARIS_ID" type="xs:int" minOccurs="0" />
<xs:element name="BOLUM_ID" type="xs:int" minOccurs="0" />
<xs:element name="SORUMLU" type="xs:string" minOccurs="0" />
<xs:element name="SAP_SIPARIS_NO" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
ZerDataList:
[Serializable()]
[System.Xml.Serialization.XmlRoot("ZER_ENTEGRASYON")]
[System.Xml.Serialization.XmlTypeAttribute("element",Namespace = "http://www.w3.org/2001/XMLSchema")]
public class ZerDataList
{
[XmlElement("ZER_DAYSYIKTRANSIT")]
public ZerData[] ZerData { get; set; }
}
[Serializable()]
public class ZerData
{
[XmlElement("SIPARIS_ID")]
public int SIPARIS_ID { get; set; }
[XmlElement("BOLUM_ID")]
public int BOLUM_ID { get; set; }
[XmlElement("SORUMLU")]
public string SORUMLU { get; set; }
[XmlElement("SAP_SIPARIS_NO")]
public string SAP_SIPARIS_NO { get; set; }
}
任何帮助都感激不尽。
问题在这里:
[System.Xml.Serialization.XmlTypeAttribute("element",Namespace = "http://www.w3.org/2001/XMLSchema")]
名称空间不能映射为元素,因为它不是元素。 因此错误:
InvalidOperationException:不应预期http://www.w3.org/2001/XMLSchema'>。
您应该像这样使用它:
[XmlElement(
Namespace = "http://www.cpandl.com")]
取自Microsoft文档 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.