I have an XML document from an external source.
<?xml version="1.0" encoding="utf-8"?>
<ns0:Info xmlns:ns0="http://www.ZomboCorp.com/">
<Name>Anthony</Name>
<Job>Developer</Job>
</ns0:Info>
I need to deserialize it into an object like this.
public class Info
{
public String Name { get; set; }
public String Job { get; set; }
}
Used as is, the Serializer
throws an InvalidOperationException
<Info xmlns='http://www.ZomboCorp.com/'>
was not expected.
If I add [XmlElement(Namespace = "http://www.ZomboCorp.com/")]
to the class definition, the Serializer
returns a new Info
object with null properties.
You have to add the XmlElement attribute to each property as well, setting the Namespace property to an empty string (as the namespace is not inherited in your situation).
Your definition for Info should look like this:
Then it will deserialize correctly.
I used xsd.exe (a VS tool) and generated a schema from the XML file and then a class file from the schema. It suggested
But, I was able to get away with