Freigeben über


XmlRootAttribute-Klasse

Steuert die XML-Serialisierung des Attributziels als XML-Stammelement.

Namespace: System.Xml.Serialization
Assembly: System.Xml (in system.xml.dll)

Syntax

'Declaration
<AttributeUsageAttribute(AttributeTargets.Class Or AttributeTargets.Struct Or AttributeTargets.Enum Or AttributeTargets.Interface Or AttributeTargets.ReturnValue)> _
Public Class XmlRootAttribute
    Inherits Attribute
'Usage
Dim instance As XmlRootAttribute
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Enum|AttributeTargets.Interface|AttributeTargets.ReturnValue)] 
public class XmlRootAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Class|AttributeTargets::Struct|AttributeTargets::Enum|AttributeTargets::Interface|AttributeTargets::ReturnValue)] 
public ref class XmlRootAttribute : public Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Enum|AttributeTargets.Interface|AttributeTargets.ReturnValue) */ 
public class XmlRootAttribute extends Attribute
AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Enum|AttributeTargets.Interface|AttributeTargets.ReturnValue) 
public class XmlRootAttribute extends Attribute

Hinweise

XmlRootAttribute gehört zu einer Familie von Attributen, die das Serialisieren bzw. Deserialisieren eines Objekts durch XmlSerializer steuern. Eine vollständige Liste ähnlicher Attribute finden Sie unter Attribute für die Steuerung der XML-Serialisierung.

XmlRootAttribute kann auf Klassen, Strukturen, Enumerationen oder Schnittstellen angewendet werden. Sie können das Attribut außerdem auf den Rückgabewert einer XML-Webdienstmethode anwenden.

Jedes XML-Dokument muss ein einziges Stammelement besitzen, das alle weiteren Elemente enthält. Mit dem XmlRootAttribute kann durch Festlegen gewisser Eigenschaften gesteuert werden, auf welche Weise XmlSerializer das Stammelement generiert. Der Name des generierten XML-Elements wird z. B. durch Festlegen der ElementName-Eigenschaft angegeben.

Weitere Informationen über das Verwenden von Attributen finden Sie unter Erweitern von Metadaten mithilfe von Attributen.

Hinweis

Sie können das Wort XmlRoot anstelle des längeren XmlRootAttribute im Code verwenden.

Beispiel

Im folgenden Beispiel wird XmlRootAttribute auf eine Klasse angewendet. Das Attribut gibt den Elementnamen und den Namespace an und legt fest, ob das Element gekennzeichnet ist und das xsi:nil-Attribut generiert wird, wenn die Klasse auf NULL (Nothing in Visual Basic) festgelegt wird.

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

Vererbungshierarchie

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

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

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

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

XmlRootAttribute-Member
System.Xml.Serialization-Namespace
XmlArrayAttribute-Klasse
XmlElementAttribute-Klasse
XmlSerializer
XmlAttributes-Klasse

Weitere Ressourcen

Einführung in die XML-Serialisierung
Gewusst wie: Angeben eines alternativen Elementnamens für einen XML-Stream
Steuern der XML-Serialisierung mit Attributen
Beispiele für die XML-Serialisierung
XML Schema Definition-Tool (Xsd.exe)