XmlRootAttribute::IsNullable Property
Gets or sets a value that indicates whether the XmlSerializer must serialize a member that is set to null into the xsi:nil attribute set to true.
Assembly: System.Xml (in System.Xml.dll)
Property Value
Type: System::Booleantrue if the XmlSerializer generates the xsi:nil attribute; otherwise, false.
The XML schema specification for structures allows an XML document to explicitly signal that an element's content is missing. Such an element contains the attribute xsi:nil set to true. For more information, see the http://www.w3.org/TR/xmlschema-1/ specification named XML Schema Part 1: Structures.
If the IsNullable property is set to true, the xsi:nil attribute is generated as shown in the following XML:
<?xml version="1.0" encoding="utf-8"?> <Group xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:nil="true" />
If the IsNullable property is false, an empty element is created as shown in the following code:
<?xml version="1.0" encoding="utf-8"?> <Group xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
The following example serializes a class named Group. The example applies the XmlRootAttribute to the class, and sets the IsNullable property to false.
#using <System.Xml.dll> #using <System.dll> using namespace System; using namespace System::IO; using namespace System::Xml::Serialization; using namespace System::Xml; // Apply the XmlRootAttribute and set the IsNullable property to false. [XmlRoot(IsNullable=false)] public ref class Group { public: String^ Name; }; void SerializeObject( String^ filename ) { XmlSerializer^ s = gcnew XmlSerializer( Group::typeid ); // Writing the file requires a TextWriter. TextWriter^ writer = gcnew StreamWriter( filename ); // Create the object to serialize. Group^ mygroup = nullptr; // Serialize the object, and close the TextWriter. s->Serialize( writer, mygroup ); writer->Close(); } int main() { Console::WriteLine( "Running" ); SerializeObject( "NullDoc.xml" ); }
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1