System.Xml.Serialization


.NET Framework クラス ライブラリ
XmlRootAttribute クラス

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

名前空間: System.Xml.Serialization
アセンブリ: System.Xml (system.xml.dll 内)

構文

Visual Basic (宣言)
<AttributeUsageAttribute(AttributeTargets.Class Or AttributeTargets.Struct Or AttributeTargets.Enum Or AttributeTargets.Interface Or AttributeTargets.ReturnValue)> _
Public Class XmlRootAttribute
    Inherits Attribute
Visual Basic (使用法)
Dim instance As XmlRootAttribute
C#
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Enum|AttributeTargets.Interface|AttributeTargets.ReturnValue)] 
public class XmlRootAttribute : Attribute
C++
[AttributeUsageAttribute(AttributeTargets::Class|AttributeTargets::Struct|AttributeTargets::Enum|AttributeTargets::Interface|AttributeTargets::ReturnValue)] 
public ref class XmlRootAttribute : public Attribute
J#
/** @attribute AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Enum|AttributeTargets.Interface|AttributeTargets.ReturnValue) */ 
public class XmlRootAttribute extends Attribute
JScript
AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Enum|AttributeTargets.Interface|AttributeTargets.ReturnValue) 
public class XmlRootAttribute extends Attribute
解説

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

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

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

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

メモメモ

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

使用例

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

Visual Basic
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 <System.Xml.dll>
#using <System.dll>

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

[XmlRoot(Namespace="www.contoso.com",
ElementName="MyGroupName",
DataType="string",
IsNullable=true)]
public ref class Group
{
private:
   String^ groupNameValue;

public:

   // Insert code for the Group class.
   Group(){}

   Group( String^ groupNameVal )
   {
      groupNameValue = groupNameVal;
   }

   property String^ GroupName 
   {
      String^ get()
      {
         return groupNameValue;
      }
      void set( String^ value )
      {
         groupNameValue = value;
      }

   }

};

void SerializeGroup()
{
   // Create an instance of the Group class, and an
   // instance of the XmlSerializer to serialize it.
   Group^ myGroup = gcnew Group( "Redmond" );
   XmlSerializer^ ser = gcnew XmlSerializer( Group::typeid );

   // A FileStream is used to write the file.
   FileStream^ fs = gcnew FileStream( "group.xml",FileMode::Create );
   ser->Serialize( fs, myGroup );
   fs->Close();
   Console::WriteLine( myGroup->GroupName );
   Console::WriteLine( "Done" );
   Console::ReadLine();
}

int main()
{
   SerializeGroup();
}
J#
import System.*;
import System.IO.*;
import System.Xml.*;
import System.Xml.Schema.*;
import System.Xml.Serialization.*;

/** @attribute 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()
    {
    } //Group
    
    public Group(String groupNameVal)
    {
        groupNameValue = groupNameVal;
    } //Group

    /** @property
     */
    public String get_GroupName()
    {
        return groupNameValue;
    } //get_GroupName

    /** @property 
     */
    public void set_GroupName(String value)
    {
        groupNameValue = value;
    } //set_GroupName
} //Group

public class Test
{
    public static void main(String[] args)
    {
        Test t = new Test();
        t.SerializeGroup();
    } //main

    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(Group.class.ToType());

        // 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.get_GroupName());
        Console.WriteLine("Done");
        Console.ReadLine();
    } //SerializeGroup
} //Test
継承階層

System.Object
   System.Attribute
    System.Xml.Serialization.XmlRootAttribute
スレッド セーフ

この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォーム

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。

バージョン情報

.NET Framework

サポート対象 : 2.0、1.1、1.0

.NET Compact Framework

サポート対象 : 2.0、1.0
参照

タグ :


Page view tracker