3

When de-serializing the below XML into Parent class, ElementTwo and ElementThree are empty strings, which is expected. But ElementOne should have been null but instead this is also empty string.

What does i:nil="true" mean?

XML

<?xml version = \"1.0\" ?>
<Parent
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ElementOne xsi:nil="true"/>
<ElementTwo></ElementTwo>
<ElementThree />
<ElementFour>Value</ElementFour>
</Parent>

C# Class

public class Parent
{
    public string ElementOne { get; set; }
    public string ElementTwo { get; set; }
    public string ElementThree { get; set; }
    public string ElementFour { get; set; }
}

When de-serializing the XML into an object, the XML element with xsi:nil="true" is not being converted as null. Instead, it is assigned as empty string. But I've a requirement where it should be converted as null only. Please help me to figure out a solution or point put where I went wrong

I've given the sample used in below fiddle link:

https://dotnetfiddle.net/VfNJYv

1 Answers1

1

Put

[XmlElement(IsNullable=true)] 

above the Public string ElementOne get/set property

.NET fiddle

Paul Roub
  • 36,322
  • 27
  • 84
  • 93
Putta Boo
  • 26
  • 2