次の方法で共有


XmlAttributes.Xmlns プロパティ

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

Public Property Xmlns As Boolean
[C#]
public bool Xmlns {get; set;}
[C++]
public: __property bool get_Xmlns();public: __property void set_Xmlns(bool);
[JScript]
public function get Xmlns() : Boolean;public function set Xmlns(Boolean);

プロパティ値

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

使用例

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

 
Imports System
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 'Student
 

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 

[C#] 
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);
        }
    }
}

[C++] 
#using <mscorlib.dll>
#using <System.dll>
#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Xml::Serialization; 

public __gc class Student
{
public:
   [XmlAttributeAttribute]
   String* Name;

   [XmlNamespaceDeclarationsAttribute]
   XmlSerializerNamespaces* myNamespaces;

};

void SerializeStudent(String* filename);
void DeserializeStudent(String* filename);

int main()
{
   SerializeStudent(S"Student.xml");
   DeserializeStudent(S"Student.xml");
}

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),S"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(S"myns1", S"http://www.cpandl.com");
   ns->Add(S"myns2", S"http://www.cohowinery.com");
   myStudent->myNamespaces= ns;
   myStudent->Name= S"Student1";

   FileStream* fs = new FileStream(filename,FileMode::Create);

   xser->Serialize(fs,myStudent);
   fs->Close();
}

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),S"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= __try_cast<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( S"{0}:{1}", qNames[i]->Name, qNames[i]->Namespace );
   }
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

XmlAttributes クラス | XmlAttributes メンバ | System.Xml.Serialization 名前空間