This documentation is archived and is not being maintained.

XmlTypeAttribute Class

Controls the XML schema that is generated when the attribute target is serialized by the XmlSerializer.

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

public class XmlTypeAttribute : Attribute

The XmlTypeAttribute belongs to a family of attributes that controls how the XmlSerializer serializes or deserializes an object. For a complete list of similar attributes, see Attributes That Control XML Serialization.

You can apply the XmlTypeAttribute to a class, structure, enumeration, or interface declaration.

Apply the XmlTypeAttribute to a class to specify the XML type's namespace, the XML type name, and whether to include the type in the XML schema document. To see the results of setting the properties of the XmlTypeAttribute class, compile your application as an executable or DLL, and pass the resulting file to the XML Schema Definition Tool (Xsd.exe). The tool writes the schema, including the type definition.


If you set the IncludeInSchema property to false, the XML Schema Definition Tool (Xsd.exe) does not include the type in the schema. By default, for each public class, the XSD tool generates a complexType and an element of that type.

For more information about using attributes, see Extending Metadata Using Attributes.


You can use the word XmlType in your code instead of the longer XmlTypeAttribute.

The following example shows two classes to which the XmlTypeAttribute has been applied.

[XmlType(Namespace = "",
TypeName = "GroupMember")]
public class Person
   public string Name;

[XmlType(Namespace = "",
TypeName = "GroupAddress")]
public class Address
   public string Line1;
   public string Line2;
   public string City;
   public string State;
   public string Zip;

public class Group
   public Person[] Staff;
   public Person Manager;
   public Address Location;
[XmlType(Namespace = S"",
TypeName = S"GroupMember")]
public __gc class Person
   String* Name;

[XmlType(Namespace = S"",
TypeName = S"GroupAddress")]
public __gc class Address
   String* Line1;
   String* Line2;
   String* City;
   String* State;
   String* Zip;

public __gc class Group
   Person* Staff[];
   Person* Manager;
   Address* Location;


Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360, Zune

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0, 1.0

XNA Framework

Supported in: 3.0, 2.0, 1.0