I have the problem that I got xml from a REST service and have to deserialize it to an object structure and there is a type="proglang" in it.
<listResult>
<listEntry xsi:type="proglang">
<id>0</id>
<name>C#</name>
</listEntry>
<listEntry xsi:type="proglang">
<id>0</id>
<name>C#</name>
</listEntry>
</listResult>
How should the object model with the xml attributes look like in c#?
My Code so far:
[XmlRoot("listResult")]
public class ListResult
{
[XmlElement("listEntry")]
//[XmlArrayItem(Type=typeof(proglang))]
public List<proglang> listEntry;
}
public class proglang
{
[XmlElement("code")]
public int id;
[XmlElement("label")]
public string name;
}
and the resulting XML from serializing:
<listResult xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<listEntry>
<code>1</code>
<label>C#</label>
</listEntry>
<listEntry>
<code>1</code>
<label>C++</label>
</listEntry>
</listResult>
xsinamespace?xsiis never declared. Upload to xmlvalidation.com and you will see the errorLine 2 Column 35: The prefix "xsi" for attribute "xsi:type" associated with an element type "listEntry" is not bound.Is your really invalid, or did you simply omit thexmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"attribute when typing the XML into the question?object []array property along the lines of the single-object surrogate property in this answer. But if the XML is really invalid that won't help at all.