<?xml version="1.0" encoding="utf-8"?>
<Type Name="XmlArrayAttribute" FullName="System.Xml.Serialization.XmlArrayAttribute">
  <TypeSignature Maintainer="auto" Language="C#" Value="public class XmlArrayAttribute : Attribute" />
  <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit XmlArrayAttribute 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.Property | System.AttributeTargets.Field | System.AttributeTargets.Parameter | 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.XmlArrayAttribute" /> 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.XmlArrayAttribute" /> to a public field or read/write property that returns an array of objects. You can also apply it to collections and fields that return an <see cref="T:System.Collections.ArrayList" /> or any field that returns an object that implements the <see cref="T:System.Collections.IEnumerable" /> interface.</para>
      <para>When you apply the <see cref="T:System.Xml.Serialization.XmlArrayAttribute" /> to a class member, the <see cref="M:System.Xml.Serialization.XmlSerializer.Serialize(System.IO.TextWriter,System.Object)" /> method of the <see cref="T:System.Xml.Serialization.XmlSerializer" /> class generates a nested sequence of XML elements from that member. An XML schema document (an .xsd file), indicates such an array as a complexType. For example, if the class to be serialized represents a purchase order, you can generate an array of purchased items by applying the <see cref="T:System.Xml.Serialization.XmlArrayAttribute" /> to a public field that returns an array of objects that represent order items.</para>
      <para>If no attributes are applied to a public field or property that returns an array of complex or primitive type objects, the <see cref="T:System.Xml.Serialization.XmlSerializer" /> generates a nested sequence of XML elements by default. To more precisely control what XML elements are generated, apply an <see cref="T:System.Xml.Serialization.XmlArrayItemAttribute" /> and an <see cref="T:System.Xml.Serialization.XmlArrayAttribute" /> to the field or property. For example, by default, the name of the generated XML element is derived from the member identifier You can change the name of the generated XML element by setting the <see cref="P:System.Xml.Serialization.XmlArrayAttribute.ElementName" /> property.</para>
      <para>If you serialize an array that contains items of a specific type and all the classes derived from that type, you must use the <see cref="T:System.Xml.Serialization.XmlArrayItemAttribute" /> to declare each of the types.</para>
      <block subset="none" type="note">
        <para>You can use XmlArray in your code instead of the longer <see cref="T:System.Xml.Serialization.XmlArrayAttribute" />.</para>
      </block>
      <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>
    </remarks>
    <summary>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>Specifies that the <see cref="T:System.Xml.Serialization.XmlSerializer" /> must serialize a particular class member as an array of XML elements.</para>
    </summary>
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public XmlArrayAttribute ();" />
      <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>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <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>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes a new instance of the <see cref="T:System.Xml.Serialization.XmlArrayAttribute" /> class.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public XmlArrayAttribute (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>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <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>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes a new instance of the <see cref="T:System.Xml.Serialization.XmlArrayAttribute" /> class and specifies the XML element name generated in the XML document instance.</para>
        </summary>
        <param name="elementName">
          <attribution license="cc4" from="Microsoft" modified="false" />The name of the XML element that the <see cref="T:System.Xml.Serialization.XmlSerializer" /> generates. </param>
      </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.XmlArrayAttribute.ElementName" /> when you want the generated XML element name to differ from the member's identifier.</para>
          <para>You can set the same <see cref="P:System.Xml.Serialization.XmlArrayAttribute.ElementName" /> value to more than one member as long as the generated XML document uses XML namespaces to distinguish between the identically named members. For more details about using namespaces and creating prefixed names in the XML document, see <see cref="T:System.Xml.Serialization.XmlSerializerNamespaces" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the XML element name given to the serialized array.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="Form">
      <MemberSignature Language="C#" Value="public System.Xml.Schema.XmlSchemaForm Form { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance valuetype System.Xml.Schema.XmlSchemaForm Form" />
      <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.Xml.Schema.XmlSchemaForm</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <value>To be added: an object of type 'System.Xml.Schema.XmlSchemaForm'</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="P:System.Xml.Serialization.XmlArrayAttribute.Form" /> property determines whether an XML element name is qualified or unqualified. The <see cref="P:System.Xml.Serialization.XmlArrayAttribute.Form" /> property conforms to the 1999 World Wide Web Consortium (www.w3.org) document titled "Namespaces in XML." </para>
          <para>If the <see cref="P:System.Xml.Serialization.XmlAttributeAttribute.Namespace" /> property is set to any value, attempting to set the <see cref="P:System.Xml.Serialization.XmlElementAttribute.Form" /> property to XmlSchemaForm.Unqualified throws an exception.</para>
          <para>The default setting, XmlSchemaForm.None, instructs the <see cref="T:System.Xml.Serialization.XmlSerializer" /> to check the schema for the XML document to determine whether the namespace is qualified. If the schema does not specify a value for an individual element or attribute, the <see cref="T:System.Xml.Serialization.XmlSerializer" /> uses the elementFormDefault and attributeFormDefault values to determine whether an element or attribute is qualified. The following XML code shows a schema: </para>
          <code> &lt;schema elementFormDefault="qualified" 
 attributeFormDefault="unqualified"... &gt;
    &lt;element name="Name"/&gt;
    &lt;attribute name="Number"/&gt;
 &lt;/schema&gt;</code>
          <para>When the <see cref="T:System.Xml.Serialization.XmlSerializer" /> reads the schema, the <see cref="P:System.Xml.Serialization.XmlAttributeAttribute.Form" /> value for both the Name and Number is XmlSchemaForm.None, but the Name element is qualified, while the Number element is unqualified.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets a value that indicates whether the XML element name generated by the <see cref="T:System.Xml.Serialization.XmlSerializer" /> is qualified or unqualified.</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 World Wide Web Consortium (www.w3.org) specification titled "XML Schema Part 1: Structures." </para>
          <para>If the <see cref="P:System.Xml.Serialization.XmlArrayAttribute.IsNullable" /> property is set to true, the xsi:nil attribute is generated for class members that have been set to null. For example, if you set a field named MyStringArray to null, the <see cref="T:System.Xml.Serialization.XmlSerializer" /> generates the following XML code.</para>
          <code> &lt;MyStringArray xsi:nil = "true" /&gt;</code>
          <para>If the <see cref="P:System.Xml.Serialization.XmlArrayAttribute.IsNullable" /> property is false, no XML element is generated.</para>
          <block subset="none" type="note">
            <para>You cannot apply the <see cref="P:System.Xml.Serialization.XmlArrayAttribute.IsNullable" /> property to a member typed as a value type because a value type cannot contain null.</para>
          </block>
        </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 as an empty XML tag with 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.XmlArrayAttribute.Namespace" /> property allows you to create qualified XML element names. The <see cref="P:System.Xml.Serialization.XmlArrayAttribute.Namespace" /> property conforms to the rules for creating an XML namespace as found in the 1999 World Wide Web Consortium (www.w3.org) document titled "Namespaces in XML." </para>
          <para>To create namespaces that are associated with a prefix, you must create an instance of the <see cref="T:System.Xml.Serialization.XmlSerializerNamespaces" /> class that contains the namespaces and prefixes used in the XML document. As you set the namespace for each <see cref="T:System.Xml.Serialization.XmlArrayAttribute" />, it must match one of the namespaces in the <see cref="T:System.Xml.Serialization.XmlSerializerNamespaces" />. When the XML is generated, each array is correctly prefixed with the prefix associated with the specified namespace.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the namespace of the XML element.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="Order">
      <MemberSignature Language="C#" Value="public int Order { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance int32 Order" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Use the <see cref="F:System.Xml.Serialization.CodeGenerationOptions.GenerateOrder" /> enumeration to instruct the <see cref="T:System.Web.Services.Description.ServiceDescriptionImporter" /> to generate code that sets the <see cref="P:System.Xml.Serialization.XmlElementAttribute.Order" /> property. </para>
          <block subset="none" type="note">
            <para>Once the <see cref="P:System.Xml.Serialization.XmlElementAttribute.Order" /> property has been used on one public property or field in a type, it must be applied to all public properties and fields for that type and all inherited types.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the explicit order in which the elements are serialized or deserialized.</para>
        </summary>
      </Docs>
    </Member>
  </Members>
</Type>