次の方法で共有


XmlAttributes.Xmlns プロパティ

定義

XmlSerializerNamespaces オブジェクトを返すメンバーを格納するオブジェクトがオーバーライドされたときに、すべての名前空間宣言を保持するかどうかを示す値を取得または設定します。

public:
 property bool Xmlns { bool get(); void set(bool value); };
public bool Xmlns { get; set; }
member this.Xmlns : bool with get, set
Public Property Xmlns As Boolean

プロパティ値

Boolean

名前空間宣言を保持する場合は true。それ以外の場合は false

次の例には、という名前 Studentのクラスが含まれています。 このクラスには、オブジェクトを返す名前 MyNamespaces のメンバーが XmlSerializerNamespaces 含まれています。 この例では、クラスの XmlAttributes インスタンスに追加されるオブジェクトを XmlAttributeOverrides 作成します。 このプロパティはXmlnstrue、オブジェクトのXmlSerializerシリアル化がオーバーライドされたときに名前空間を保持するように指示しますStudent

#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 );

   }
}
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization; 

public class Student
{
    [XmlAttributeAttribute]
    public string Name;

    [XmlNamespaceDeclarationsAttribute]
    public XmlSerializerNamespaces myNamespaces;
}
    
public class Run
{
    public static void Main()
    {
        Run test = new Run();
        test.SerializeStudent("Student.xml");
        test.DeserializeStudent("Student.xml");
    }

    public void SerializeStudent(string filename)
    {
        XmlAttributes atts = new XmlAttributes();
        // Set to true to preserve namespaces, 
    // or false to ignore them.
        atts.Xmlns=true;

        XmlAttributeOverrides xover = new XmlAttributeOverrides();
        // Add the XmlAttributes and specify the name of the element 
    // containing namespaces.
        xover.Add(typeof(Student),"myNamespaces", atts);
        // Create the XmlSerializer using the 
        // XmlAttributeOverrides object.
        XmlSerializer xser = new XmlSerializer(typeof (Student),xover);

        Student myStudent = new Student();
        XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
        ns.Add("myns1", "http://www.cpandl.com");
        ns.Add("myns2", "http://www.cohowinery.com");
        myStudent.myNamespaces= ns;
        myStudent.Name= "Student1";

        FileStream fs = new FileStream(filename,FileMode.Create);

        xser.Serialize(fs,myStudent);
        fs.Close();
    }

    private void DeserializeStudent(string filename)
    {
        XmlAttributes atts = new XmlAttributes();
        // Set to true to preserve namespaces, or false to ignore them.
        atts.Xmlns=true;

        XmlAttributeOverrides xover = new XmlAttributeOverrides();
        // Add the XmlAttributes and specify the name of the 
        // element containing namespaces.
        xover.Add(typeof(Student),"myNamespaces", atts);

        // Create the XmlSerializer using the 
        // XmlAttributeOverrides object.
        XmlSerializer xser = 
        new XmlSerializer(typeof (Student),xover);

        FileStream fs = new FileStream(filename,FileMode.Open);

        Student myStudent;
        myStudent= (Student) xser.Deserialize(fs);
        fs.Close();

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

 
Public Class Student
   <XmlAttributeAttribute()> _
   Public Name As String

   <XmlNamespaceDeclarationsAttribute()> _   
   Public myNamespaces As XmlSerializerNamespaces
End Class
 

Public Class Run
   
   Public Shared Sub Main()
      Dim test As New Run()
      test.SerializeStudent("Student_v.xml")
      test.DeserializeStudent("Student_v.xml")
   End Sub 
   
   
   Public Sub SerializeStudent(filename As String)
      Dim atts As New XmlAttributes()
      ' Set to true to preserve namespaces, or false to ignore them.
      atts.Xmlns = True
      
      Dim xover As New XmlAttributeOverrides()
      ' Add the XmlAttributes and specify the name of 
      ' the element containing namespaces.
      xover.Add(GetType(Student), "myNamespaces", atts)
      ' Create the XmlSerializer using the 
      ' XmlAttributeOverrides object.
      Dim xser As New XmlSerializer(GetType(Student), xover)
      
      Dim myStudent As New Student()
      Dim ns As New XmlSerializerNamespaces()
      ns.Add("myns1", "http://www.cpandl.com")
      ns.Add("myns2", "http://www.cohowinery.com")
      myStudent.myNamespaces = ns
      myStudent.Name = "Student1"
      
      Dim fs As New FileStream(filename, FileMode.Create)
      
      xser.Serialize(fs, myStudent)
      fs.Close()
   End Sub 
       
   Private Sub DeserializeStudent(filename As String)
      Dim atts As New XmlAttributes()
      ' Set to true to preserve namespaces, or false to ignore them.
      atts.Xmlns = True
      
      Dim xover As New XmlAttributeOverrides()
      ' Add the XmlAttributes and specify the name 
      ' of the element containing namespaces.
      xover.Add(GetType(Student), "myNamespaces", atts)
      
      ' Create the XmlSerializer using the 
      ' XmlAttributeOverrides object.
      Dim xser As New XmlSerializer(GetType(Student), xover)
      
      Dim fs As New FileStream(filename, FileMode.Open)
      
      Dim myStudent As Student
      myStudent = CType(xser.Deserialize(fs), Student)
      fs.Close()
      
      ' Use the ToArray method to get an array 
      ' of XmlQualifiedName objects.
      Dim qNames As XmlQualifiedName() = _
           myStudent.myNamespaces.ToArray()
      Dim i As Integer
      For i = 0 To qNames.Length - 1
         Console.WriteLine("{0}:{1}", _
              qNames(i).Name, qNames(i).Namespace)
      Next i
   End Sub 
End Class

適用対象