次の方法で共有


XmlRootAttribute クラス

属性ターゲットを XML ルート要素として XML シリアル化する方法を制御します。

この型のすべてのメンバの一覧については、XmlRootAttribute メンバ を参照してください。

System.Object
   System.Attribute
      System.Xml.Serialization.XmlRootAttribute

<AttributeUsage(AttributeTargets.Class Or AttributeTargets.Struct _
   Or AttributeTargets.Enum Or AttributeTargets.Interface Or _
   AttributeTargets.ReturnValue)>
Public Class XmlRootAttribute   Inherits Attribute
[C#]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct |
   AttributeTargets.Enum | AttributeTargets.Interface |
   AttributeTargets.ReturnValue)]
public class XmlRootAttribute : Attribute
[C++]
[AttributeUsage(AttributeTargets::Class | AttributeTargets::Struct
   | AttributeTargets::Enum | AttributeTargets::Interface |
   AttributeTargets::ReturnValue)]
public __gc class XmlRootAttribute : public Attribute
[JScript]
public
   AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct |
   AttributeTargets.Enum | AttributeTargets.Interface |
   AttributeTargets.ReturnValue)
class XmlRootAttribute extends Attribute

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

XmlRootAttribute は、 XmlSerializer がオブジェクトをシリアル化または逆シリアル化する方法を制御する一連の属性のうちの 1 つです。類似する属性の完全な一覧については、「 XML シリアル化を制御する属性 」を参照してください。

XmlRootAttribute は、クラス、構造体、列挙体、またはインターフェイスの宣言に適用できます。また、この属性は、XML Web サービス メソッドの戻り値にも適用できます。

すべての XML ドキュメントには、他のすべての要素を含むルート要素が 1 つ必要です。 XmlRootAttribute を使用すると、 XmlSerializer がルート要素を生成する方法を、特定のプロパティを設定することによって制御できます。たとえば、 ElementName プロパティを設定することにより、生成される XML 要素の名前を指定します。

属性の使用方法については、「 属性を使用したメタデータの拡張 」を参照してください。

メモ   コードでは、 XmlRootAttribute の代わりに XmlRoot という短い語を使用できます。

使用例

[Visual Basic, C#, C++] XmlRootAttribute をクラスに適用する例を次に示します。この属性は、要素名と名前空間を指定し、要素を限定するかどうか、およびクラスが null 参照 (Visual Basic では Nothing) に設定されている場合に xsi:nil 属性を生成するかどうかを指定します。

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

<XmlRoot(Namespace:="www.contoso.com", _
    ElementName:="MyGroupName", _
    DataType:="string", _
    IsNullable:=True)> _
Public Class Group

    Private groupNameValue As String
    ' Insert code for the Group class.
    Public Sub New()

    End Sub

    Public Sub New(ByVal groupNameVal As String)

        groupNameValue = groupNameVal
    End Sub

    Property GroupName() As String
        Get
            Return groupNameValue
        End Get

        Set(ByVal Value As String)
            groupNameValue = Value
        End Set
    End Property
End Class

Public Class Test

    Shared Sub Main()

        Dim t As Test = New Test()
        t.SerializeGroup()
    End Sub

    Private Sub SerializeGroup()

        ' Create an instance of the Group class, and an
        ' instance of the XmlSerializer to serialize it.
        Dim myGroup As Group = New Group("Redmond")
        Dim ser As XmlSerializer = New XmlSerializer(GetType(Group))

        ' A FileStream is used to write the file.
        Dim fs As FileStream = New FileStream("group.xml", FileMode.Create)
        ser.Serialize(fs, myGroup)
        fs.Close()
        Console.WriteLine(myGroup.GroupName)
        Console.WriteLine("Done... Press any key to exit.")
        Console.ReadLine()
    End Sub

End Class

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

[XmlRoot(Namespace = "www.contoso.com", 
     ElementName = "MyGroupName", 
     DataType = "string", 
     IsNullable=true)]
public class Group
{
    private string groupNameValue;
    // Insert code for the Group class.
    public Group()
    {
    }
 
    public Group(string groupNameVal)
    {
        groupNameValue = groupNameVal;
    }
 
    public string GroupName
    {
        get{return groupNameValue;}
        set{groupNameValue = value;}
    }
}
public class Test
{
    static void Main()
    {
        Test t = new Test();
        t.SerializeGroup();
    }
 
    private void SerializeGroup()
    {
        // Create an instance of the Group class, and an
        // instance of the XmlSerializer to serialize it.
        Group myGroup = new Group("Redmond");
        XmlSerializer ser = new XmlSerializer(typeof(Group));
        // A FileStream is used to write the file.
        FileStream fs = new FileStream("group.xml",FileMode.Create);
        ser.Serialize(fs,myGroup);
        fs.Close();
        Console.WriteLine(myGroup.GroupName);
        Console.WriteLine("Done");
        Console.ReadLine();
    }
}

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

[XmlRoot(Namespace = S"www.contoso.com", 
     ElementName = S"MyGroupName", 
     DataType = S"string", 
     IsNullable=true)]
public __gc class Group
{
private:
    String* groupNameValue;
    // Insert code for the Group class.
public:
    Group()
    {
    }
 
    Group(String* groupNameVal)
    {
        groupNameValue = groupNameVal;
    }
    __property String* get_GroupName()
    {
       return groupNameValue;
    }
    __property void set_GroupName( String* value )
    {
       groupNameValue = value;
    }
};

void SerializeGroup()
{
   // Create an instance of the Group class, and an
   // instance of the XmlSerializer to serialize it.
   Group* myGroup = new Group(S"Redmond");
   XmlSerializer* ser = new XmlSerializer(__typeof(Group));
   // A FileStream is used to write the file.
   FileStream* fs = new FileStream(S"group.xml",FileMode::Create);
   ser->Serialize(fs,myGroup);
   fs->Close();
   Console::WriteLine(myGroup->GroupName);
   Console::WriteLine(S"Done");
   Console::ReadLine();
}

int main()
{
   SerializeGroup();
}

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

必要条件

名前空間: System.Xml.Serialization

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

アセンブリ: System.Xml (System.Xml.dll 内)

参照

XmlRootAttribute メンバ | System.Xml.Serialization 名前空間 | XmlArrayAttribute | XmlElementAttribute | XmlSerializer | XML シリアル化の概要 | XML シリアル化のオーバーライド | XmlAttributes | 属性を使用した XML シリアル化の制御 | XML シリアル化の例