<?xml version="1.0" encoding="utf-8"?>
<Type Name="XmlRootAttribute" FullName="System.Xml.Serialization.XmlRootAttribute">
  <TypeSignature Maintainer="auto" Language="C#" Value="public class XmlRootAttribute : Attribute" />
  <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit XmlRootAttribute extends System.Attribute" />
  <AssemblyInfo>
    <AssemblyName>System.Xml</AssemblyName>
    <AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00]</AssemblyPublicKey>
    <AssemblyVersion>1.0.5000.0</AssemblyVersion>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
    <AssemblyVersion>4.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <ThreadSafetyStatement>To be added</ThreadSafetyStatement>
  <Base>
    <BaseTypeName>System.Attribute</BaseTypeName>
  </Base>
  <Interfaces />
  <Attributes>
    <Attribute>
      <AttributeName>System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Struct | System.AttributeTargets.Enum | System.AttributeTargets.Interface | System.AttributeTargets.ReturnValue | System.AttributeTargets.All)</AttributeName>
    </Attribute>
  </Attributes>
  <Docs>
    <remarks>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>The <see cref="T:System.Xml.Serialization.XmlRootAttribute" /> belongs to a family of attributes that controls how the <see cref="T:System.Xml.Serialization.XmlSerializer" /> serializes or deserializes an object. For a complete list of similar attributes, see <format type="text/html"><a href="414b820f-a696-4206-b576-2711d85490c7">Attributes That Control XML Serialization</a></format>.</para>
      <para>You can apply the <see cref="T:System.Xml.Serialization.XmlRootAttribute" /> to a class, structure, enumeration, or interface. You can also apply the attribute to the return value of an XML Web service method.</para>
      <para>Every XML document must have a single root element that contains all the other elements. The <see cref="T:System.Xml.Serialization.XmlRootAttribute" /> allows you to control how the <see cref="T:System.Xml.Serialization.XmlSerializer" /> generates the root element by setting certain properties. For example, specify the name of the generated XML element by setting the <see cref="P:System.Xml.Serialization.XmlRootAttribute.ElementName" /> property.</para>
      <para>For more information about using attributes, see <format type="text/html"><a href="30386922-1e00-4602-9ebf-526b271a8b87">Extending Metadata Using Attributes</a></format>.</para>
      <block subset="none" type="note">
        <para>You can use the word XmlRoot in your code instead of the longer <see cref="T:System.Xml.Serialization.XmlRootAttribute" />.</para>
      </block>
    </remarks>
    <summary>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>Controls XML serialization of the attribute target as an XML root element.</para>
    </summary>
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public XmlRootAttribute ();" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
      <MemberType>Constructor</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue />
      <Parameters />
      <Docs>
        <remarks>To be added</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes a new instance of the <see cref="T:System.Xml.Serialization.XmlRootAttribute" /> class.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public XmlRootAttribute (string elementName);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(string elementName) cil managed" />
      <MemberType>Constructor</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue />
      <Parameters>
        <Parameter Name="elementName" Type="System.String" />
      </Parameters>
      <Docs>
        <remarks>To be added</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes a new instance of the <see cref="T:System.Xml.Serialization.XmlRootAttribute" /> class and specifies the name of the XML root element.</para>
        </summary>
        <param name="elementName">
          <attribution license="cc4" from="Microsoft" modified="false" />The name of the XML root element. </param>
      </Docs>
    </Member>
    <Member MemberName="DataType">
      <MemberSignature Language="C#" Value="public string DataType { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance string DataType" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <value>To be added: an object of type 'string'</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The following table lists the XSD simple data types with their .NET equivalents.</para>
          <para>For the XSD base64Binary and hexBinary data types, use an array of <see cref="T:System.Byte" /> structures, and apply a <see cref="T:System.Xml.Serialization.XmlRootAttribute" /> with the <see cref="P:System.Xml.Serialization.XmlRootAttribute.DataType" /> property set to "base64Binary" or "hexBinary", as appropriate. For the XSD time and date data types, use the <see cref="T:System.DateTime" /> type and apply the <see cref="T:System.Xml.Serialization.XmlRootAttribute" /> with the <see cref="P:System.Xml.Serialization.XmlRootAttribute.DataType" /> set to "date" or "time".</para>
          <para>For every XSD type that is mapped to a string, apply the <see cref="T:System.Xml.Serialization.XmlRootAttribute" /> with its <see cref="P:System.Xml.Serialization.XmlRootAttribute.DataType" /> property set to the XSD type. However, this does not change the serialization format, only the schema for the member.</para>
          <block subset="none" type="note">
            <para>The property is case-sensitive, so you must set it exactly to one of the XSD data types.</para>
          </block>
          <block subset="none" type="note">
            <para>Passing binary data as an XML element is more efficient than passing it as an XML attribute.</para>
          </block>
          <para>For more information about XML data types, see the World Wide Web Consortium (www.w3.org) document named "XML Schema Part 2: Datatypes".</para>
          <list type="table">
            <listheader>
              <item>
                <term>
                  <para>XSD data type </para>
                </term>
                <description>
                  <para>.NET data type </para>
                </description>
              </item>
            </listheader>
            <item>
              <term>
                <para>anyURI </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>base64Binary </para>
              </term>
              <description>
                <para>Array of <see cref="T:System.Byte" /> objects </para>
              </description>
            </item>
            <item>
              <term>
                <para>boolean </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.Boolean" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>byte </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.SByte" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>date </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.DateTime" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>dateTime </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.DateTime" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>decimal </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.Decimal" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>double </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.Double" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>ENTITY </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>ENTITIES </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>float </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.Single" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>gDay </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>gMonth </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>gMonthDay </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>gYear </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>gYearMonth </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>hexBinary </para>
              </term>
              <description>
                <para>Array of <see cref="T:System.Byte" /> objects </para>
              </description>
            </item>
            <item>
              <term>
                <para>ID </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>IDREF </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>IDREFS </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>int </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.Int32" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>integer </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>language </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>long </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.Int64" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>Name </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>NCName </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>negativeInteger </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>NMTOKEN </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>NMTOKENS </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>normalizedString </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>nonNegativeInteger </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>nonPositiveInteger </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>NOTATION </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>positiveInteger </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>QName </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.Xml.XmlQualifiedName" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>recurringDate </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>duration </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>string </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>short </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.Int16" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>time </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.DateTime" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>token </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.String" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>unsignedByte </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.Byte" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>unsignedInt </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.UInt32" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>unsignedLong </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.UInt64" /> </para>
              </description>
            </item>
            <item>
              <term>
                <para>unsignedShort </para>
              </term>
              <description>
                <para>
                  <see cref="T:System.UInt16" /> </para>
              </description>
            </item>
          </list>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the XSD data type of the XML root element.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="ElementName">
      <MemberSignature Language="C#" Value="public string ElementName { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance string ElementName" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <value>To be added: an object of type 'string'</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Specify an <see cref="P:System.Xml.Serialization.XmlArrayItemAttribute.ElementName" /> if you want the name of the generated XML element to differ from the class name.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the name of the XML element that is generated and recognized by the <see cref="T:System.Xml.Serialization.XmlSerializer" /> class's <see cref="M:System.Xml.Serialization.XmlSerializer.Serialize(System.IO.TextWriter,System.Object)" /> and <see cref="M:System.Xml.Serialization.XmlSerializer.Deserialize(System.IO.Stream)" /> methods, respectively.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="IsNullable">
      <MemberSignature Language="C#" Value="public bool IsNullable { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance bool IsNullable" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <value>To be added: an object of type 'bool'</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The XML schema specification for structures allows an XML document to explicitly signal that an element's content is missing. Such an element contains the attribute xsi:nil set to true. For more information, see the http://www.w3.org/TR/xmlschema-1/ specification named <paramref name="XML Schema Part 1: Structures" />.</para>
          <para>If the <see cref="P:System.Xml.Serialization.XmlRootAttribute.IsNullable" /> property is set to true, the xsi:nil attribute is generated as shown in the following XML: </para>
          <code> &lt;?xml version="1.0" encoding="utf-8"?&gt;
 &lt;Group xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:nil="true" /&gt;</code>
          <para>If the <see cref="P:System.Xml.Serialization.XmlRootAttribute.IsNullable" /> property is false, an empty element is created as shown in the following code: </para>
          <code> &lt;?xml version="1.0" encoding="utf-8"?&gt;
 &lt;Group xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xmlns:xsd="http://www.w3.org/2001/XMLSchema" /&gt;</code>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets a value that indicates whether the <see cref="T:System.Xml.Serialization.XmlSerializer" /> must serialize a member that is set to null into the xsi:nil attribute set to true.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="Namespace">
      <MemberSignature Language="C#" Value="public string Namespace { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance string Namespace" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <value>To be added: an object of type 'string'</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="P:System.Xml.Serialization.XmlArrayItemAttribute.Namespace" /> property conforms to the World Wide Web Consortium (www.w3.org) specification named <paramref name="Namespaces in XML" />.</para>
          <para>To create prefixed namespaces in the XML document, create an <see cref="T:System.Xml.Serialization.XmlSerializerNamespaces" /> object that contains all the prefix-namespace pairs. The namespace you set for each <see cref="T:System.Xml.Serialization.XmlArrayAttribute" /> must be contained in the <see cref="T:System.Xml.Serialization.XmlSerializerNamespaces" /> object. When the <see cref="T:System.Xml.Serialization.XmlSerializer" /> generates the document, it correctly prefixes the element name for each array item.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the namespace for the XML root element.</para>
        </summary>
      </Docs>
    </Member>
  </Members>
</Type>