XmlAttributes::Xmlns Property

 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Gets or sets a value that specifies whether to keep all namespace declarations when an object containing a member that returns an XmlSerializerNamespaces object is overridden.

Namespace:   System.Xml.Serialization
Assembly:  System.Xml (in System.Xml.dll)

public:
property bool Xmlns {
	bool get();
	void set(bool value);
}

Property Value

Type: System::Boolean

true if the namespace declarations should be kept; otherwise, false.

The following example contains a class named Student. The class contains a member named MyNamespaces that returns an XmlSerializerNamespaces object. The example creates an XmlAttributes object that is added to an instance of the XmlAttributeOverrides class. The Xmlns property is set to true, which instructs the XmlSerializer to preserve the namespaces when the serialization of the Student object is overridden.

#using <System.dll>
#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Xml::Serialization;
public ref class Student
{
public:

   [XmlAttributeAttribute]
   String^ Name;

   [XmlNamespaceDeclarationsAttribute]
   XmlSerializerNamespaces^ myNamespaces;
};

void SerializeStudent( String^ filename );
void DeserializeStudent( String^ filename );
int main()
{
   SerializeStudent( "Student.xml" );
   DeserializeStudent( "Student.xml" );
}

void SerializeStudent( String^ filename )
{
   XmlAttributes^ atts = gcnew XmlAttributes;

   // Set to true to preserve namespaces, 
   // or false to ignore them.
   atts->Xmlns = true;
   XmlAttributeOverrides^ xover = gcnew XmlAttributeOverrides;

   // Add the XmlAttributes and specify the name of the element 
   // containing namespaces.
   xover->Add( Student::typeid, "myNamespaces", atts );

   // Create the XmlSerializer using the 
   // XmlAttributeOverrides object.
   XmlSerializer^ xser = gcnew XmlSerializer( Student::typeid,xover );
   Student^ myStudent = gcnew Student;
   XmlSerializerNamespaces^ ns = gcnew XmlSerializerNamespaces;
   ns->Add( "myns1", "http://www.cpandl.com" );
   ns->Add( "myns2", "http://www.cohowinery.com" );
   myStudent->myNamespaces = ns;
   myStudent->Name = "Student1";
   FileStream^ fs = gcnew FileStream( filename,FileMode::Create );
   xser->Serialize( fs, myStudent );
   fs->Close();
}

void DeserializeStudent( String^ filename )
{
   XmlAttributes^ atts = gcnew XmlAttributes;

   // Set to true to preserve namespaces, or false to ignore them.
   atts->Xmlns = true;
   XmlAttributeOverrides^ xover = gcnew XmlAttributeOverrides;

   // Add the XmlAttributes and specify the name of the 
   // element containing namespaces.
   xover->Add( Student::typeid, "myNamespaces", atts );

   // Create the XmlSerializer using the 
   // XmlAttributeOverrides object.
   XmlSerializer^ xser = gcnew XmlSerializer( Student::typeid,xover );
   FileStream^ fs = gcnew FileStream( filename,FileMode::Open );
   Student^ myStudent;
   myStudent = safe_cast<Student^>(xser->Deserialize( fs ));
   fs->Close();

   // Use the ToArray method to get an array of 
   // XmlQualifiedName objects.
   array<XmlQualifiedName^>^qNames = myStudent->myNamespaces->ToArray();
   for ( int i = 0; i < qNames->Length; i++ )
   {
      Console::WriteLine( "{0}:{1}", qNames[ i ]->Name, qNames[ i ]->Namespace );

   }
}

Universal Windows Platform
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
Return to top
Show: