次の方法で共有


XmlAttributes.XmlRoot プロパティ

XmlSerializer がクラスを XML ルート要素としてシリアル化する方法を指定するオブジェクトを取得または指定します。

Public Property XmlRoot As XmlRootAttribute
[C#]
public XmlRootAttribute XmlRoot {get; set;}
[C++]
public: __property XmlRootAttribute* get_XmlRoot();public: __property void set_XmlRoot(XmlRootAttribute*);
[JScript]
public function get XmlRoot() : XmlRootAttribute;public function set XmlRoot(XmlRootAttribute);

プロパティ値

XML ルート要素として属性が設定されているクラスをオーバーライドする XmlRootAttribute

使用例

[Visual Basic, C#, C++] XmlAttributeOverridesXmlAttributesXmlRootAttribute の各オブジェクトを作成する例を次に示します。この例では、 XmlRootAttributeXmlAttributes オブジェクトの XmlRoot プロパティに代入し、 XmlAttributes オブジェクトを XmlAttributeOverrides オブジェクトに追加します。最後にこの例では、シリアル化されたクラスの TypeXmlAttributeOverrides オブジェクトに渡すことにより XmlAttributes オブジェクトを取得します。この例では、 Type は Group です。

 
Imports System
Imports System.IO
Imports System.Xml.Serialization


' This is the class that will be serialized.
Public Class Group
    Public GroupName As String
    <XmlAttribute()> Public GroupCode As Integer
End Class


Public Class Test
    
    Public Shared Sub Main()
        Dim t As New Test()
        t.SerializeObject("OverrideRoot.xml")
    End Sub
    
    
    ' Return an XmlSerializer for overriding attributes.
    Public Function CreateOverrider() As XmlSerializer
        ' Create the XmlAttributes and XmlAttributeOverrides objects.
        Dim attrs As New XmlAttributes()
        Dim xOver As New XmlAttributeOverrides()
        
        Dim xRoot As New XmlRootAttribute()
        
        ' Set a new Namespace and ElementName for the root element.
        xRoot.Namespace = "http://www.cpandl.com"
        xRoot.ElementName = "NewGroup"
        attrs.XmlRoot = xRoot
        
        ' Add the XmlAttributes object to the XmlAttributeOverrides.
        ' No  member name is needed because the whole class is
        ' overridden. 
        xOver.Add(GetType(Group), attrs)
        
        ' Get the XmlAttributes object, based on the type.
        Dim tempAttrs As XmlAttributes
        tempAttrs = xOver(GetType(Group))
        
        ' Print the Namespace and ElementName of the root.
        Console.WriteLine(tempAttrs.XmlRoot.Namespace)
        Console.WriteLine(tempAttrs.XmlRoot.ElementName)
        
        Dim xSer As New XmlSerializer(GetType(Group), xOver)
        Return xSer
    End Function
    
    
    Public Sub SerializeObject(ByVal filename As String)
        ' Create the XmlSerializer using the CreateOverrider method.
        Dim xSer As XmlSerializer = CreateOverrider()
        
        ' Create the object to serialize.
        Dim myGroup As New Group()
        myGroup.GroupName = ".NET"
        myGroup.GroupCode = 123
        
        ' To write the file, a TextWriter is required.
        Dim writer As New StreamWriter(filename)
        
        ' Serialize the object and close the TextWriter.
        xSer.Serialize(writer, myGroup)
        writer.Close()
    End Sub
End Class


[C#] 
using System;
using System.IO;
using System.Xml.Serialization;

// This is the class that will be serialized.
public class Group
{
   public string GroupName;
   [XmlAttribute]
   public int GroupCode;
}

public class Test
{
   public static void Main()
   {
      Test t = new Test();
      t.SerializeObject("OverrideRoot.xml");
   }

   // Return an XmlSerializer for overriding attributes.
   public XmlSerializer CreateOverrider()
   {
      // Create the XmlAttributes and XmlAttributeOverrides objects.
      XmlAttributes attrs = new XmlAttributes();
      XmlAttributeOverrides xOver = new XmlAttributeOverrides();
   
      XmlRootAttribute xRoot = new XmlRootAttribute();

      // Set a new Namespace and ElementName for the root element.
      xRoot.Namespace = "http://www.cpandl.com";
      xRoot.ElementName = "NewGroup";
      attrs.XmlRoot = xRoot;

      /* Add the XmlAttributes object to the XmlAttributeOverrides. 
         No  member name is needed because the whole class is 
         overridden. */
      xOver.Add(typeof(Group), attrs);

      // Get the XmlAttributes object, based on the type.
      XmlAttributes tempAttrs;
      tempAttrs = xOver[typeof(Group)];

      // Print the Namespace and ElementName of the root.
      Console.WriteLine(tempAttrs.XmlRoot.Namespace);
      Console.WriteLine(tempAttrs.XmlRoot.ElementName);

      XmlSerializer xSer = new XmlSerializer(typeof(Group), xOver);
      return xSer;
   }

   public void SerializeObject(string filename)
   {
      // Create the XmlSerializer using the CreateOverrider method.
      XmlSerializer xSer = CreateOverrider();

      // Create the object to serialize.
      Group myGroup = new Group();
      myGroup.GroupName = ".NET";
      myGroup.GroupCode = 123;

      // To write the file, a TextWriter is required.
      TextWriter writer = new StreamWriter(filename);

      // Serialize the object and close the TextWriter.
      xSer.Serialize(writer, myGroup);
      writer.Close();
   }
}


[C++] 
#using <mscorlib.dll>
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml::Serialization;

// This is the class that will be serialized.
public __gc class Group
{
public:
   String* GroupName;
   [XmlAttributeAttribute]
   int GroupCode;
};

// Return an XmlSerializer for overriding attributes.
XmlSerializer* CreateOverrider()
{
   // Create the XmlAttributes and XmlAttributeOverrides objects.
   XmlAttributes* attrs = new XmlAttributes();
   XmlAttributeOverrides* xOver = new XmlAttributeOverrides();

   XmlRootAttribute* xRoot = new XmlRootAttribute();

   // Set a new Namespace and ElementName for the root element.
   xRoot->Namespace = S"http://www.cpandl.com";
   xRoot->ElementName = S"NewGroup";
   attrs->XmlRoot = xRoot;

   /* Add the XmlAttributes object to the XmlAttributeOverrides. 
   No  member name is needed because the whole class is 
   overridden. */
   xOver->Add(__typeof(Group), attrs);

   // Get the XmlAttributes object, based on the type.
   XmlAttributes* tempAttrs;
   tempAttrs = xOver->Item[__typeof(Group)];

   // Print the Namespace and ElementName of the root.
   Console::WriteLine(tempAttrs->XmlRoot->Namespace);
   Console::WriteLine(tempAttrs->XmlRoot->ElementName);

   XmlSerializer* xSer = new XmlSerializer(__typeof(Group), xOver);
   return xSer;
}

void SerializeObject(String* filename)
{
   // Create the XmlSerializer using the CreateOverrider method.
   XmlSerializer* xSer = CreateOverrider();

   // Create the object to serialize.
   Group* myGroup = new Group();
   myGroup->GroupName = S".NET";
   myGroup->GroupCode = 123;

   // To write the file, a TextWriter is required.
   TextWriter* writer = new StreamWriter(filename);

   // Serialize the object and close the TextWriter.
   xSer->Serialize(writer, myGroup);
   writer->Close();
}

int main()
{
   SerializeObject(S"OverrideRoot.xml");
}

[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 名前空間