<?xml version="1.0" encoding="utf-8"?>
<Type Name="DataTable" FullName="System.Data.DataTable">
  <TypeSignature Language="C#" Maintainer="auto" Value="public class DataTable : System.ComponentModel.MarshalByValueComponent, System.ComponentModel.IListSource, System.ComponentModel.ISupportInitializeNotification, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable" />
  <AssemblyInfo>
    <AssemblyName>System.Data</AssemblyName>
    <AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00]</AssemblyPublicKey>
    <AssemblyVersion>1.0.3300.0</AssemblyVersion>
    <AssemblyVersion>1.0.5000.0</AssemblyVersion>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the &lt;link location="node:gtk-sharp/programming/threads"&gt;Gtk# Thread Programming&lt;/link&gt; for details.</ThreadSafetyStatement>
  <Base>
    <BaseTypeName>System.ComponentModel.MarshalByValueComponent</BaseTypeName>
  </Base>
  <Interfaces>
    <Interface>
      <InterfaceName>System.ComponentModel.IListSource</InterfaceName>
    </Interface>
    <Interface>
      <InterfaceName>System.ComponentModel.ISupportInitializeNotification</InterfaceName>
    </Interface>
    <Interface>
      <InterfaceName>System.Runtime.Serialization.ISerializable</InterfaceName>
    </Interface>
    <Interface>
      <InterfaceName>System.Xml.Serialization.IXmlSerializable</InterfaceName>
    </Interface>
  </Interfaces>
  <Attributes>
    <Attribute>
      <AttributeName>System.Xml.Serialization.XmlSchemaProvider("GetDataTableSchema")</AttributeName>
    </Attribute>
    <Attribute>
      <AttributeName>System.ComponentModel.Editor("Microsoft.VSDesigner.Data.Design.DataTableEditor, Microsoft.VSDesigner, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "System.Drawing.Design.UITypeEditor, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")</AttributeName>
    </Attribute>
    <Attribute>
      <AttributeName>System.ComponentModel.DesignTimeVisible(false)</AttributeName>
    </Attribute>
    <Attribute>
      <AttributeName>System.ComponentModel.DefaultProperty("TableName")</AttributeName>
    </Attribute>
    <Attribute>
      <AttributeName>System.ComponentModel.DefaultEvent("RowChanging")</AttributeName>
    </Attribute>
    <Attribute>
      <AttributeName>System.ComponentModel.ToolboxItem(false)</AttributeName>
    </Attribute>
  </Attributes>
  <Docs>
    <remarks>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>The <see cref="T:System.Data.DataTable" /> is a central object in the ADO.NET library. Other objects that use the <see cref="T:System.Data.DataTable" /> include the <see cref="T:System.Data.DataSet" /> and the <see cref="T:System.Data.DataView" />.</para>
      <para>When accessing <see cref="T:System.Data.DataTable" /> objects, note that they are conditionally case sensitive. For example, if one <see cref="T:System.Data.DataTable" /> is named "mydatatable" and another is named "Mydatatable", a string used to search for one of the tables is regarded as case sensitive. However, if "mydatatable" exists and "Mydatatable" does not, the search string is regarded as case insensitive. A <see cref="T:System.Data.DataSet" /> can contain two <see cref="T:System.Data.DataTable" /> objects that have the same <see cref="P:System.Data.DataTable.TableName" /> property value but different <see cref="P:System.Data.DataTable.Namespace" /> property values. For more information about working with <see cref="T:System.Data.DataTable" /> objects, see <format type="text/html"><a href="eecf9d78-60e3-4fdc-8de0-e56c13a89414">Creating a DataTable</a></format>.</para>
      <para>If you are creating a <see cref="T:System.Data.DataTable" /> programmatically, you must first define its schema by adding <see cref="T:System.Data.DataColumn" /> objects to the <see cref="T:System.Data.DataColumnCollection" /> (accessed through the <see cref="P:System.Data.DataTable.Columns" /> property). For more information about adding <see cref="T:System.Data.DataColumn" /> objects, see <format type="text/html"><a href="e85c4a0e-4f3f-458c-b58b-0ddbc06bf974">Adding Columns to a Table</a></format>.</para>
      <para>To add rows to a <see cref="T:System.Data.DataTable" />, you must first use the <see cref="M:System.Data.DataTable.NewRow" /> method to return a new <see cref="T:System.Data.DataRow" /> object. The <see cref="M:System.Data.DataTable.NewRow" /> method returns a row with the schema of the <see cref="T:System.Data.DataTable" />, as it is defined by the table's <see cref="T:System.Data.DataColumnCollection" />. The maximum number of rows that a <see cref="T:System.Data.DataTable" /> can store is 16,777,216. For more information, see <format type="text/html"><a href="d6aa8474-7bde-48f7-949d-20dc38a1625b">Adding Data to a Table</a></format>.</para>
      <para>The <see cref="T:System.Data.DataTable" /> also contains a collection of <see cref="T:System.Data.Constraint" /> objects that can be used to ensure the integrity of the data. For more information, see <format type="text/html"><a href="27c9f2fd-f64d-4b4e-bbf6-1d24f47067cb">Adding Constraints to a Table</a></format>.</para>
      <para>There are many <see cref="T:System.Data.DataTable" /> events that can be used to determine when changes are made to a table. These include <see cref="E:System.Data.DataTable.RowChanged" />, <see cref="E:System.Data.DataTable.RowChanging" />, <see cref="E:System.Data.DataTable.RowDeleting" />, and <see cref="E:System.Data.DataTable.RowDeleted" />. For more information about the events that can be used with a <see cref="T:System.Data.DataTable" />, see <format type="text/html"><a href="62f404a5-13ea-4b93-a29f-55b74a16c9d3">Working with DataTable Events</a></format>.</para>
      <para>When an instance of <see cref="T:System.Data.DataTable" /> is created, some of the read/write properties are set to initial values. For a list of these values, see the <see cref="M:System.Data.DataTable.#ctor" /> constructor topic.</para>
      <block subset="none" type="note">
        <para>The <see cref="T:System.Data.DataSet" /> and <see cref="T:System.Data.DataTable" /> objects inherit from <see cref="T:System.ComponentModel.MarshalByValueComponent" />, and support the <see cref="T:System.Runtime.Serialization.ISerializable" /> interface for .NET Framework remoting. These are the only ADO.NET objects that you can use for .NET Framework remoting.</para>
      </block>
    </remarks>
    <summary>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>Represents one table of in-memory data.</para>
    </summary>
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public DataTable ();" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The constructor sets initial values for all properties of the <see cref="T:System.Data.DataTable" /> object. The following table shows the properties and their default values. When an instance of <see cref="T:System.Data.DataTable" /> is created, the following read/write properties are set to initial values.</para>
          <list type="table">
            <listheader>
              <item>
                <term>
                  <para>Property </para>
                </term>
                <description>
                  <para>Default value </para>
                </description>
              </item>
            </listheader>
            <item>
              <term>
                <para>CaseSensitive </para>
              </term>
              <description>
                <para>Same as the parent <see cref="T:System.Data.DataSet" />, if it belongs to one. Otherwise, false. </para>
              </description>
            </item>
            <item>
              <term>
                <para>DisplayExpression </para>
              </term>
              <description>
                <para>Empty string ("") </para>
              </description>
            </item>
            <item>
              <term>
                <para>Locale </para>
              </term>
              <description>
                <para>Same as the parent <see cref="T:System.Data.DataSet" /> object's <see cref="T:System.Globalization.CultureInfo" /> (returned by the <see cref="P:System.Data.DataSet.Locale" /> property); if no parent exists, the default is the current system <see cref="T:System.Globalization.CultureInfo" />. </para>
              </description>
            </item>
            <item>
              <term>
                <para>MinimumCapacity </para>
              </term>
              <description>
                <para>50 rows.</para>
              </description>
            </item>
          </list>
          <para>You can change the value for any of these properties through a separate call to the property.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes a new instance of the <see cref="T:System.Data.DataTable" /> class with no arguments.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public DataTable (string tableName);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="tableName" 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.Data.DataTable" /> class with the specified table name.</para>
        </summary>
        <param name="tableName">
          <attribution license="cc4" from="Microsoft" modified="false" />The name to give the table. If <paramref name="tableName" /> is null or an empty string, a default name is given when added to the <see cref="T:System.Data.DataTableCollection" />. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected DataTable (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="info" Type="System.Runtime.Serialization.SerializationInfo" />
        <Parameter Name="context" Type="System.Runtime.Serialization.StreamingContext" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This implementation of the <see cref="T:System.Data.DataTable" /> constructor is required for <see cref="T:System.Runtime.Serialization.ISerializable" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes a new instance of the <see cref="T:System.Data.DataTable" /> class with the <see cref="T:System.Runtime.Serialization.SerializationInfo" /> and the <see cref="T:System.Runtime.Serialization.StreamingContext" />.</para>
        </summary>
        <param name="info">
          <attribution license="cc4" from="Microsoft" modified="false" />The data needed to serialize or deserialize an object.</param>
        <param name="context">
          <attribution license="cc4" from="Microsoft" modified="false" />The source and destination of a given serialized stream. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public DataTable (string tableName, string tbNamespace);" />
      <MemberType>Constructor</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Parameters>
        <Parameter Name="tableName" Type="System.String" />
        <Parameter Name="tbNamespace" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="tbNamespace">To be added.</param>
        <remarks>To be added.</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes a new instance of the <see cref="T:System.Data.DataTable" /> class using the specified table name and namespace.</para>
        </summary>
        <param name="tableName">
          <attribution license="cc4" from="Microsoft" modified="false" />The name to give the table. If <paramref name="tableName" /> is null or an empty string, a default name is given when added to the <see cref="T:System.Data.DataTableCollection" />. </param>
      </Docs>
    </Member>
    <Member MemberName="AcceptChanges">
      <MemberSignature Language="C#" Value="public void AcceptChanges ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>When <see cref="M:System.Data.DataTable.AcceptChanges" /> is called, any <see cref="T:System.Data.DataRow" /> object still in edit mode successfully ends its edits. The <see cref="T:System.Data.DataRowState" /> also changes: all Added and Modified rows become Unchanged, and Deleted rows are removed.</para>
          <para>The <see cref="M:System.Data.DataTable.AcceptChanges" /> method is generally called on a <see cref="T:System.Data.DataTable" /> after you attempt to update the <see cref="T:System.Data.DataSet" /> using the <see cref="M:System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)" /> method.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Commits all the changes made to this table since the last time <see cref="M:System.Data.DataTable.AcceptChanges" /> was called.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="BeginInit">
      <MemberSignature Language="C#" Value="public virtual void BeginInit ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The Visual Studio .NET design environment uses this method to start the initialization of a component that is used on a form or used by another component. The <see cref="M:System.Data.DataTable.EndInit" /> method ends the initialization. Using the <see cref="M:System.Data.DataTable.BeginInit" /> and <see cref="M:System.Data.DataTable.EndInit" /> methods prevents the control from being used before it is fully initialized.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Begins the initialization of a <see cref="T:System.Data.DataTable" /> that is used on a form or used by another component. The initialization occurs at run time. </para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="BeginLoadData">
      <MemberSignature Language="C#" Value="public void BeginLoadData ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Use <see cref="M:System.Data.DataTable.BeginLoadData" /> in conjunction with <see cref="M:System.Data.DataTable.LoadDataRow(System.Object[],System.Boolean)" /> and <see cref="M:System.Data.DataTable.EndLoadData" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Turns off notifications, index maintenance, and constraints while loading data.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="CaseSensitive">
      <MemberSignature Language="C#" Value="public bool CaseSensitive { set; get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <value>To be added: an object of type 'bool'</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="P:System.Data.DataTable.CaseSensitive" /> property affects string comparisons in sorting, searching, and filtering.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Indicates whether string comparisons within the table are case-sensitive.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="ChildRelations">
      <MemberSignature Language="C#" Value="public System.Data.DataRelationCollection ChildRelations { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataRelationCollection</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added: an object of type 'DataRelationCollection'</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Data.DataRelation" /> defines the relationship between two tables. Typically, two tables are linked through a single field that contains the same data. For example, a table which contains address data may have a single field containing codes that represent countries/regions. A second table that contains country/region data will have a single field that contains the code that identifies the country/region, and it is this code which is inserted into the corresponding field in the first table. A <see cref="T:System.Data.DataRelation" />, then, contains at least four pieces of information: (1) the name of the first table, (2) the column name in the first table, (3) the name of the second table, and (4) the column name in the second table.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the collection of child relations for this <see cref="T:System.Data.DataTable" />.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Hidden)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.ComponentModel.Browsable(false)</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="Clear">
      <MemberSignature Language="C#" Value="public void Clear ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>All rows in all tables are removed. An exception is generated if the table has any enforced child relations that would cause child rows to be orphaned.</para>
          <para>If the <see cref="T:System.Data.DataSet" /> is bound to an <see cref="T:System.Xml.XmlDataDocument" />, calling <see cref="M:System.Data.DataSet.Clear" /> or <see cref="M:System.Data.DataTable.Clear" /> raises the <see cref="T:System.NotSupportedException" />. To avoid this situation, traverse each table, removing each row one at a time. When you use <see cref="M:System.Data.DataTable.NewRow" /> to create new rows, the rows must be processed before you call <see cref="M:System.Data.DataTable.Clear" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Clears the <see cref="T:System.Data.DataTable" /> of all data.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="Clone">
      <MemberSignature Language="C#" Value="public virtual System.Data.DataTable Clone ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataTable</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>If these classes have been derived, the clone will also be of the same derived classes.</para>
          <para>Clone creates a new <see cref="T:System.Data.DataTable" /> with the same structure as the original <see cref="T:System.Data.DataTable" />, but does not copy any data (the new <see cref="T:System.Data.DataTable" /> will not contain any DataRows). To copy both the structure and data into a new <see cref="T:System.Data.DataTable" />, use <see cref="M:System.Data.DataTable.Copy" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Clones the structure of the <see cref="T:System.Data.DataTable" />, including all <see cref="T:System.Data.DataTable" /> schemas and constraints.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A new <see cref="T:System.Data.DataTable" /> with the same schema as the current <see cref="T:System.Data.DataTable" />.</para>
        </returns>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="ColumnChanged">
      <MemberSignature Language="C#" Value="public event System.Data.DataColumnChangeEventHandler ColumnChanged;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataColumnChangeEventHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>For more information, see <format type="text/html"><a href="62f404a5-13ea-4b93-a29f-55b74a16c9d3">Working with DataTable Events</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Occurs after a value has been changed for the specified <see cref="T:System.Data.DataColumn" /> in a <see cref="T:System.Data.DataRow" />.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="ColumnChanging">
      <MemberSignature Language="C#" Value="public event System.Data.DataColumnChangeEventHandler ColumnChanging;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataColumnChangeEventHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>For more information, see <format type="text/html"><a href="62f404a5-13ea-4b93-a29f-55b74a16c9d3">Working with DataTable Events</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Occurs when a value is being changed for the specified <see cref="T:System.Data.DataColumn" /> in a <see cref="T:System.Data.DataRow" />.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="Columns">
      <MemberSignature Language="C#" Value="public System.Data.DataColumnCollection Columns { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataColumnCollection</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added: an object of type 'DataColumnCollection'</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="T:System.Data.DataColumnCollection" /> determines the schema of a table by defining the data type of each column.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the collection of columns that belong to this table.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="Compute">
      <MemberSignature Language="C#" Value="public object Compute (string expression, string filter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Object</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="expression" Type="System.String" />
        <Parameter Name="filter" Type="System.String" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <paramref name="expression" /> parameter requires an aggregate function. For example, the following is a legal expression:</para>
          <para>Count(Quantity)</para>
          <para>But this expression is not:</para>
          <para>Sum (Quantity * UnitPrice)</para>
          <para>If you must perform an operation on two or more columns, you should create a <see cref="T:System.Data.DataColumn" />, set its <see cref="P:System.Data.DataColumn.Expression" /> property to an appropriate expression, and use an aggregate expression on the resulting column. In that case, given a <see cref="T:System.Data.DataColumn" /> with the name "total", and the <see cref="P:System.Data.DataColumn.Expression" /> property set to this:</para>
          <para>"Quantity * UnitPrice"</para>
          <para>The expression argument for the <see cref="M:System.Data.DataTable.Compute(System.String,System.String)" /> method would then be this:</para>
          <para>Sum(total)</para>
          <para>The second parameter, <paramref name="filter" />, determines which rows are used in the expression. For example, if the table contains a date column named "colDate", you could limit the rows with the following expression:</para>
          <para>colDate &gt; 1/1/99 AND colDate &lt; 17/1/99</para>
          <para>For rules on creating expressions for both parameters, see the <see cref="P:System.Data.DataColumn.Expression" /> property.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Computes the given expression on the current rows that pass the filter criteria.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Object" />, set to the result of the computation. If the expression evaluates to null, the return value will be <see cref="F:System.DBNull.Value" />.</para>
        </returns>
        <param name="expression">
          <attribution license="cc4" from="Microsoft" modified="false" />The expression to compute. </param>
        <param name="filter">
          <attribution license="cc4" from="Microsoft" modified="false" />The filter to limit the rows that evaluate in the expression. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="Constraints">
      <MemberSignature Language="C#" Value="public System.Data.ConstraintCollection Constraints { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.ConstraintCollection</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added: an object of type 'ConstraintCollection'</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Data.ForeignKeyConstraint" /> restricts the action performed when a value in a column (or columns) is either deleted or updated. Such a constraint is intended to be used with primary key columns. In a parent/child relationship between two tables, deleting a value from the parent table can affect the child rows in one of the following ways.</para>
          <list type="bullet">
            <item>
              <para>The child rows can also be deleted (a cascading action).</para>
            </item>
            <item>
              <para>The values in the child column (or columns) can be set to null values.</para>
            </item>
            <item>
              <para>The values in the child column (or columns) can be set to default values.</para>
            </item>
            <item>
              <para>An exception can be generated.</para>
            </item>
          </list>
          <para>A <see cref="T:System.Data.UniqueConstraint" /> becomes active when attempting to set a value in a primary key to a non-unique value.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the collection of constraints maintained by this table.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="Copy">
      <MemberSignature Language="C#" Value="public System.Data.DataTable Copy ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataTable</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>To be added</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Copies both the structure and data for this <see cref="T:System.Data.DataTable" />.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A new <see cref="T:System.Data.DataTable" /> with the same structure (table schemas and constraints) and data as this <see cref="T:System.Data.DataTable" />.</para>
          <para>If these classes have been derived, the copy will also be of the same derived classes.</para>
          <para>
            <see cref="M:System.Data.DataTable.Copy" /> creates a new <see cref="T:System.Data.DataTable" /> with the same structure and data as the original <see cref="T:System.Data.DataTable" />. To copy the structure to a new <see cref="T:System.Data.DataTable" />, but not the data, use <see cref="M:System.Data.DataTable.Clone" />.</para>
        </returns>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="CreateDataReader">
      <MemberSignature Language="C#" Value="public System.Data.DataTableReader CreateDataReader ();" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Data.DataTableReader</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>To be added.</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns a <see cref="T:System.Data.DataTableReader" /> corresponding to the data within this <see cref="T:System.Data.DataTable" />.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Data.DataTableReader" /> containing one result set, corresponding to the source <see cref="T:System.Data.DataTable" /> instance.</para>
        </returns>
      </Docs>
    </Member>
    <Member MemberName="CreateInstance">
      <MemberSignature Language="C#" Value="protected virtual System.Data.DataTable CreateInstance ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataTable</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>To be added</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Creates a new instance of <see cref="T:System.Data.DataTable" />.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The new expression.</para>
        </returns>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="DataSet">
      <MemberSignature Language="C#" Value="public System.Data.DataSet DataSet { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataSet</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added: an object of type 'DataSet'</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>If a control is data bound to a <see cref="T:System.Data.DataTable" />, and the table belongs to a <see cref="T:System.Data.DataSet" />, you can get to the <see cref="T:System.Data.DataSet" /> through this property.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the <see cref="T:System.Data.DataSet" /> to which this table belongs.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Hidden)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.ComponentModel.Browsable(false)</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="DefaultView">
      <MemberSignature Language="C#" Value="public System.Data.DataView DefaultView { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataView</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added: an object of type 'DataView'</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="P:System.Data.DataTable.DefaultView" /> property returns a <see cref="T:System.Data.DataView" /> you can use to sort, filter, and search a <see cref="T:System.Data.DataTable" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets a customized view of the table that may include a filtered view, or a cursor position.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.Browsable(false)</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="DisplayExpression">
      <MemberSignature Language="C#" Value="public string DisplayExpression { set; get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <value>To be added: an object of type 'string'</value>
        <remarks>To be added</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the expression that returns a value used to represent this table in the user interface. The DisplayExpression property lets you display the name of this table in a user interface.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.DefaultValue("")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="EndInit">
      <MemberSignature Language="C#" Value="public virtual void EndInit ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The Visual Studio .NET design environment uses this method to end the initialization of a component that is used on a form or used by another component. The <see cref="M:System.Data.DataTable.BeginInit" /> method starts the initialization. Using the <see cref="M:System.Data.DataTable.BeginInit" /> and <see cref="M:System.Data.DataTable.EndInit" /> methods prevents the control from being used before it is fully initialized.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Ends the initialization of a <see cref="T:System.Data.DataTable" /> that is used on a form or used by another component. The initialization occurs at run time.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="EndLoadData">
      <MemberSignature Language="C#" Value="public void EndLoadData ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Use <see cref="M:System.Data.DataTable.EndLoadData" /> in conjunction with <see cref="M:System.Data.DataTable.LoadDataRow(System.Object[],System.Boolean)" /> and <see cref="M:System.Data.DataTable.BeginLoadData" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Turns on notifications, index maintenance, and constraints after loading data.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="ExtendedProperties">
      <MemberSignature Language="C#" Value="public System.Data.PropertyCollection ExtendedProperties { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.PropertyCollection</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added: an object of type 'PropertyCollection'</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Use the <see cref="P:System.Data.DataTable.ExtendedProperties" /> to add custom information to a <see cref="T:System.Data.DataTable" />. Add information with the Add method. Retrieve information with the Item method.</para>
          <para>Extended properties must be of type <see cref="T:System.String" />. Properties that are not of type String are not persisted when the <see cref="T:System.Data.DataTable" /> is written as XML.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the collection of customized user information.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.Browsable(false)</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="fInitInProgress">
      <MemberSignature Language="C#" Value="protected bool fInitInProgress;" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Docs>
        <remarks>To be added.</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Checks whether initialization is in progress. The initialization occurs at run time.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="GetChanges">
      <MemberSignature Language="C#" Value="public System.Data.DataTable GetChanges ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataTable</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Creates a new <see cref="T:System.Data.DataSet" /> containing a copy of all rows in the original <see cref="T:System.Data.DataSet" /> that have pending changes. Relationship constraints can cause additional unchanged rows to be added to the new <see cref="T:System.Data.DataSet" /> if the unchanged rows contain primary keys corresponding to foreign keys in the changed rows. The method returns null (Nothing in Visual Basic) if there are no rows in the original <see cref="T:System.Data.DataSet" /> with pending changes.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets a copy of the <see cref="T:System.Data.DataTable" /> that contains all changes made to it since it was loaded or <see cref="M:System.Data.DataTable.AcceptChanges" /> was last called.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A copy of the changes from this <see cref="T:System.Data.DataTable" />, or null if no changes are found.</para>
        </returns>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetChanges">
      <MemberSignature Language="C#" Value="public System.Data.DataTable GetChanges (System.Data.DataRowState rowStates);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataTable</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="rowStates" Type="System.Data.DataRowState" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Data.DataTable.GetChanges" /> method is used to produce a second <see cref="T:System.Data.DataTable" /> object that contains only the changes introduced into the original. Use the <paramref name="rowStates" /> argument to specify the type of changes the new object should include.</para>
          <para>Relationship constraints may cause unchanged parent rows to be included.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets a copy of the <see cref="T:System.Data.DataTable" /> containing all changes made to it since it was last loaded, or since <see cref="M:System.Data.DataTable.AcceptChanges" /> was called, filtered by <see cref="T:System.Data.DataRowState" />.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A filtered copy of the <see cref="T:System.Data.DataTable" /> that can have actions performed on it, and later be merged back in the <see cref="T:System.Data.DataTable" /> using <see cref="M:System.Data.DataSet.Merge(System.Data.DataSet)" />. If no rows of the desired <see cref="T:System.Data.DataRowState" /> are found, the method returns null.</para>
        </returns>
        <param name="rowStates">
          <attribution license="cc4" from="Microsoft" modified="false" />One of the <see cref="T:System.Data.DataRowState" /> values. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetDataTableSchema">
      <MemberSignature Language="C#" Value="public static System.Xml.Schema.XmlSchemaComplexType GetDataTableSchema (System.Xml.Schema.XmlSchemaSet schemaSet);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Xml.Schema.XmlSchemaComplexType</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="schemaSet" Type="System.Xml.Schema.XmlSchemaSet" />
      </Parameters>
      <Docs>
        <remarks>To be added.</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This method returns an <see cref="T:System.Xml.Schema.XmlSchemaSet" /> instance containing the Web Services Description Language (WSDL) that describes the <see cref="T:System.Data.DataTable" /> for Web Services.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="T:System.Xml.Schema.XmlSchemaSet" /> instance.</para>
        </returns>
        <param name="schemaSet">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Xml.Schema.XmlSchemaSet" /> instance.</param>
      </Docs>
    </Member>
    <Member MemberName="GetErrors">
      <MemberSignature Language="C#" Value="public System.Data.DataRow[] GetErrors ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataRow[]</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the list of <see cref="T:System.Data.DataRow" /> objects that have <see cref="P:System.Data.DataRow.RowError" /> set. For example, errors can occur when calling <see cref="M:System.Data.Common.DataAdapter.Update(System.Data.DataSet)" /> with <see cref="P:System.Data.Common.DataAdapter.ContinueUpdateOnError" /> set to <system>true</system>. Do not invoke <see cref="M:System.Data.DataTable.AcceptChanges" /> on the <see cref="T:System.Data.DataTable" /> until you resolve all errors and resubmit the <see cref="T:System.Data.DataSet" /> for updating.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets an array of <see cref="T:System.Data.DataRow" /> objects that contain errors.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An array of <see cref="T:System.Data.DataRow" /> objects that have errors.</para>
        </returns>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetObjectData">
      <MemberSignature Language="C#" Value="public virtual void GetObjectData (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="info" Type="System.Runtime.Serialization.SerializationInfo" />
        <Parameter Name="context" Type="System.Runtime.Serialization.StreamingContext" />
      </Parameters>
      <Docs>
        <remarks>To be added.</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Populates a serialization information object with the data needed to serialize the <see cref="T:System.Data.DataTable" />.</para>
        </summary>
        <param name="info">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Runtime.Serialization.SerializationInfo" /> object that holds the serialized data associated with the <see cref="T:System.Data.DataTable" />.</param>
        <param name="context">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Runtime.Serialization.StreamingContext" /> object that contains the source and destination of the serialized stream associated with the <see cref="T:System.Data.DataTable" />.</param>
      </Docs>
    </Member>
    <Member MemberName="GetRowType">
      <MemberSignature Language="C#" Value="protected virtual Type GetRowType ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Type</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>To be added</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the row type.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the type of the <see cref="T:System.Data.DataRow" />.</para>
        </returns>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetSchema">
      <MemberSignature Language="C#" Value="protected virtual System.Xml.Schema.XmlSchema GetSchema ();" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Xml.Schema.XmlSchema</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>To be added.</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>For a description of this member, see <see cref="M:System.Xml.Serialization.IXmlSerializable.GetSchema" />.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para> An <see cref="T:System.Xml.Schema.XmlSchema" /> that describes the XML representation of the object that is produced by the <see cref="M:System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter)" /> method and consumed by the <see cref="M:System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader)" /> method.</para>
        </returns>
      </Docs>
    </Member>
    <Member MemberName="HasErrors">
      <MemberSignature Language="C#" Value="public bool HasErrors { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added: an object of type 'bool'</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>As users work on a set of data contained in a <see cref="T:System.Data.DataTable" />, you can mark each change with an error if the change causes some validation failure. You can mark an entire <see cref="T:System.Data.DataRow" /> with an error message using the <see cref="P:System.Data.DataRow.RowError" /> property. You can also set errors on each column of the row with the <see cref="M:System.Data.DataRow.SetColumnError(System.Int32,System.String)" /> method.</para>
          <para>Before updating a data source with a <see cref="T:System.Data.DataSet" />, it's recommended that you first invoke the <see cref="M:System.Data.DataSet.GetChanges" /> method on the target <see cref="T:System.Data.DataSet" />. The method results in a <see cref="T:System.Data.DataSet" /> that contains only the changes made to the original. Before sending the <see cref="T:System.Data.DataSet" /> to the data source for updating, check the <see cref="P:System.Data.DataTable.HasErrors" /> property of each table to see if any errors have been attached to the rows or columns in the rows.</para>
          <para>After reconciling each error, clear the errors with the <see cref="M:System.Data.DataRow.ClearErrors" /> method of the DataRow.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets a value indicating whether there are errors in any of the rows in any of the tables of the <see cref="T:System.Data.DataSet" /> to which the table belongs.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.Browsable(false)</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="ImportRow">
      <MemberSignature Language="C#" Value="public void ImportRow (System.Data.DataRow row);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="row" Type="System.Data.DataRow" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Calling <see cref="M:System.Data.DataTable.NewRow" /> adds a row to the table using the existing table schema, but with default values for the row, and sets the <see cref="T:System.Data.DataRowState" /> to Detached. Calling <see cref="M:System.Data.DataTable.ImportRow(System.Data.DataRow)" /> preserves the existing <see cref="T:System.Data.DataRowState" /> along with other values in the row. If the DataRow that is passed as a parameter is in a detached state, it is ignored, and no exception is thrown.</para>
          <para>The new row will be added to the end of the data table.</para>
          <para>If the new row violates a Constraint it won’t be added to the data table.</para>
          <para>You can get the index of the new row with as DataTable.Rows.Find and DataTable.Rows.IndexOf. See <see cref="T:System.Data.DataRowCollection" /> and <see cref="P:System.Data.DataTable.Rows" /> for more information.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Copies a <see cref="T:System.Data.DataRow" /> into a <see cref="T:System.Data.DataTable" />, preserving any property settings, as well as original and current values.</para>
        </summary>
        <param name="row">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Data.DataRow" /> to be imported. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="Initialized">
      <MemberSignature Language="C#" Value="public event EventHandler Initialized;" />
      <MemberType>Event</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.EventHandler</ReturnType>
      </ReturnValue>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>For more information, see <see cref="P:System.Data.DataTable.IsInitialized" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Occurs after the <see cref="T:System.Data.DataTable" /> is initialized.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="IsInitialized">
      <MemberSignature Language="C#" Value="public bool IsInitialized { get; }" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.Browsable(false)</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns the status of the <see cref="T:System.Data.DataTable" /> while it’s being constructed, for instance by Visual Studio. The <see cref="M:System.Data.DataTable.BeginInit" /> method sets it to false and <see cref="M:System.Data.DataTable.EndInit" /> method sets it to true.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets a value that indicates whether the <see cref="T:System.Data.DataTable" /> is initialized.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="Load">
      <MemberSignature Language="C#" Value="public void Load (System.Data.IDataReader reader);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="reader" Type="System.Data.IDataReader" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Data.DataTable.Load(System.Data.IDataReader)" /> method consumes the first result set from the loaded <see cref="T:System.Data.IDataReader" />, and after successful completion, sets the reader's position to the next result set, if any. When converting data, the Load method uses the same conversion rules as the <see cref="M:System.Data.Common.DbDataAdapter.Fill(System.Data.DataTable)" /> method.</para>
          <para>The <see cref="M:System.Data.DataTable.Load(System.Data.IDataReader)" /> method must take into account three specific issues when loading the data from an <see cref="T:System.Data.IDataReader" /> instance: schema, data, and event operations. When working with the schema, the <see cref="M:System.Data.DataTable.Load(System.Data.IDataReader)" /> method may encounter conditions as described in the following table. The schema operations take place for all imported result sets, even those containing no data.</para>
          <list type="table">
            <listheader>
              <item>
                <term>
                  <para>Condition</para>
                </term>
                <description>
                  <para>Behavior</para>
                </description>
              </item>
            </listheader>
            <item>
              <term>
                <para>The <see cref="T:System.Data.DataTable" /> has no schema.</para>
              </term>
              <description>
                <para>The <see cref="M:System.Data.DataTable.Load(System.Data.IDataReader)" /> method infers the schema based on the result set from the imported <see cref="T:System.Data.IDataReader" />.</para>
              </description>
            </item>
            <item>
              <term>
                <para>The <see cref="T:System.Data.DataTable" /> has a schema, but it is incompatible with the loaded schema.</para>
              </term>
              <description>
                <para>The <see cref="M:System.Data.DataTable.Load(System.Data.IDataReader)" /> method throws an exception corresponding to the particular error that occurs when attempting to load data into the incompatible schema.</para>
              </description>
            </item>
            <item>
              <term>
                <para>The schemas are compatible, but the loaded result set schema contains columns that do not exist in the <see cref="T:System.Data.DataTable" />.</para>
              </term>
              <description>
                <para>The <see cref="M:System.Data.DataTable.Load(System.Data.IDataReader)" /> method adds the extra columns to DataTable's schema. The method throws an exception if corresponding columns in the <see cref="T:System.Data.DataTable" /> and the loaded result set are not value compatible. The method also retrieves constraint information from the result set for all added columns. Except for the case of Primary Key constraint, this constraint information is used only if the current <see cref="T:System.Data.DataTable" /> does not contain any columns at the start of the load operation. </para>
              </description>
            </item>
            <item>
              <term>
                <para>The schemas are compatible, but the loaded result set schema contains fewer columns than does the DataTable.</para>
              </term>
              <description>
                <para>If a missing column has a default value defined or the column's data type is nullable, the <see cref="M:System.Data.DataTable.Load(System.Data.IDataReader)" /> method allows the rows to be added, substituting the default or null value for the missing column. If no default value or null can be used, then the Load method throws an exception. If no specific default value has been supplied, the Load method uses the null value as the implied default value.</para>
              </description>
            </item>
          </list>
          <para>Before considering the behavior of the Load method in terms of data operations, consider that each row within a <see cref="T:System.Data.DataTable" /> maintains both the current value and the original value for each column. These values may be equivalent, or may be different if the data in the row has been changed since filling the DataTable.  For more information, see <format type="text/html"><a href="2e6642c9-bfc6-425c-b3a7-e4912ffa6c1f">Row States and Row Versions</a></format>.</para>
          <para>This version of the Load method attempts to preserve the current values in each row, leaving the original value intact. (If you want finer control over the behavior of incoming data, see <see cref="M:System.Data.DataTable.Load(System.Data.IDataReader,System.Data.LoadOption)" />.) If the existing row and the incoming row contain corresponding primary key values, the row is processed using its current row state value, otherwise it's treated as a new row.</para>
          <para>In terms of event operations, the <see cref="E:System.Data.DataTable.RowChanging" /> event occurs before each row is changed, and the <see cref="E:System.Data.DataTable.RowChanged" /> event occurs after each row has been changed. In each case, the <see cref="P:System.Data.DataRowChangeEventArgs.Action" /> property of the <see cref="T:System.Data.DataRowChangeEventArgs" /> instance passed to the event handler contains information about the particular action associated with the event. This action value depends on the state of the row before the load operation. In each case, both events occur, and the action is the same for each. The action may be applied to either the current or original version of each row, or both, depending on the current row state.</para>
          <para>The following table displays behavior for the Load method. The final row (labeled "(Not present)") describes the behavior for incoming rows that don't match any existing row. Each cell in this table describes the current and original value for a field within a row, along with the <see cref="T:System.Data.DataRowState" /> for the value after the Load method has completed. In this case, the method doesn't allow you to indicate the load option, and uses the default, PreserveChanges. </para>
          <list type="table">
            <listheader>
              <item>
                <term>
                  <para>Existing DataRowState</para>
                </term>
                <description>
                  <para>Values after Load method, and event action</para>
                </description>
              </item>
            </listheader>
            <item>
              <term>
                <para>Added</para>
              </term>
              <description>
                <para>Current = &lt;Existing&gt;</para>
                <para>Original = &lt;Incoming&gt;</para>
                <para>State = &lt;Modified&gt;</para>
                <para>RowAction = ChangeOriginal</para>
              </description>
            </item>
            <item>
              <term>
                <para>Modified</para>
              </term>
              <description>
                <para>Current = &lt;Existing&gt;</para>
                <para>Original = &lt;Incoming&gt;</para>
                <para>State = &lt;Modified&gt;</para>
                <para>RowAction = ChangeOriginal</para>
              </description>
            </item>
            <item>
              <term>
                <para>Deleted</para>
              </term>
              <description>
                <para>Current = &lt;Not available&gt;</para>
                <para>Original = &lt;Incoming&gt;</para>
                <para>State = &lt;Deleted&gt;</para>
                <para>RowAction = ChangeOriginal</para>
              </description>
            </item>
            <item>
              <term>
                <para>Unchanged</para>
              </term>
              <description>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = &lt;Incoming&gt;</para>
                <para>State = &lt;Unchanged&gt;</para>
                <para>RowAction = ChangeCurrentAndOriginal</para>
              </description>
            </item>
            <item>
              <term>
                <para>(Not present)</para>
              </term>
              <description>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = &lt;Incoming&gt;</para>
                <para>State = &lt;Unchanged&gt;</para>
                <para>RowAction = ChangeCurrentAndOriginal</para>
              </description>
            </item>
          </list>
          <para>Values in a <see cref="T:System.Data.DataColumn" /> can be constrained through use of properties such as <see cref="P:System.Data.DataColumn.ReadOnly" /> and <see cref="P:System.Data.DataColumn.AutoIncrement" />. The Load method handles such columns in a manner that is consistent with the behavior defined by the column's properties. The read only constraint on a <see cref="T:System.Data.DataColumn" /> is applicable only for changes that occur in memory. The Load method's overwrites the read-only column values, if needed.</para>
          <para>To determine which version of the primary key field to use for comparing the current row with an incoming row, the Load method uses the original version of the primary key value within a row, if it exists. Otherwise, the Load method uses the current version of the primary key field.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Fills a <see cref="T:System.Data.DataTable" /> with values from a data source using the supplied <see cref="T:System.Data.IDataReader" />. If the <see cref="T:System.Data.DataTable" /> already contains rows, the incoming data from the data source is merged with the existing rows.</para>
        </summary>
        <param name="reader">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Data.IDataReader" /> that provides a result set.</param>
      </Docs>
    </Member>
    <Member MemberName="Load">
      <MemberSignature Language="C#" Value="public void Load (System.Data.IDataReader reader, System.Data.LoadOption loadOption);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="reader" Type="System.Data.IDataReader" />
        <Parameter Name="loadOption" Type="System.Data.LoadOption" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The Load method consumes the first result set from the loaded <see cref="T:System.Data.IDataReader" />, and after successful completion, sets the reader's position to the next result set, if any. When converting data, the Load method uses the same conversion rules as the <see cref="M:System.Data.Common.DbDataAdapter.Fill(System.Data.DataTable)" /> method.</para>
          <para>The Load method must take into account three specific issues when loading the data from an <see cref="T:System.Data.IDataReader" /> instance: schema, data, and event operations. When working with the schema, the Load method may encounter conditions as described in the following table. The schema operations take place for all imported result sets, even those containing no data.</para>
          <list type="table">
            <listheader>
              <item>
                <term>
                  <para>Condition</para>
                </term>
                <description>
                  <para>Behavior</para>
                </description>
              </item>
            </listheader>
            <item>
              <term>
                <para>The <see cref="T:System.Data.DataTable" /> has no schema.</para>
              </term>
              <description>
                <para>The Load method infers the schema based on the result set from the imported <see cref="T:System.Data.IDataReader" />.</para>
              </description>
            </item>
            <item>
              <term>
                <para>The <see cref="T:System.Data.DataTable" /> has a schema, but it is incompatible with the loaded schema.</para>
              </term>
              <description>
                <para>The Load method throws an exception corresponding to the particular error that occurs when attempting to load data into the incompatible schema.</para>
              </description>
            </item>
            <item>
              <term>
                <para>The schemas are compatible, but the loaded result set schema contains columns that don't exist in the DataTable.</para>
              </term>
              <description>
                <para>The Load method adds the extra columns to DataTable’s schema. The method throws an exception if corresponding columns in the <see cref="T:System.Data.DataTable" /> and the loaded result set are not value compatible. The method also retrieves constraint information from the result set for all added columns. Except for the case of Primary Key constraint, this constraint information is used only if the current <see cref="T:System.Data.DataTable" /> does not contain any columns at the start of the load operation. </para>
              </description>
            </item>
            <item>
              <term>
                <para>The schemas are compatible, but the loaded result set schema contains fewer columns than does the DataTable.</para>
              </term>
              <description>
                <para>If a missing column has a default value defined or the column's data type is nullable, the Load method allows the rows to be added, substituting the default or null value for the missing column. If no default value or null can be used, then the Load method throws an exception. If no specific default value has been supplied, the Load method uses the null value as the implied default value.</para>
              </description>
            </item>
          </list>
          <para>Before considering the behavior of the Load method in terms of data operations, consider that each row within a <see cref="T:System.Data.DataTable" /> maintains both the current value and the original value for each column. These values may be equivalent, or may be different if the data in the row has been changed since filling the DataTable. See <format type="text/html"><a href="2e6642c9-bfc6-425c-b3a7-e4912ffa6c1f">Row States and Row Versions</a></format> for more information.</para>
          <para>In this method call, the specified <see cref="T:System.Data.LoadOption" /> parameter influences the processing of the incoming data. How should the Load method handle loading rows that have the same primary key as existing rows? Should it modify current values, original values, or both? These issues, and more, are controlled by the <paramref name="loadOption" /> parameter. </para>
          <para>If the existing row and the incoming row contain corresponding primary key values, the row is processed using its current row state value, otherwise it's treated as a new row. </para>
          <para>In terms of event operations, the <see cref="E:System.Data.DataTable.RowChanging" /> event occurs before each row is changed, and the <see cref="E:System.Data.DataTable.RowChanged" /> event occurs after each row has been changed. In each case, the <see cref="P:System.Data.DataRowChangeEventArgs.Action" /> property of the <see cref="T:System.Data.DataRowChangeEventArgs" /> instance passed to the event handler contains information about the particular action associated with the event. This action value varies, depending on the state of the row before the load operation. In each case, both events occur, and the action is the same for each. The action may be applied to either the current or original version of each row, or both, depending on the current row state.</para>
          <para>The following table displays behavior for the Load method when called with each of the LoadOption values, and also shows how the values interact with the row state for the row being loaded. The final row (labeled "(Not present)") describes the behavior for incoming rows that don't match any existing row. Each cell in this table describes the current and original value for a field within a row, along with the <see cref="T:System.Data.DataRowState" /> for the value after the Load method has completed.</para>
          <list type="table">
            <listheader>
              <item>
                <term>
                  <para>Existing DataRowState</para>
                </term>
                <description>
                  <para>Upsert</para>
                </description>
                <description>
                  <para>OverwriteChanges</para>
                </description>
                <description>
                  <para>PreserveChanges (Default behavior)</para>
                </description>
              </item>
            </listheader>
            <item>
              <term>
                <para>Added</para>
              </term>
              <description>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = -&lt;Not available&gt;</para>
                <para>State = &lt;Added&gt;</para>
                <para>RowAction = Change</para>
              </description>
              <description>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = &lt;Incoming&gt;</para>
                <para>State = &lt;Unchanged&gt;</para>
                <para>RowAction = ChangeCurrentAndOriginal</para>
              </description>
              <description>
                <para>Current = &lt;Existing&gt;</para>
                <para>Original = &lt;Incoming&gt;</para>
                <para>State = &lt;Modified&gt;</para>
                <para>RowAction = ChangeOriginal</para>
              </description>
            </item>
            <item>
              <term>
                <para>Modified</para>
              </term>
              <description>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = &lt;Existing&gt;</para>
                <para>State = &lt;Modified&gt;</para>
                <para>RowAction = Change</para>
              </description>
              <description>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = &lt;Incoming&gt;</para>
                <para>State = &lt;Unchanged&gt;</para>
                <para>RowAction = ChangeCurrentAndOriginal</para>
              </description>
              <description>
                <para>Current = &lt;Existing&gt;</para>
                <para>Original = &lt;Incoming&gt;</para>
                <para>State = &lt;Modified&gt;</para>
                <para>RowAction =ChangeOriginal</para>
              </description>
            </item>
            <item>
              <term>
                <para>Deleted</para>
              </term>
              <description>
                <para>(Load does not affect deleted rows)</para>
                <para>Current = ---</para>
                <para>Original = &lt;Existing&gt;</para>
                <para>State = &lt;Deleted&gt;</para>
                <para>(New row is added with the following characteristics)</para>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = &lt;Not available&gt;</para>
                <para>State = &lt;Added&gt;</para>
                <para>RowAction = Add</para>
              </description>
              <description>
                <para>Undo delete and </para>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = &lt;Incoming&gt;</para>
                <para>State = &lt;Unchanged&gt;</para>
                <para>RowAction = ChangeCurrentAndOriginal</para>
              </description>
              <description>
                <para>Current = &lt;Not available&gt;</para>
                <para>Original = &lt;Incoming&gt;</para>
                <para>State = &lt;Deleted&gt;</para>
                <para>RowAction = ChangeOriginal</para>
              </description>
            </item>
            <item>
              <term>
                <para>Unchanged</para>
              </term>
              <description>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = &lt;Existing&gt;</para>
                <para>If new value is the same as the existing value then</para>
                <para>State = &lt;Unchanged&gt; </para>
                <para>RowAction = Nothing</para>
                <para>Else</para>
                <para> State = &lt;Modified&gt;</para>
                <para>RowAction = Change</para>
              </description>
              <description>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = &lt;Incoming&gt;</para>
                <para>State = &lt;Unchanged&gt;</para>
                <para>RowAction = ChangeCurrentAndOriginal</para>
              </description>
              <description>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = &lt;Incoming&gt;</para>
                <para>State = &lt;Unchanged&gt;</para>
                <para>RowAction = ChangeCurrentAndOriginal</para>
              </description>
            </item>
            <item>
              <term>
                <para>(Not present)</para>
              </term>
              <description>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = &lt;Not available&gt;</para>
                <para>State = &lt;Added&gt;</para>
                <para>RowAction = Add</para>
              </description>
              <description>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = &lt;Incoming&gt;</para>
                <para>State = &lt;Unchanged&gt;</para>
                <para>RowAction = ChangeCurrentAndOriginal</para>
              </description>
              <description>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = &lt;Incoming&gt;</para>
                <para>State = &lt;Unchanged&gt;</para>
                <para>RowAction = ChangeCurrentAndOriginal</para>
              </description>
            </item>
          </list>
          <para>Values in a <see cref="T:System.Data.DataColumn" /> can be constrained through use of properties such as <see cref="P:System.Data.DataColumn.ReadOnly" /> and <see cref="P:System.Data.DataColumn.AutoIncrement" />. The Load method handles such columns in a manner that is consistent with the behavior defined by the column's properties. The read only constraint on a <see cref="T:System.Data.DataColumn" /> is applicable only for changes that occur in memory. The Load method's overwrites the read-only column values, if needed.</para>
          <para>If you specify the OverwriteChanges or PreserveChanges options when calling the Load method, then the assumption is made that the incoming data is coming from the DataTable's primary data source, and the DataTable tracks changes and can propagate the changes back to the data source. If you select the Upsert option, it is assumed that the data is coming from one of a secondary data source, such as data provided by a middle-tier component, perhaps altered by a user. In this case, the assumption is that the intent is to aggregate data from one or more data sources in the DataTable, and then perhaps propagate the data back to the primary data source. The <see cref="T:System.Data.LoadOption" /> parameter is used for determining the specific version of the row that is to be used for primary key comparison. The table below provides the details.</para>
          <list type="table">
            <listheader>
              <item>
                <term>
                  <para>Load option</para>
                </term>
                <description>
                  <para>DataRow version used for primary key comparison</para>
                </description>
              </item>
            </listheader>
            <item>
              <term>
                <para>OverwriteChanges</para>
              </term>
              <description>
                <para>Original version, if it exists, otherwise Current version</para>
              </description>
            </item>
            <item>
              <term>
                <para>PreserveChanges</para>
              </term>
              <description>
                <para>Original version, if it exists, otherwise Current version</para>
              </description>
            </item>
            <item>
              <term>
                <para>Upsert</para>
              </term>
              <description>
                <para>Current version, if it exists, otherwise Original version</para>
              </description>
            </item>
          </list>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Fills a <see cref="T:System.Data.DataTable" /> with values from a data source using the supplied <see cref="T:System.Data.IDataReader" />. If the DataTable already contains rows, the incoming data from the data source is merged with the existing rows according to the value of the <paramref name="loadOption" /> parameter.</para>
        </summary>
        <param name="reader">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Data.IDataReader" /> that provides one or more result sets.</param>
        <param name="loadOption">
          <attribution license="cc4" from="Microsoft" modified="false" />A value from the <see cref="T:System.Data.LoadOption" /> enumeration that indicates how rows already in the <see cref="T:System.Data.DataTable" /> are combined with incoming rows that share the same primary key. </param>
      </Docs>
    </Member>
    <Member MemberName="Load">
      <MemberSignature Language="C#" Value="public virtual void Load (System.Data.IDataReader reader, System.Data.LoadOption loadOption, System.Data.FillErrorEventHandler errorHandler);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="reader" Type="System.Data.IDataReader" />
        <Parameter Name="loadOption" Type="System.Data.LoadOption" />
        <Parameter Name="errorHandler" Type="System.Data.FillErrorEventHandler" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The Load method consumes the first result set from the loaded <see cref="T:System.Data.IDataReader" />, and after successful completion, sets the reader's position to the next result set, if any. When converting data, the Load method uses the same conversion rules as the <see cref="M:System.Data.Common.DbDataAdapter.Fill(System.Data.DataTable)" /> method.</para>
          <para>The Load method must take into account three specific issues when loading the data from an <see cref="T:System.Data.IDataReader" /> instance: schema, data, and event operations. When working with the schema, the Load method may encounter conditions as described in the following table. The schema operations take place for all imported result sets, even those containing no data.</para>
          <list type="table">
            <listheader>
              <item>
                <term>
                  <para>Condition</para>
                </term>
                <description>
                  <para>Behavior</para>
                </description>
              </item>
            </listheader>
            <item>
              <term>
                <para>The <see cref="T:System.Data.DataTable" /> has no schema.</para>
              </term>
              <description>
                <para>The Load method infers the schema based on the result set from the imported <see cref="T:System.Data.IDataReader" />.</para>
              </description>
            </item>
            <item>
              <term>
                <para>The <see cref="T:System.Data.DataTable" /> has a schema, but it is incompatible with the loaded schema.</para>
              </term>
              <description>
                <para>The Load method throws an exception corresponding to the particular error that occurs when attempting to load data into the incompatible schema.</para>
              </description>
            </item>
            <item>
              <term>
                <para>The schemas are compatible, but the loaded result set schema contains columns that don't exist in the DataTable.</para>
              </term>
              <description>
                <para>The Load method adds the extra column(s) to DataTable’s schema. The method throws an exception if corresponding columns in the <see cref="T:System.Data.DataTable" /> and the loaded result set are not value compatible. The method also retrieves constraint information from the result set for all added columns. Except for the case of Primary Key constraint, this constraint information is used only if the current <see cref="T:System.Data.DataTable" /> does not contain any columns at the start of the load operation. </para>
              </description>
            </item>
            <item>
              <term>
                <para>The schemas are compatible, but the loaded result set schema contains fewer columns than does the DataTable.</para>
              </term>
              <description>
                <para>If a missing column has a default value defined or the column's data type is nullable, the Load method allows the rows to be added, substituting the default or null value for the missing column. If no default value or null can be used, then the Load method throws an exception. If no specific default value has been supplied, the Load method uses the null value as the implied default value.</para>
              </description>
            </item>
          </list>
          <para>Before considering the behavior of the Load method in terms of data operations, consider that each row within a <see cref="T:System.Data.DataTable" /> maintains both the current value and the original value for each column. These values may be equivalent, or may be different if the data in the row has been changed since filling the DataTable. See <format type="text/html"><a href="2e6642c9-bfc6-425c-b3a7-e4912ffa6c1f">Row States and Row Versions</a></format> for more information.</para>
          <para>In this method call, the specified <see cref="T:System.Data.LoadOption" /> parameter influences the processing of the incoming data. How should the Load method handle loading rows that have the same primary key as existing rows? Should it modify current values, original values, or both? These issues, and more, are controlled by the <paramref name="loadOption" /> parameter. </para>
          <para>If the existing row and the incoming row contain corresponding primary key values, the row is processed using its current row state value, otherwise it's treated as a new row. </para>
          <para>In terms of event operations, the <see cref="E:System.Data.DataTable.RowChanging" /> event occurs before each row is changed, and the <see cref="E:System.Data.DataTable.RowChanged" /> event occurs after each row has been changed. In each case, the <see cref="P:System.Data.DataRowChangeEventArgs.Action" /> property of the <see cref="T:System.Data.DataRowChangeEventArgs" /> instance passed to the event handler contains information about the particular action associated with the event. This action value varies, depending on the state of the row before the load operation. In each case, both events occur, and the action is the same for each. The action may be applied to either the current or original version of each row, or both, depending on the current row state.</para>
          <para>The following table displays behavior for the Load method when called with each of the LoadOption values, and also shows how the values interact with the row state for the row being loaded. The final row (labeled "(Not present)") describes the behavior for incoming rows that don't match any existing row. Each cell in this table describes the current and original value for a field within a row, along with the <see cref="T:System.Data.DataRowState" /> for the value after the Load method has completed.</para>
          <list type="table">
            <listheader>
              <item>
                <term>
                  <para>Existing DataRowState</para>
                </term>
                <description>
                  <para>Upsert</para>
                </description>
                <description>
                  <para>OverwriteChanges</para>
                </description>
                <description>
                  <para>PreserveChanges (Default behavior)</para>
                </description>
              </item>
            </listheader>
            <item>
              <term>
                <para>Added</para>
              </term>
              <description>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = -&lt;Not available&gt;</para>
                <para>State = &lt;Added&gt;</para>
                <para>RowAction = Change</para>
              </description>
              <description>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = &lt;Incoming&gt;</para>
                <para>State = &lt;Unchanged&gt;</para>
                <para>RowAction = ChangeCurrentAndOriginal</para>
              </description>
              <description>
                <para>Current = &lt;Existing&gt;</para>
                <para>Original = &lt;Incoming&gt;</para>
                <para>State = &lt;Modified&gt;</para>
                <para>RowAction = ChangeOriginal</para>
              </description>
            </item>
            <item>
              <term>
                <para>Modified</para>
              </term>
              <description>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = &lt;Existing&gt;</para>
                <para>State = &lt;Modified&gt;</para>
                <para>RowAction = Change</para>
              </description>
              <description>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = &lt;Incoming&gt;</para>
                <para>State = &lt;Unchanged&gt;</para>
                <para>RowAction = ChangeCurrentAndOriginal</para>
              </description>
              <description>
                <para>Current = &lt;Existing&gt;</para>
                <para>Original = &lt;Incoming&gt;</para>
                <para>State = &lt;Modified&gt;</para>
                <para>RowAction =ChangeOriginal</para>
              </description>
            </item>
            <item>
              <term>
                <para>Deleted</para>
              </term>
              <description>
                <para>(Load does not affect deleted rows)</para>
                <para>Current = ---</para>
                <para>Original = &lt;Existing&gt;</para>
                <para>State = &lt;Deleted&gt;</para>
                <para>(New row is added with the following characteristics)</para>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = &lt;Not available&gt;</para>
                <para>State = &lt;Added&gt;</para>
                <para>RowAction = Add</para>
              </description>
              <description>
                <para>Undo delete and </para>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = &lt;Incoming&gt;</para>
                <para>State = &lt;Unchanged&gt;</para>
                <para>RowAction = ChangeCurrentAndOriginal</para>
              </description>
              <description>
                <para>Current = &lt;Not available&gt;</para>
                <para>Original = &lt;Incoming&gt;</para>
                <para>State = &lt;Deleted&gt;</para>
                <para>RowAction = ChangeOriginal</para>
              </description>
            </item>
            <item>
              <term>
                <para>Unchanged</para>
              </term>
              <description>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = &lt;Existing&gt;</para>
                <para>If new value is the same as the existing value then</para>
                <para>State = &lt;Unchanged&gt; </para>
                <para>RowAction = Nothing</para>
                <para>Else</para>
                <para> State = &lt;Modified&gt;</para>
                <para>RowAction = Change</para>
              </description>
              <description>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = &lt;Incoming&gt;</para>
                <para>State = &lt;Unchanged&gt;</para>
                <para>RowAction = ChangeCurrentAndOriginal</para>
              </description>
              <description>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = &lt;Incoming&gt;</para>
                <para>State = &lt;Unchanged&gt;</para>
                <para>RowAction = ChangeCurrentAndOriginal</para>
              </description>
            </item>
            <item>
              <term>
                <para>(Not present)</para>
              </term>
              <description>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = &lt;Not available&gt;</para>
                <para>State = &lt;Added&gt;</para>
                <para>RowAction = Add</para>
              </description>
              <description>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = &lt;Incoming&gt;</para>
                <para>State = &lt;Unchanged&gt;</para>
                <para>RowAction = ChangeCurrentAndOriginal</para>
              </description>
              <description>
                <para>Current = &lt;Incoming&gt;</para>
                <para>Original = &lt;Incoming&gt;</para>
                <para>State = &lt;Unchanged&gt;</para>
                <para>RowAction = ChangeCurrentAndOriginal</para>
              </description>
            </item>
          </list>
          <para>Values in a <see cref="T:System.Data.DataColumn" /> can be constrained through use of properties such as <see cref="P:System.Data.DataColumn.ReadOnly" /> and <see cref="P:System.Data.DataColumn.AutoIncrement" />. The Load method handles such columns in a manner that is consistent with the behavior defined by the column's properties. The read only constraint on a <see cref="T:System.Data.DataColumn" /> is applicable only for changes that occur in memory. The Load method's overwrites the read-only column values, if needed.</para>
          <para>If you specify the OverwriteChanges or PreserveChanges options when calling the Load method, then the assumption is made that the incoming data is coming from the DataTable's primary data source, and the DataTable tracks changes and can propagate the changes back to the data source. If you select the Upsert option, it is assumed that the data is coming from one of a secondary data source, such as data provided by a middle-tier component, perhaps altered by a user. In this case, the assumption is that the intent is to aggregate data from one or more data sources in the DataTable, and then perhaps propagate the data back to the primary data source. The <see cref="T:System.Data.LoadOption" /> parameter is used for determining the specific version of the row that is to be used for primary key comparison. The table below provides the details.</para>
          <list type="table">
            <listheader>
              <item>
                <term>
                  <para>Load option</para>
                </term>
                <description>
                  <para>DataRow version used for primary key comparison</para>
                </description>
              </item>
            </listheader>
            <item>
              <term>
                <para>OverwriteChanges</para>
              </term>
              <description>
                <para>Original version, if it exists, otherwise Current version</para>
              </description>
            </item>
            <item>
              <term>
                <para>PreserveChanges</para>
              </term>
              <description>
                <para>Original version, if it exists, otherwise Current version</para>
              </description>
            </item>
            <item>
              <term>
                <para>Upsert</para>
              </term>
              <description>
                <para>Current version, if it exists, otherwise Original version</para>
              </description>
            </item>
          </list>
          <para>The <paramref name="errorHandler" /> parameter is a <see cref="T:System.Data.FillErrorEventHandler" /> delegate that refers to a procedure that is called when an error occurs while loading data. The <see cref="T:System.Data.FillErrorEventArgs" /> parameter passed to the procedure provides properties that allow you to retrieve information about the error that occurred, the current row of data, and the <see cref="T:System.Data.DataTable" /> being filled. Using this delegate mechanism, rather than a simpler try/catch block, allows you to determine the error, handle the situation, and continue processing if you like. The <see cref="T:System.Data.FillErrorEventArgs" /> parameter supplies a <see cref="P:System.Data.FillErrorEventArgs.Continue" /> property: set this property to true to indicate that you have handled the error and wish to continue processing. Set the property to false to indicate that you wish to halt processing. Be aware that setting the property to false causes the code that triggered the problem to throw an exception.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Fills a <see cref="T:System.Data.DataTable" /> with values from a data source using the supplied <see cref="T:System.Data.IDataReader" /> using an error-handling delegate.</para>
        </summary>
        <param name="reader">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Data.IDataReader" /> that provides a result set.</param>
        <param name="loadOption">
          <attribution license="cc4" from="Microsoft" modified="false" />A value from the <see cref="T:System.Data.LoadOption" /> enumeration that indicates how rows already in the <see cref="T:System.Data.DataTable" /> are combined with incoming rows that share the same primary key. </param>
        <param name="errorHandler">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Data.FillErrorEventHandler" /> delegate to call when an error occurs while loading data.</param>
      </Docs>
    </Member>
    <Member MemberName="LoadDataRow">
      <MemberSignature Language="C#" Value="public System.Data.DataRow LoadDataRow (object[] values, bool fAcceptChanges);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataRow</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="values" Type="System.Object[]" />
        <Parameter Name="fAcceptChanges" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Data.DataTable.LoadDataRow(System.Object[],System.Boolean)" /> method takes an array of values and finds the matching value(s) in the primary key column(s).</para>
          <para>If a column has a default value, pass a null value in the array to set the default value for that column. Similarly, if a column has its <see cref="P:System.Data.DataColumn.AutoIncrement" /> property set to true, pass a null value in the array to set the automatically generated value for the row.</para>
          <para>If the <paramref name="fAcceptChanges" /> parameter is true or not specified, the new data is added and then <see cref="M:System.Data.DataTable.AcceptChanges" /> is called to accept all changes in the <see cref="T:System.Data.DataTable" />; if the argument is false, newly added rows are marked as insertions, and changes to existing rows are marked as modifications.</para>
          <para>Exceptions can also occur during either a <see cref="E:System.Data.DataTable.ColumnChanging" /> or <see cref="E:System.Data.DataTable.RowChanging" /> event. If an exception occurs, the row is not added to the table.</para>
          <para>Use <see cref="M:System.Data.DataTable.LoadDataRow(System.Object[],System.Boolean)" /> in conjunction with <see cref="M:System.Data.DataTable.BeginLoadData" /> and <see cref="M:System.Data.DataTable.EndLoadData" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Finds and updates a specific row. If no matching row is found, a new row is created using the given values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The new <see cref="T:System.Data.DataRow" />.</para>
        </returns>
        <param name="values">
          <attribution license="cc4" from="Microsoft" modified="false" />An array of values used to create the new row. </param>
        <param name="fAcceptChanges">
          <attribution license="cc4" from="Microsoft" modified="false" />true to accept changes; otherwise false. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="LoadDataRow">
      <MemberSignature Language="C#" Value="public System.Data.DataRow LoadDataRow (object[] values, System.Data.LoadOption loadOption);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Data.DataRow</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="values" Type="System.Object[]" />
        <Parameter Name="loadOption" Type="System.Data.LoadOption" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.Data.DataTable.LoadDataRow(System.Object[],System.Boolean)" /> method takes an array of values and finds the matching value(s) in the primary key column(s).</para>
          <para>If a column has a default value, pass a null value in the array to set the default value for that column. Similarly, if a column has its <see cref="P:System.Data.DataColumn.AutoIncrement" /> property set to true, pass a null value in the array to set the automatically generated value for the row.</para>
          <para>The value of the <paramref name="loadOption" /> parameter is used to determine how the values in the array are applied to an existing row. For example, if <paramref name="loadOption" /> is set to OverwriteChanges, the Original and Current values of each column are replaced with the values in the incoming row and the RowState property is set to Unchanged.</para>
          <para>Exceptions can also occur during either a <see cref="E:System.Data.DataTable.ColumnChanging" /> or <see cref="E:System.Data.DataTable.RowChanging" /> event. If an exception occurs, the row is not added to the table.</para>
          <para>Use <see cref="M:System.Data.DataTable.LoadDataRow(System.Object[],System.Boolean)" /> in conjunction with <see cref="M:System.Data.DataTable.BeginLoadData" /> and <see cref="M:System.Data.DataTable.EndLoadData" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Finds and updates a specific row. If no matching row is found, a new row is created using the given values.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The new <see cref="T:System.Data.DataRow" />.</para>
        </returns>
        <param name="values">
          <attribution license="cc4" from="Microsoft" modified="false" />An array of values used to create the new row. </param>
        <param name="loadOption">
          <attribution license="cc4" from="Microsoft" modified="false" />Used to determine how the array values are applied to the corresponding values in an existing row. </param>
      </Docs>
    </Member>
    <Member MemberName="Locale">
      <MemberSignature Language="C#" Value="public System.Globalization.CultureInfo Locale { set; get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Globalization.CultureInfo</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <value>To be added: an object of type 'Globalization.CultureInfo'</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Globalization.CultureInfo" /> represents the software preferences of a particular culture or community.</para>
          <para>When used for string comparisons, the <see cref="T:System.Globalization.CultureInfo" /> affects sorting, comparisons, and filtering.</para>
          <block subset="none" type="note">
            <para>In columns that contain expressions, the <see cref="F:System.StringComparison.InvariantCulture" /> is used. The <see cref="F:System.StringComparison.CurrentCulture" /> is ignored.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the locale information used to compare strings within the table.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="Merge">
      <MemberSignature Language="C#" Value="public void Merge (System.Data.DataTable table);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="table" Type="System.Data.DataTable" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The Merge method is used to merge two <see cref="T:System.Data.DataTable" /> objects that have largely similar schemas. A merge is typically used on a client application to incorporate the latest changes from a data source into an existing <see cref="T:System.Data.DataTable" />. This allows the client application to have a refreshed <see cref="T:System.Data.DataTable" /> with the latest data from the data source.</para>
          <para>The merge operation takes into account only the original table, and the table to be merged. Child tables are not affected or included. If a table has one or more child tables, defined as part of a relationship, each child table must be merged individually. </para>
          <para>The Merge method is typically called at the end of a series of procedures that involve validating changes, reconciling errors, updating the data source with the changes, and finally refreshing the existing <see cref="T:System.Data.DataTable" />.</para>
          <para>When performing a merge, changes made to the existing data before the merge are preserved by default during the merge operation. Developers can modify this behavior by calling one of the other two overloads for this method, and specifying a false value for the <paramref name="preserveChanges" /> parameter.</para>
          <para>In a client application, it is usual to have a single button that the user can click that gathers the changed data and validates it before sending it back to a middle tier component. In this scenario, the <see cref="M:System.Data.DataTable.GetChanges" /> method is first invoked. That method returns a second <see cref="T:System.Data.DataTable" /> optimized for validating and merging. This second <see cref="T:System.Data.DataTable" /> object contains only the <see cref="T:System.Data.DataRow" /> objects that were changed, resulting in a subset of the original <see cref="T:System.Data.DataTable" />. This subset is generally smaller and thus more efficiently passed back to a middle tier component. The middle tier component then updates the original data source with the changes through stored procedures. The middle tier can then send back either a new <see cref="T:System.Data.DataTable" /> that includes original data and the latest data from the data source (by running the original query again), or it can send back the subset with any changes that have been made to it from the data source. (For example, if the data source automatically creates unique primary key values, these values can be propagated back to the client application.) In either case, the returned <see cref="T:System.Data.DataTable" /> can be merged back into the client application's original <see cref="T:System.Data.DataTable" /> with the <see cref="M:System.Data.DataTable.Merge" /> method.</para>
          <para>When merging a new source <see cref="T:System.Data.DataTable" /> into the target, any source rows with a <see cref="T:System.Data.DataRowState" /> value of Unchanged, Modified, or Deleted, is matched to target rows with the same primary key values. Source rows with a <see cref="T:System.Data.DataRowState" /> value of Added are matched to new target rows with the same primary key values as the new source rows.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Merge the specified <see cref="T:System.Data.DataTable" /> with the current <see cref="T:System.Data.DataTable" />.</para>
        </summary>
        <param name="table">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Data.DataTable" /> to be merged with the current <see cref="T:System.Data.DataTable" />.</param>
      </Docs>
    </Member>
    <Member MemberName="Merge">
      <MemberSignature Language="C#" Value="public void Merge (System.Data.DataTable table, bool preserveChanges);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="table" Type="System.Data.DataTable" />
        <Parameter Name="preserveChanges" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The Merge method is used to merge two <see cref="T:System.Data.DataTable" /> objects that have largely similar schemas. A merge is typically used on a client application to incorporate the latest changes from a data source into an existing <see cref="T:System.Data.DataTable" />. This allows the client application to have a refreshed <see cref="T:System.Data.DataTable" /> with the latest data from the data source.</para>
          <para>The merge operation takes into account only the original table, and the table to be merged. Child tables are not affected or included. If a table has one or more child tables, defined as part of a relationship, each child table must be merged individually. </para>
          <para>The Merge method is typically called at the end of a series of procedures that involve validating changes, reconciling errors, updating the data source with the changes, and finally refreshing the existing <see cref="T:System.Data.DataTable" />.</para>
          <para>When performing a merge, changes made to the existing data before the merge are preserved during the merge operation unless the developer specifies false for the <paramref name="preserveChanges" /> parameter. If the <paramref name="preserveChanges" /> parameter is set to true, incoming values do not overwrite existing values in the Current row version of the existing row. If the <paramref name="preserveChanges" /> parameter is set to false, incoming values do overwrite the existing values in the Current row version of the existing row. For more information about row versions, see <format type="text/html"><a href="2e6642c9-bfc6-425c-b3a7-e4912ffa6c1f">Row States and Row Versions</a></format>.</para>
          <para>In a client application, it is usual to have a single button that the user can click that gathers the changed data and validates it before sending it back to a middle tier component. In this scenario, the <see cref="M:System.Data.DataTable.GetChanges" /> method is first invoked. That method returns a second <see cref="T:System.Data.DataTable" /> optimized for validating and merging. This second <see cref="T:System.Data.DataTable" /> object contains only the <see cref="T:System.Data.DataTable" /> and <see cref="T:System.Data.DataRow" /> objects that were changed, resulting in a subset of the original <see cref="T:System.Data.DataTable" />. This subset is generally smaller, and thus this subset is more efficiently passed back to a middle tier component. The middle tier component then updates the original data source with the changes through stored procedures. The middle tier can then send back either a new <see cref="T:System.Data.DataTable" /> that includes original data and the latest data from the data source (by running the original query again), or it can send back the subset with any changes that have been made to it from the data source. (For example, if the data source automatically creates unique primary key values, these values can be propagated back to the client application.) In either case, the returned <see cref="T:System.Data.DataTable" /> can be merged back into the client application's original <see cref="T:System.Data.DataTable" /> with the <see cref="M:System.Data.DataTable.Merge" /> method.</para>
          <para>When merging a new source <see cref="T:System.Data.DataTable" /> into the target, any source rows with a <see cref="T:System.Data.DataRowState" /> value of Unchanged, Modified, or Deleted are matched to target rows with the same primary key values. Source rows with a <see cref="T:System.Data.DataRowState" /> value of Added are matched to new target rows with the same primary key values as the new source rows.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Merge the specified <see cref="T:System.Data.DataTable" /> with the current DataTable, indicating whether to preserve changes in the current DataTable.</para>
        </summary>
        <param name="table">
          <attribution license="cc4" from="Microsoft" modified="false" />The DataTable to be merged with the current DataTable.</param>
        <param name="preserveChanges">
          <attribution license="cc4" from="Microsoft" modified="false" />true, to preserve changes in the current DataTable; otherwise false. </param>
      </Docs>
    </Member>
    <Member MemberName="Merge">
      <MemberSignature Language="C#" Value="public void Merge (System.Data.DataTable table, bool preserveChanges, System.Data.MissingSchemaAction missingSchemaAction);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="table" Type="System.Data.DataTable" />
        <Parameter Name="preserveChanges" Type="System.Boolean" />
        <Parameter Name="missingSchemaAction" Type="System.Data.MissingSchemaAction" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The Merge method is used to merge two <see cref="T:System.Data.DataTable" /> objects that have largely similar schemas. A merge is typically used on a client application to incorporate the latest changes from a data source into an existing <see cref="T:System.Data.DataTable" />. This allows the client application to have a refreshed <see cref="T:System.Data.DataTable" /> with the latest data from the data source.</para>
          <para>The merge operation takes into account only the original table, and the table to be merged. Child tables are not affected or included. If a table has one or more child tables, defined as part of a relationship, each child table must be merged individually. </para>
          <para>The Merge method is typically called at the end of a series of procedures that involve validating changes, reconciling errors, updating the data source with the changes, and finally refreshing the existing <see cref="T:System.Data.DataTable" />.</para>
          <para>When performing a merge, changes made to the existing data before the merge are preserved during the merge operation unless the developer specifies false for the <paramref name="preserveChanges" /> parameter. If the <paramref name="preserveChanges" /> parameter is set to true, incoming values do not overwrite existing values in the Current row version of the existing row. If the <paramref name="preserveChanges" /> parameter is set to false, incoming values do overwrite the existing values in the Current row version of the existing row. For more information about row versions, see <format type="text/html"><a href="2e6642c9-bfc6-425c-b3a7-e4912ffa6c1f">Row States and Row Versions</a></format>.</para>
          <para>In a client application, it is usual to have a single button that the user can click that gathers the changed data and validates it before sending it back to a middle tier component. In this scenario, the <see cref="M:System.Data.DataTable.GetChanges" /> method is first invoked. That method returns a second <see cref="T:System.Data.DataTable" /> optimized for validating and merging. This second <see cref="T:System.Data.DataTable" /> object contains only the <see cref="T:System.Data.DataTable" /> and <see cref="T:System.Data.DataRow" /> objects that were changed, resulting in a subset of the original <see cref="T:System.Data.DataTable" />. This subset is generally smaller, and thus this subset is more efficiently passed back to a middle tier component. The middle tier component then updates the original data source with the changes through stored procedures. The middle tier can then send back either a new <see cref="T:System.Data.DataTable" /> that includes original data and the latest data from the data source (by running the original query again), or it can send back the subset with any changes that have been made to it from the data source. (For example, if the data source automatically creates unique primary key values, these values can be propagated back to the client application.) In either case, the returned <see cref="T:System.Data.DataTable" /> can be merged back into the client application's original <see cref="T:System.Data.DataTable" /> with the <see cref="M:System.Data.DataTable.Merge" /> method.</para>
          <para>When the <see cref="M:System.Data.DataTable.Merge" /> method is called, the schemas of the two <see cref="T:System.Data.DataTable" /> objects are compared, because it is possible that the schemas may have been changed. For example, in a business-to-business scenario, new columns may have been added to an XML schema by an automated process. If the source <see cref="T:System.Data.DataTable" /> contains schema elements (added <see cref="T:System.Data.DataColumn" /> objects) that are missing in the target, the schema elements can be added to the target by setting the <paramref name="missingSchemaAction" /> argument to MissingSchemaAction.Add. In that case, the merged <see cref="T:System.Data.DataTable" /> contains the added schema and data.</para>
          <para>After merging schemas, the data is merged.</para>
          <para>When merging a new source <see cref="T:System.Data.DataTable" /> into the target, any source rows with a <see cref="T:System.Data.DataRowState" /> value of Unchanged, Modified, or Deleted are matched to target rows with the same primary key values. Source rows with a <see cref="T:System.Data.DataRowState" /> value of Added are matched to new target rows with the same primary key values as the new source rows.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Merge the specified <see cref="T:System.Data.DataTable" /> with the current DataTable, indicating whether to preserve changes and how to handle missing schema in the current DataTable.</para>
        </summary>
        <param name="table">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Data.DataTable" /> to be merged with the current <see cref="T:System.Data.DataTable" />.</param>
        <param name="preserveChanges">
          <attribution license="cc4" from="Microsoft" modified="false" />true, to preserve changes in the current <see cref="T:System.Data.DataTable" />; otherwise false.</param>
        <param name="missingSchemaAction">
          <attribution license="cc4" from="Microsoft" modified="false" />One of the <see cref="T:System.Data.MissingSchemaAction" /> values. </param>
      </Docs>
    </Member>
    <Member MemberName="MinimumCapacity">
      <MemberSignature Language="C#" Value="public int MinimumCapacity { set; get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <value>To be added: an object of type 'int'</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="P:System.Data.DataTable.MinimumCapacity" /> allows the system to create an appropriate set of resources before fetching data. In a situation when performance is critical, setting this property can optimize performance.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the initial starting size for this table.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.DefaultValue(50)</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="Namespace">
      <MemberSignature Language="C#" Value="public string Namespace { set; get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <value>To be added: an object of type 'string'</value>
        <remarks>To be added</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the namespace for the XML representation of the data stored in the <see cref="T:System.Data.DataTable" />.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="NewRow">
      <MemberSignature Language="C#" Value="public System.Data.DataRow NewRow ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataRow</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>You must use the <see cref="M:System.Data.DataTable.NewRow" /> method to create new <see cref="T:System.Data.DataRow" /> objects with the same schema as the <see cref="T:System.Data.DataTable" />. After creating a <see cref="T:System.Data.DataRow" />, you can add it to the <see cref="T:System.Data.DataRowCollection" />, through the <see cref="T:System.Data.DataTable" /> object's <see cref="P:System.Data.DataTable.Rows" /> property. When you use <see cref="M:System.Data.DataTable.NewRow" /> to create new rows, the rows must be added to or deleted from the data table before you call <see cref="M:System.Data.DataTable.Clear" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Creates a new <see cref="T:System.Data.DataRow" /> with the same schema as the table.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Data.DataRow" /> with the same schema as the <see cref="T:System.Data.DataTable" />.</para>
        </returns>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="NewRowArray">
      <MemberSignature Language="C#" Value="protected System.Data.DataRow[] NewRowArray (int size);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Data.DataRow[]</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="size" Type="System.Int32" />
      </Parameters>
      <Docs>
        <remarks>To be added.</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Returns an array of <see cref="T:System.Data.DataRow" />.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The new array.</para>
        </returns>
        <param name="size">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Int32" /> value that describes the size of the array.</param>
      </Docs>
    </Member>
    <Member MemberName="NewRowFromBuilder">
      <MemberSignature Language="C#" Value="protected virtual System.Data.DataRow NewRowFromBuilder (System.Data.DataRowBuilder builder);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataRow</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="builder" Type="System.Data.DataRowBuilder" />
      </Parameters>
      <Docs>
        <remarks>To be added</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Creates a new row from an existing row.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A <see cref="T:System.Data.DataRow" /> derived class.</para>
        </returns>
        <param name="builder">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Data.DataRowBuilder" /> object. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="OnColumnChanged">
      <MemberSignature Language="C#" Value="protected virtual void OnColumnChanged (System.Data.DataColumnChangeEventArgs e);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="e" Type="System.Data.DataColumnChangeEventArgs" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Raising an event invokes the event handler through a delegate. For an overview, see <format type="text/html"><a href="f2adaf01-1ed1-42e1-8c31-8d467e7e0ee2">Raising an Event</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Raises the <see cref="E:System.Data.DataTable.ColumnChanged" /> event.</para>
        </summary>
        <param name="e">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Data.DataColumnChangeEventArgs" /> that contains the event data. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="OnColumnChanging">
      <MemberSignature Language="C#" Value="protected virtual void OnColumnChanging (System.Data.DataColumnChangeEventArgs e);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="e" Type="System.Data.DataColumnChangeEventArgs" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Raising an event invokes the event handler through a delegate. For an overview, see <format type="text/html"><a href="f2adaf01-1ed1-42e1-8c31-8d467e7e0ee2">Raising an Event</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Raises the <see cref="E:System.Data.DataTable.ColumnChanging" /> event.</para>
        </summary>
        <param name="e">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Data.DataColumnChangeEventArgs" /> that contains the event data. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="OnPropertyChanging">
      <MemberSignature Language="C#" Value="protected virtual void OnPropertyChanging (System.ComponentModel.PropertyChangedEventArgs pcevent);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="pcevent" Type="System.ComponentModel.PropertyChangedEventArgs" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Raising an event invokes the event handler through a delegate. For an overview, see <format type="text/html"><a href="f2adaf01-1ed1-42e1-8c31-8d467e7e0ee2">Raising an Event</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Raises the <see cref="E:System.ComponentModel.INotifyPropertyChanged.PropertyChanged" /> event.</para>
        </summary>
        <param name="pcevent">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.ComponentModel.PropertyChangedEventArgs" /> that contains the event data. </param>
      </Docs>
    </Member>
    <Member MemberName="OnRemoveColumn">
      <MemberSignature Language="C#" Value="protected virtual void OnRemoveColumn (System.Data.DataColumn column);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="column" Type="System.Data.DataColumn" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Raising an event invokes the event handler through a delegate. For more information, see <format type="text/html"><a href="f2adaf01-1ed1-42e1-8c31-8d467e7e0ee2">Raising an Event</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Notifies the <see cref="T:System.Data.DataTable" /> that a <see cref="T:System.Data.DataColumn" /> is being removed.</para>
        </summary>
        <param name="column">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Data.DataColumn" /> being removed. </param>
      </Docs>
    </Member>
    <Member MemberName="OnRowChanged">
      <MemberSignature Language="C#" Value="protected virtual void OnRowChanged (System.Data.DataRowChangeEventArgs e);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="e" Type="System.Data.DataRowChangeEventArgs" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Raising an event invokes the event handler through a delegate. For an overview, see <format type="text/html"><a href="f2adaf01-1ed1-42e1-8c31-8d467e7e0ee2">Raising an Event</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Raises the <see cref="E:System.Data.DataTable.RowChanged" /> event.</para>
        </summary>
        <param name="e">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Data.DataRowChangeEventArgs" /> that contains the event data. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="OnRowChanging">
      <MemberSignature Language="C#" Value="protected virtual void OnRowChanging (System.Data.DataRowChangeEventArgs e);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="e" Type="System.Data.DataRowChangeEventArgs" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Raising an event invokes the event handler through a delegate. For an overview, see <format type="text/html"><a href="f2adaf01-1ed1-42e1-8c31-8d467e7e0ee2">Raising an Event</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Raises the <see cref="E:System.Data.DataTable.RowChanging" /> event.</para>
        </summary>
        <param name="e">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Data.DataRowChangeEventArgs" /> that contains the event data. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="OnRowDeleted">
      <MemberSignature Language="C#" Value="protected virtual void OnRowDeleted (System.Data.DataRowChangeEventArgs e);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="e" Type="System.Data.DataRowChangeEventArgs" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Raising an event invokes the event handler through a delegate. For an overview, see <format type="text/html"><a href="f2adaf01-1ed1-42e1-8c31-8d467e7e0ee2">Raising an Event</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Raises the <see cref="E:System.Data.DataTable.RowDeleted" /> event.</para>
        </summary>
        <param name="e">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Data.DataRowChangeEventArgs" /> that contains the event data. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="OnRowDeleting">
      <MemberSignature Language="C#" Value="protected virtual void OnRowDeleting (System.Data.DataRowChangeEventArgs e);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="e" Type="System.Data.DataRowChangeEventArgs" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Raising an event invokes the event handler through a delegate. For an overview, see <format type="text/html"><a href="f2adaf01-1ed1-42e1-8c31-8d467e7e0ee2">Raising an Event</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Raises the <see cref="E:System.Data.DataTable.RowDeleting" /> event.</para>
        </summary>
        <param name="e">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Data.DataRowChangeEventArgs" /> that contains the event data. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="OnTableCleared">
      <MemberSignature Language="C#" Value="protected virtual void OnTableCleared (System.Data.DataTableClearEventArgs e);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="e" Type="System.Data.DataTableClearEventArgs" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Raises the <see cref="E:System.Data.DataTable.TableCleared" /> event, which is fired immediately after all rows have been successfully cleared but before the <see cref="M:System.Data.DataTable.Clear" /> method returns control back to the caller.</para>
          <para>Raising an event invokes the event handler through a delegate. For an overview, see <format type="text/html"><a href="f2adaf01-1ed1-42e1-8c31-8d467e7e0ee2">Raising an Event</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Raises the <see cref="E:System.Data.DataTable.TableCleared" /> event.</para>
        </summary>
        <param name="e">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Data.DataTableClearEventArgs" /> that contains the event data. </param>
      </Docs>
    </Member>
    <Member MemberName="OnTableClearing">
      <MemberSignature Language="C#" Value="protected virtual void OnTableClearing (System.Data.DataTableClearEventArgs e);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="e" Type="System.Data.DataTableClearEventArgs" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Raises the <see cref="E:System.Data.DataTable.TableClearing" /> event, which is fired before processing of the <see cref="M:System.Data.DataTable.Clear" /> operation begins.</para>
          <para>Raising an event invokes the event handler through a delegate. For an overview, see <format type="text/html"><a href="f2adaf01-1ed1-42e1-8c31-8d467e7e0ee2">Raising an Event</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Raises the <see cref="E:System.Data.DataTable.TableClearing" /> event.</para>
        </summary>
        <param name="e">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Data.DataTableClearEventArgs" /> that contains the event data. </param>
      </Docs>
    </Member>
    <Member MemberName="OnTableNewRow">
      <MemberSignature Language="C#" Value="protected virtual void OnTableNewRow (System.Data.DataTableNewRowEventArgs e);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="e" Type="System.Data.DataTableNewRowEventArgs" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Raises the <see cref="E:System.Data.DataTable.TableNewRow" /> event, which fires after a new <see cref="T:System.Data.DataRow" /> has been created using <see cref="M:System.Data.DataTable.NewRow" />. </para>
          <para>Raising an event invokes the event handler through a delegate. For an overview, see <format type="text/html"><a href="f2adaf01-1ed1-42e1-8c31-8d467e7e0ee2">Raising an Event</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Raises the <see cref="E:System.Data.DataTable.TableNewRow" /> event.</para>
        </summary>
        <param name="e">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Data.DataTableNewRowEventArgs" /> that contains the event data. </param>
      </Docs>
    </Member>
    <Member MemberName="ParentRelations">
      <MemberSignature Language="C#" Value="public System.Data.DataRelationCollection ParentRelations { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataRelationCollection</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added: an object of type 'DataRelationCollection'</value>
        <remarks>To be added</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the collection of parent relations for this <see cref="T:System.Data.DataTable" />.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Hidden)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.ComponentModel.Browsable(false)</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="Prefix">
      <MemberSignature Language="C#" Value="public string Prefix { set; get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <value>To be added: an object of type 'string'</value>
        <remarks>To be added</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the namespace for the XML representation of the data stored in the <see cref="T:System.Data.DataTable" />.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.DefaultValue("")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="PrimaryKey">
      <MemberSignature Language="C#" Value="public System.Data.DataColumn[] PrimaryKey { set; get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataColumn[]</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <value>To be added: an object of type 'DataColumn []'</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The primary key of a table must be unique to identify the record in the table. It's also possible to have a table with a primary key made up of two or more columns. This occurs when a single column can't contain enough unique values. For example, a two column primary key might consist of a "FirstName" and "LastName" column. Because primary keys can be made up of more than one column, the <see cref="P:System.Data.DataTable.PrimaryKey" /> property consists of an array of <see cref="T:System.Data.DataColumn" /> objects.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets an array of columns that function as primary keys for the data table.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.TypeConverter("System.Data.PrimaryKeyTypeConverter, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.ComponentModel.Editor("Microsoft.VSDesigner.Data.Design.PrimaryKeyEditor, Microsoft.VSDesigner, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "System.Drawing.Design.UITypeEditor, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="ReadXml">
      <MemberSignature Language="C#" Value="public System.Data.XmlReadMode ReadXml (System.IO.Stream stream);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Data.XmlReadMode</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="stream" Type="System.IO.Stream" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The current <see cref="T:System.Data.DataTable" /> and its descendents are loaded with the data from the supplied <see cref="T:System.IO.Stream" />. The behavior of this method is identical to that of the <see cref="M:System.Data.DataSet.ReadXml(System.IO.Stream)" /> method, except that in this case, data is loaded only for the current table and its descendants.</para>
          <para>The <see cref="M:System.Data.DataTable.ReadXml(System.IO.Stream)" /> method provides a way to read either data only, or both data and schema into a <see cref="T:System.Data.DataTable" /> from an XML document, whereas the <see cref="Overload:System.Data.DataTable.ReadXmlSchema" /> method reads only the schema. </para>
          <para>Note that the same is true for the <see cref="Overload:System.Data.DataTable.WriteXml" /> and <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> methods, respectively. To write XML data, or both schema and data from the DataTable, use the WriteXml method. To write just the schema, use the WriteXmlSchema method.</para>
          <block subset="none" type="note">
            <para>An <see cref="T:System.InvalidOperationException" /> will be thrown if a column type in the DataRow being read from or written to implements <see cref="T:System.Dynamic.IDynamicMetaObjectProvider" /> and does not implement <see cref="T:System.Xml.Serialization.IXmlSerializable" />.</para>
          </block>
          <para>If an in-line schema is specified, the in-line schema is used to extend the existing relational structure prior to loading the data. If there are any conflicts (for example, the same column in the same table defined with different data types) an exception is raised.</para>
          <para>If no in-line schema is specified, the relational structure is extended through inference, as necessary, according to the structure of the XML document. If the schema cannot be extended through inference in order to expose all data, an exception is raised.</para>
          <block subset="none" type="note">
            <para>The DataSet does not associate an XML element with its corresponding DataColumn or DataTable when legal XML characters like ("_") are escaped in the serialized XML. The DataSet itself only escapes illegal XML characters in XML element names and hence can only consume the same. When legal characters in XML element name are escaped, the element is ignored while processing.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Reads XML schema and data into the <see cref="T:System.Data.DataTable" /> using the specified <see cref="T:System.IO.Stream" />.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="T:System.Data.XmlReadMode" /> used to read the data.</para>
        </returns>
        <param name="stream">
          <attribution license="cc4" from="Microsoft" modified="false" />An object that derives from <see cref="T:System.IO.Stream" /></param>
      </Docs>
    </Member>
    <Member MemberName="ReadXml">
      <MemberSignature Language="C#" Value="public System.Data.XmlReadMode ReadXml (System.IO.TextReader reader);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Data.XmlReadMode</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="reader" Type="System.IO.TextReader" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The current <see cref="T:System.Data.DataTable" /> and its descendents are loaded with the data from the supplied <see cref="T:System.IO.TextReader" />. The behavior of this method is identical to that of the <see cref="M:System.Data.DataSet.ReadXml(System.IO.TextReader)" /> method, except that in this case, data is loaded only for the current table and its descendants.</para>
          <para>The <see cref="M:System.Data.DataTable.ReadXml(System.IO.TextReader)" /> method provides a way to read either data only, or both data and schema into a <see cref="T:System.Data.DataTable" /> from an XML document, whereas the <see cref="Overload:System.Data.DataTable.ReadXmlSchema" /> method reads only the schema.</para>
          <para>Note that the same is true for the <see cref="Overload:System.Data.DataTable.WriteXml" /> and <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> methods, respectively. To write XML data, or both schema and data from the DataTable, use the WriteXml method. To write just the schema, use the WriteXmlSchema method.</para>
          <block subset="none" type="note">
            <para>An <see cref="T:System.InvalidOperationException" /> will be thrown if a column type in the DataRow being read from or written to implements <see cref="T:System.Dynamic.IDynamicMetaObjectProvider" /> and does not implement <see cref="T:System.Xml.Serialization.IXmlSerializable" />.</para>
          </block>
          <para>If an in-line schema is specified, the in-line schema is used to extend the existing relational structure prior to loading the data. If there are any conflicts (for example, the same column in the same table defined with different data types) an exception is raised.</para>
          <para>If no in-line schema is specified, the relational structure is extended through inference, as necessary, according to the structure of the XML document. If the schema cannot be extended through inference in order to expose all data, an exception is raised.</para>
          <block subset="none" type="note">
            <para>The DataSet does not associate an XML element with its corresponding DataColumn or DataTable when legal XML characters like ("_") are escaped in the serialized XML. The DataSet itself only escapes illegal XML characters in XML element names and hence can only consume the same. When legal characters in XML element name are escaped, the element is ignored while processing.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Reads XML schema and data into the <see cref="T:System.Data.DataTable" /> using the specified <see cref="T:System.IO.TextReader" />.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="T:System.Data.XmlReadMode" /> used to read the data.</para>
        </returns>
        <param name="reader">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.IO.TextReader" /> that will be used to read the data.</param>
      </Docs>
    </Member>
    <Member MemberName="ReadXml">
      <MemberSignature Language="C#" Value="public System.Data.XmlReadMode ReadXml (string fileName);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Data.XmlReadMode</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fileName" Type="System.String" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The current <see cref="T:System.Data.DataTable" /> and its descendents are loaded with the data from the file named in the supplied <see cref="T:System.String" />. The behavior of this method is identical to that of the <see cref="M:System.Data.DataSet.ReadXml(System.String)" /> method, except that in this case, data is loaded only for the current table and its descendants.</para>
          <para>The <see cref="M:System.Data.DataTable.ReadXml(System.String)" /> method provides a way to read either data only, or both data and schema into a <see cref="T:System.Data.DataTable" /> from an XML document, whereas the <see cref="Overload:System.Data.DataTable.ReadXmlSchema" /> method reads only the schema.</para>
          <para>Note that the same is true for the <see cref="Overload:System.Data.DataTable.WriteXml" /> and <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> methods, respectively. To write XML data, or both schema and data from the DataTable, use the WriteXml method. To write just the schema, use the WriteXmlSchema method.</para>
          <block subset="none" type="note">
            <para>An <see cref="T:System.InvalidOperationException" /> will be thrown if a column type in the DataRow being read from or written to implements <see cref="T:System.Dynamic.IDynamicMetaObjectProvider" /> and does not implement <see cref="T:System.Xml.Serialization.IXmlSerializable" />.</para>
          </block>
          <para>If an in-line schema is specified, the in-line schema is used to extend the existing relational structure prior to loading the data. If there are any conflicts (for example, the same column in the same table defined with different data types) an exception is raised.</para>
          <para>If no in-line schema is specified, the relational structure is extended through inference, as necessary, according to the structure of the XML document. If the schema cannot be extended through inference in order to expose all data, an exception is raised.</para>
          <block subset="none" type="note">
            <para>The DataSet does not associate an XML element with its corresponding DataColumn or DataTable when legal XML characters like ("_") are escaped in the serialized XML. The DataSet itself only escapes illegal XML characters in XML element names and hence can only consume the same. When legal characters in XML element name are escaped, the element is ignored while processing.</para>
          </block>
          <code>using System.Data;
public class A {
   static void Main(string[] args) {
      DataTable tabl = new DataTable("mytable");
      tabl.Columns.Add(new DataColumn("id", typeof(int)));
      for (int i = 0; i &lt; 10; i++) {
         DataRow row = tabl.NewRow();
         row["id"] = i;
         tabl.Rows.Add(row);
      }
      tabl.WriteXml("f.xml", XmlWriteMode.WriteSchema);
      DataTable newt = new DataTable();
      newt.ReadXml("f.xml");
   }
}</code>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Reads XML schema and data into the <see cref="T:System.Data.DataTable" /> from the specified file.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="T:System.Data.XmlReadMode" /> used to read the data.</para>
        </returns>
        <param name="fileName">
          <attribution license="cc4" from="Microsoft" modified="false" />The name of the file from which to read the data. </param>
      </Docs>
    </Member>
    <Member MemberName="ReadXml">
      <MemberSignature Language="C#" Value="public System.Data.XmlReadMode ReadXml (System.Xml.XmlReader reader);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Data.XmlReadMode</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="reader" Type="System.Xml.XmlReader" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The current <see cref="T:System.Data.DataTable" /> and its descendents are loaded with the data from the file named in the supplied <see cref="T:System.Xml.XmlReader" />. The behavior of this method is identical to that of the <see cref="M:System.Data.DataTable.ReadXml(System.Xml.XmlReader)" /> method, except that in this case, data is loaded only for the current table and its descendants.</para>
          <para>The <see cref="M:System.Data.DataTable.ReadXml(System.Xml.XmlReader)" /> method provides a way to read either data only, or both data and schema into a <see cref="T:System.Data.DataTable" /> from an XML document, whereas the <see cref="Overload:System.Data.DataTable.ReadXmlSchema" /> method reads only the schema.</para>
          <para>Note that the same is true for the <see cref="Overload:System.Data.DataTable.WriteXml" /> and <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> methods, respectively. To write XML data, or both schema and data from the DataTable, use the WriteXml method. To write just the schema, use the WriteXmlSchema method.</para>
          <block subset="none" type="note">
            <para>An <see cref="T:System.InvalidOperationException" /> will be thrown if a column type in the DataRow being read from or written to implements <see cref="T:System.Dynamic.IDynamicMetaObjectProvider" /> and does not implement <see cref="T:System.Xml.Serialization.IXmlSerializable" />.</para>
          </block>
          <para>If an in-line schema is specified, the in-line schema is used to extend the existing relational structure prior to loading the data. If there are any conflicts (for example, the same column in the same table defined with different data types) an exception is raised.</para>
          <para>If no in-line schema is specified, the relational structure is extended through inference, as necessary, according to the structure of the XML document. If the schema cannot be extended through inference in order to expose all data, an exception is raised.</para>
          <block subset="none" type="note">
            <para>The DataSet does not associate an XML element with its corresponding DataColumn or DataTable when legal XML characters like ("_") are escaped in the serialized XML. The DataSet itself only escapes illegal XML characters in XML element names and hence can only consume the same. When legal characters in XML element name are escaped, the element is ignored while processing.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Reads XML Schema and Data into the <see cref="T:System.Data.DataTable" /> using the specified <see cref="T:System.Xml.XmlReader" />. </para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="T:System.Data.XmlReadMode" /> used to read the data.</para>
        </returns>
        <param name="reader">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Xml.XmlReader" /> that will be used to read the data. </param>
      </Docs>
    </Member>
    <Member MemberName="ReadXml_internal">
      <MemberSignature Language="C#" Value="public System.Data.XmlReadMode ReadXml_internal (System.Xml.XmlReader reader, bool serializable);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Data.XmlReadMode</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="reader" Type="System.Xml.XmlReader" />
        <Parameter Name="serializable" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <param name="reader">To be added.</param>
        <param name="serializable">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="ReadXmlSchema">
      <MemberSignature Language="C#" Value="public void ReadXmlSchema (System.IO.Stream stream);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="stream" Type="System.IO.Stream" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Use the <see cref="M:System.Data.DataTable.ReadXmlSchema(System.IO.Stream)" /> method to create the schema for a <see cref="T:System.Data.DataTable" />. The schema includes table, relation, and constraint definitions.</para>
          <para>To write a schema to an XML document, use the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method.</para>
          <para>The XML schema is interpreted according to the XSD standard.</para>
          <para>Data corruption can occur if the msdata:DataType and the xs:type types do not match. No exception will be thrown.</para>
          <para>The ReadXmlSchema method is generally invoked before invoking the <see cref="Overload:System.Data.DataTable.ReadXml" /> method which is used to fill the <see cref="T:System.Data.DataTable" />.</para>
          <para>To create a nested relation using XML schema, use implicit nested elements. You can also configure the nested relation to use explicit column names. Elements must be implicitly nested in order for the corresponding DataTables to participate in a nested relation.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Reads an XML schema into the <see cref="T:System.Data.DataTable" /> using the specified stream.</para>
        </summary>
        <param name="stream">
          <attribution license="cc4" from="Microsoft" modified="false" />The stream used to read the schema. </param>
      </Docs>
    </Member>
    <Member MemberName="ReadXmlSchema">
      <MemberSignature Language="C#" Value="public void ReadXmlSchema (System.IO.TextReader reader);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="reader" Type="System.IO.TextReader" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Use the <see cref="M:System.Data.DataTable.ReadXmlSchema(System.IO.TextReader)" /> method to create the schema for a <see cref="T:System.Data.DataTable" />. The schema includes table, relation, and constraint definitions.</para>
          <para>To write a schema to an XML document, use the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method.</para>
          <para>The XML schema is interpreted according to the XSD standard.</para>
          <para>Data corruption can occur if the msdata:DataType and the xs:type types do not match. No exception will be thrown.</para>
          <para>The ReadXmlSchema method is generally invoked before invoking the <see cref="Overload:System.Data.DataTable.ReadXml" /> method which is used to fill the <see cref="T:System.Data.DataTable" />.</para>
          <para>To create a nested relation using XML schema, use implicit nested elements. You can also reconfigure the nested relation to use explicit column names. Elements must be implicitly nested in order for the corresponding DataTables to participate in a nested relation.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Reads an XML schema into the <see cref="T:System.Data.DataTable" /> using the specified <see cref="T:System.IO.TextReader" />.</para>
        </summary>
        <param name="reader">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.IO.TextReader" /> used to read the schema information. </param>
      </Docs>
    </Member>
    <Member MemberName="ReadXmlSchema">
      <MemberSignature Language="C#" Value="public void ReadXmlSchema (string fileName);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fileName" Type="System.String" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Use the <see cref="M:System.Data.DataTable.ReadXmlSchema(System.String)" /> method to create the schema for a <see cref="T:System.Data.DataTable" />. The schema includes table, relation, and constraint definitions.</para>
          <para>To write a schema to an XML document, use the <see cref="M:System.Data.DataTable.WriteXmlSchema(System.IO.Stream)" /> method.</para>
          <para>The XML schema is interpreted according to the XSD standard.</para>
          <para>Data corruption can occur if the msdata:DataType and the xs:type types do not match. No exception will be thrown.</para>
          <para>The ReadXmlSchema method is generally invoked before invoking the <see cref="M:System.Data.DataTable.ReadXml(System.IO.Stream)" /> method which is used to fill the DataTable.</para>
          <para>To create a nested relation using XML schema, use implicit nested elements. You can also reconfigure the nested relation to use explicit column names. Elements must be implicitly nested in order for the corresponding DataTables to participate in a nested relation.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Reads an XML schema into the <see cref="T:System.Data.DataTable" /> from the specified file.</para>
        </summary>
        <param name="fileName">
          <attribution license="cc4" from="Microsoft" modified="false" />The name of the file from which to read the schema information. </param>
      </Docs>
    </Member>
    <Member MemberName="ReadXmlSchema">
      <MemberSignature Language="C#" Value="public void ReadXmlSchema (System.Xml.XmlReader reader);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="reader" Type="System.Xml.XmlReader" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Use the <see cref="M:System.Data.DataTable.ReadXmlSchema(System.Xml.XmlReader)" /> method to create the schema for a <see cref="T:System.Data.DataTable" />. The schema includes table, relation, and constraint definitions.</para>
          <para>To write a schema to an XML document, use the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method.</para>
          <para>The XML schema is interpreted according to the XSD standard.</para>
          <para>Data corruption can occur if the msdata:DataType and the xs:type types do not match. No exception will be thrown.</para>
          <para>The ReadXmlSchema method is generally invoked before invoking the <see cref="Overload:System.Data.DataTable.ReadXml" /> method which is used to fill the <see cref="T:System.Data.DataTable" />.</para>
          <block subset="none" type="note">
            <para>The way to create a nested relation using XML schema is to have implicit nested elements. Additionally, the nested relation could be re-wired, to use explicit column names. It is mandatory for elements to be implicitly nested for the corresponding DataTables to participate in a nested relation.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Reads an XML schema into the <see cref="T:System.Data.DataTable" /> using the specified <see cref="T:System.Xml.XmlReader" />.</para>
        </summary>
        <param name="reader">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Xml.XmlReader" /> used to read the schema information. </param>
      </Docs>
    </Member>
    <Member MemberName="ReadXmlSerializable">
      <MemberSignature Language="C#" Value="protected virtual void ReadXmlSerializable (System.Xml.XmlReader reader);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="reader" Type="System.Xml.XmlReader" />
      </Parameters>
      <Docs>
        <remarks>To be added.</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Reads from an XML stream.</para>
        </summary>
        <param name="reader">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Xml.XmlReader" /> object.</param>
      </Docs>
    </Member>
    <Member MemberName="RejectChanges">
      <MemberSignature Language="C#" Value="public void RejectChanges ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>When <see cref="M:System.Data.DataTable.RejectChanges" /> is called, any <see cref="T:System.Data.DataRow" /> objects that are still in edit-mode cancel their edits. New rows are removed. Rows with the <see cref="T:System.Data.DataRowState" /> set to Modified or Deleted return back to their original state.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Rolls back all changes that have been made to the table since it was loaded, or the last time <see cref="M:System.Data.DataTable.AcceptChanges" /> was called.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="RemotingFormat">
      <MemberSignature Language="C#" Value="public System.Data.SerializationFormat RemotingFormat { set; get; }" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.DefaultValue(System.Data.SerializationFormat.Xml)</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Data.SerializationFormat</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the serialization format.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="Reset">
      <MemberSignature Language="C#" Value="public virtual void Reset ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>To be added</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Resets the <see cref="T:System.Data.DataTable" /> to its original state. Reset removes all data, indexes, relations, and columns of the table. If a DataSet includes a DataTable, the table will still be part of the DataSet after the table is reset.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="RowChanged">
      <MemberSignature Language="C#" Value="public event System.Data.DataRowChangeEventHandler RowChanged;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataRowChangeEventHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>For more information, see <format type="text/html"><a href="62f404a5-13ea-4b93-a29f-55b74a16c9d3">Working with DataTable Events</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Occurs after a <see cref="T:System.Data.DataRow" /> has been changed successfully.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="RowChanging">
      <MemberSignature Language="C#" Value="public event System.Data.DataRowChangeEventHandler RowChanging;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataRowChangeEventHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>For more information, see <format type="text/html"><a href="62f404a5-13ea-4b93-a29f-55b74a16c9d3">Working with DataTable Events</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Occurs when a <see cref="T:System.Data.DataRow" /> is changing.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="RowDeleted">
      <MemberSignature Language="C#" Value="public event System.Data.DataRowChangeEventHandler RowDeleted;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataRowChangeEventHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>For more information, see <format type="text/html"><a href="62f404a5-13ea-4b93-a29f-55b74a16c9d3">Working with DataTable Events</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Occurs after a row in the table has been deleted.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="RowDeleting">
      <MemberSignature Language="C#" Value="public event System.Data.DataRowChangeEventHandler RowDeleting;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataRowChangeEventHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>For more information, see <format type="text/html"><a href="62f404a5-13ea-4b93-a29f-55b74a16c9d3">Working with DataTable Events</a></format>.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Occurs before a row in the table is about to be deleted.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="Rows">
      <MemberSignature Language="C#" Value="public System.Data.DataRowCollection Rows { get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataRowCollection</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added: an object of type 'DataRowCollection'</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>To create a new <see cref="T:System.Data.DataRow" />, you must use the <see cref="M:System.Data.DataTable.NewRow" /> method to return a new object. Such an object is automatically configured according to the schema defined for the <see cref="T:System.Data.DataTable" /> through its collection of <see cref="T:System.Data.DataColumn" /> objects. After creating a new row and setting the values for each column in the row, add the row to the <see cref="T:System.Data.DataRowCollection" /> using the Add method.</para>
          <para>Each <see cref="T:System.Data.DataRow" /> in the collection represents a row of data in the table. To commit a change to the value of a column in the row, you must invoke the <see cref="M:System.Data.DataTable.AcceptChanges" /> method.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the collection of rows that belong to this table.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.Browsable(false)</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="Select">
      <MemberSignature Language="C#" Value="public System.Data.DataRow[] Select ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataRow[]</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>To ensure the proper sort order, specify sort criteria with <see cref="M:System.Data.DataTable.Select(System.String,System.String)" /> or <see cref="M:System.Data.DataTable.Select(System.String,System.String,System.Data.DataViewRowState)" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets an array of all <see cref="T:System.Data.DataRow" /> objects.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An array of <see cref="T:System.Data.DataRow" /> objects.</para>
        </returns>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="Select">
      <MemberSignature Language="C#" Value="public System.Data.DataRow[] Select (string filterExpression);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataRow[]</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="filterExpression" Type="System.String" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>To create the <paramref name="filterExpression" /> argument, use the same rules that apply to the <see cref="T:System.Data.DataColumn" /> class's <see cref="P:System.Data.DataColumn.Expression" /> property value for creating filters.</para>
          <para>To ensure the proper sort order, specify sort criteria with <see cref="M:System.Data.DataTable.Select(System.String,System.String)" /> or <see cref="M:System.Data.DataTable.Select(System.String,System.String,System.Data.DataViewRowState)" />.</para>
          <para>If the column on the filter contains a null value, it will not be part of the result.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets an array of all <see cref="T:System.Data.DataRow" /> objects that match the filter criteria.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An array of <see cref="T:System.Data.DataRow" /> objects.</para>
        </returns>
        <param name="filterExpression">
          <attribution license="cc4" from="Microsoft" modified="false" />The criteria to use to filter the rows. For examples on how to filter rows, see <see cref="http://www.csharp-examples.net/dataview-rowfilter/">DataView RowFilter Syntax [C#]</see>.</param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="Select">
      <MemberSignature Language="C#" Value="public System.Data.DataRow[] Select (string filterExpression, string sort);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataRow[]</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="filterExpression" Type="System.String" />
        <Parameter Name="sort" Type="System.String" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>To form the <paramref name="filterExpression" /> argument, use the same rules for creating the <see cref="T:System.Data.DataColumn" /> class's <see cref="P:System.Data.DataColumn.Expression" /> property value. The <paramref name="Sort" /> argument also uses the same rules for creating class's <see cref="P:System.Data.DataColumn.Expression" /> strings.</para>
          <para>If the column on the filter contains a null value, it will not be part of the result.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets an array of all <see cref="T:System.Data.DataRow" /> objects that match the filter criteria, in the specified sort order.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An array of <see cref="T:System.Data.DataRow" /> objects matching the filter expression.</para>
        </returns>
        <param name="filterExpression">
          <attribution license="cc4" from="Microsoft" modified="false" />The criteria to use to filter the rows. For examples on how to filter rows, see <see cref="http://www.csharp-examples.net/dataview-rowfilter/">DataView RowFilter Syntax [C#]</see>.</param>
        <param name="sort">
          <attribution license="cc4" from="Microsoft" modified="false" />A string specifying the column and sort direction. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="Select">
      <MemberSignature Language="C#" Value="public System.Data.DataRow[] Select (string filterExpression, string sort, System.Data.DataViewRowState recordStates);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.DataRow[]</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="filterExpression" Type="System.String" />
        <Parameter Name="sort" Type="System.String" />
        <Parameter Name="recordStates" Type="System.Data.DataViewRowState" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>To form the <paramref name="filterExpression" /> argument, use the same rules for creating the <see cref="T:System.Data.DataColumn" /> class's <see cref="P:System.Data.DataColumn.Expression" /> property value. The <paramref name="Sort" /> argument also uses the same rules for creating class's <see cref="P:System.Data.DataColumn.Expression" /> strings.</para>
          <para>If the column on the filter contains a null value, it will not be part of the result.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets an array of all <see cref="T:System.Data.DataRow" /> objects that match the filter in the order of the sort that match the specified state.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An array of <see cref="T:System.Data.DataRow" /> objects.</para>
        </returns>
        <param name="filterExpression">
          <attribution license="cc4" from="Microsoft" modified="false" />The criteria to use to filter the rows. For examples on how to filter rows, see <see cref="http://www.csharp-examples.net/dataview-rowfilter/">DataView RowFilter Syntax [C#]</see>.</param>
        <param name="sort">
          <attribution license="cc4" from="Microsoft" modified="false" />A string specifying the column and sort direction. </param>
        <param name="recordStates">
          <attribution license="cc4" from="Microsoft" modified="false" />One of the <see cref="T:System.Data.DataViewRowState" /> values.</param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="Site">
      <MemberSignature Language="C#" Value="public override System.ComponentModel.ISite Site { set; get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.ComponentModel.ISite</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <value>To be added: an object of type 'ComponentModel.ISite'</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Sites bind a <see cref="T:System.ComponentModel.Component" /> to a <see cref="T:System.ComponentModel.Container" /> and enable communication between them, as well as provide a way for the container to manage its components.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets an <see cref="T:System.ComponentModel.ISite" /> for the <see cref="T:System.Data.DataTable" />.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Hidden)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.ComponentModel.Browsable(false)</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="System.ComponentModel.IListSource.ContainsListCollection">
      <MemberSignature Language="C#" Value="bool System.ComponentModel.IListSource.ContainsListCollection { get; }" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This member is an explicit interface member implementation. It can be used only when the <see cref="T:System.Data.DataTable" /> instance is cast to an <see cref="T:System.ComponentModel.IListSource" /> interface.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>For a description of this member, see <see cref="P:System.ComponentModel.IListSource.ContainsListCollection" />.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="System.ComponentModel.IListSource.GetList">
      <MemberSignature Language="C#" Value="System.Collections.IList IListSource.GetList ();" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Collections.IList</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This member is an explicit interface member implementation. It can be used only when the <see cref="T:System.Data.DataTable" /> instance is cast to an <see cref="T:System.ComponentModel.IListSource" /> interface.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>For a description of this member, see <see cref="M:System.ComponentModel.IListSource.GetList" />.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>An <see cref="T:System.Collections.IList" /> that can be bound to a data source from the object.</para>
        </returns>
      </Docs>
    </Member>
    <Member MemberName="System.Runtime.Serialization.ISerializable.GetObjectData">
      <MemberSignature Language="C#" Value="void ISerializable.GetObjectData (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="info" Type="System.Runtime.Serialization.SerializationInfo" />
        <Parameter Name="context" Type="System.Runtime.Serialization.StreamingContext" />
      </Parameters>
      <Docs>
        <remarks>To be added.</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Populates a serialization information object with the data needed to serialize the <see cref="T:System.Data.DataTable" />.</para>
        </summary>
        <param name="info">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Runtime.Serialization.SerializationInfo" /> object.</param>
        <param name="context">
          <attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Runtime.Serialization.StreamingContext" /> object.</param>
      </Docs>
    </Member>
    <Member MemberName="System.Xml.Serialization.IXmlSerializable.GetSchema">
      <MemberSignature Language="C#" Value="System.Xml.Schema.XmlSchema IXmlSerializable.GetSchema ();" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Xml.Schema.XmlSchema</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This member is an explicit interface member implementation. It can be used only when the <see cref="T:System.Data.DataSet" /> instance is cast to an <see cref="T:System.Xml.Serialization.IXmlSerializable" /> interface.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>For a description of this member, see <see cref="M:System.Xml.Serialization.IXmlSerializable.GetSchema" />.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para> An <see cref="T:System.Xml.Schema.XmlSchema" /> that describes the XML representation of the object that is produced by the <see cref="M:System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter)" /> method and consumed by the <see cref="M:System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader)" /> method.</para>
        </returns>
      </Docs>
    </Member>
    <Member MemberName="System.Xml.Serialization.IXmlSerializable.ReadXml">
      <MemberSignature Language="C#" Value="void IXmlSerializable.ReadXml (System.Xml.XmlReader reader);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="reader" Type="System.Xml.XmlReader" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This member is an explicit interface member implementation. It can be used only when the <see cref="T:System.Data.DataSet" /> instance is cast to an <see cref="T:System.Xml.Serialization.IXmlSerializable" /> interface.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>For a description of this member, see <see cref="M:System.Xml.Serialization.IXmlSerializable.ReadXml(System.Xml.XmlReader)" />.</para>
        </summary>
        <param name="reader">
          <attribution license="cc4" from="Microsoft" modified="false" />An XmlReader.</param>
      </Docs>
    </Member>
    <Member MemberName="System.Xml.Serialization.IXmlSerializable.WriteXml">
      <MemberSignature Language="C#" Value="void IXmlSerializable.WriteXml (System.Xml.XmlWriter writer);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="writer" Type="System.Xml.XmlWriter" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This member is an explicit interface member implementation. It can be used only when the <see cref="T:System.Data.DataSet" /> instance is cast to an <see cref="T:System.Xml.Serialization.IXmlSerializable" /> interface.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>For a description of this member, see <see cref="M:System.Xml.Serialization.IXmlSerializable.WriteXml(System.Xml.XmlWriter)" />.</para>
        </summary>
        <param name="writer">
          <attribution license="cc4" from="Microsoft" modified="false" />An XmlWriter.</param>
      </Docs>
    </Member>
    <Member MemberName="TableCleared">
      <MemberSignature Language="C#" Value="public event System.Data.DataTableClearEventHandler TableCleared;" />
      <MemberType>Event</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Data.DataTableClearEventHandler</ReturnType>
      </ReturnValue>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="E:System.Data.DataTable.TableCleared" /> event is fired immediately after all rows have been successfully cleared but before the <see cref="M:System.Data.DataTable.Clear" /> method returns control back to the caller. The <see cref="E:System.Data.DataTable.TableCleared" /> event is not fired if there are any exceptions during the clear operation. </para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Occurs after a <see cref="T:System.Data.DataTable" /> is cleared.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="TableClearing">
      <MemberSignature Language="C#" Value="public event System.Data.DataTableClearEventHandler TableClearing;" />
      <MemberType>Event</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Data.DataTableClearEventHandler</ReturnType>
      </ReturnValue>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="E:System.Data.DataTable.TableClearing" /> event is fired before processing of the <see cref="M:System.Data.DataTable.Clear" /> operation begins. This event is always fired when the <see cref="M:System.Data.DataTable.Clear" /> method is invoked, even if the table contains zero rows.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Occurs when a <see cref="T:System.Data.DataTable" /> is cleared.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="TableName">
      <MemberSignature Language="C#" Value="public string TableName { set; get; }" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
      </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.Data.DataTable.TableName" /> is used to return this table from the parent <see cref="T:System.Data.DataSet" /> object's <see cref="T:System.Data.DataTableCollection" /> (returned by the <see cref="P:System.Data.DataSet.Tables" /> property).</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets the name of the <see cref="T:System.Data.DataTable" />.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.RefreshProperties(System.ComponentModel.RefreshProperties.All)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.ComponentModel.DefaultValue("")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="TableNewRow">
      <MemberSignature Language="C#" Value="public event System.Data.DataTableNewRowEventHandler TableNewRow;" />
      <MemberType>Event</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Data.DataTableNewRowEventHandler</ReturnType>
      </ReturnValue>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Fires after a new <see cref="T:System.Data.DataRow" /> has been created using <see cref="M:System.Data.DataTable.NewRow" />. This event is fired before the invoked NewRow method returns. The new <see cref="T:System.Data.DataRow" /> instance is detached; it has not been added to the collection.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Occurs when a new <see cref="T:System.Data.DataRow" /> is inserted.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName="ToString">
      <MemberSignature Language="C#" Value="public override string ToString ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the <see cref="P:System.Data.DataTable.TableName" /> and <see cref="P:System.Data.DataTable.DisplayExpression" /> for the <see cref="T:System.Data.DataTable" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the <see cref="P:System.Data.DataTable.TableName" /> and <see cref="P:System.Data.DataTable.DisplayExpression" />, if there is one as a concatenated string.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>A string consisting of the <see cref="P:System.Data.DataTable.TableName" /> and the <see cref="P:System.Data.DataTable.DisplayExpression" /> values.</para>
        </returns>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="WriteXml">
      <MemberSignature Language="C#" Value="public void WriteXml (System.IO.Stream stream);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="stream" Type="System.IO.Stream" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="Overload:System.Data.DataTable.WriteXml" /> method provides a way to write either data only, or both data and schema from a <see cref="T:System.Data.DataTable" /> into an XML document, whereas the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method writes only the schema. To write both data and schema, use one of the overloads that includes the <see cref="T:System.Data.XmlWriteMode" /> parameter, and set its value to WriteSchema.</para>
          <para>Note that the same is true for the <see cref="Overload:System.Data.DataTable.ReadXml" /> and <see cref="Overload:System.Data.DataTable.ReadXmlSchema" /> methods, respectively. To read XML data, or both schema and data into the DataTable, use the ReadXml method. To read just the schema, use the ReadXmlSchema method.</para>
          <block subset="none" type="note">
            <para>An <see cref="T:System.InvalidOperationException" /> will be thrown if a column type in the DataRow being read from or written to implements <see cref="T:System.Dynamic.IDynamicMetaObjectProvider" /> and does not implement <see cref="T:System.Xml.Serialization.IXmlSerializable" />.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Writes the current contents of the <see cref="T:System.Data.DataTable" /> as XML using the specified <see cref="T:System.IO.Stream" />.</para>
        </summary>
        <param name="stream">
          <attribution license="cc4" from="Microsoft" modified="false" />The stream to which the data will be written. </param>
      </Docs>
    </Member>
    <Member MemberName="WriteXml">
      <MemberSignature Language="C#" Value="public void WriteXml (System.IO.TextWriter writer);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="writer" Type="System.IO.TextWriter" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="Overload:System.Data.DataTable.WriteXml" /> method provides a way to write either data only, or both data and schema from a <see cref="T:System.Data.DataTable" /> into an XML document, whereas the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method writes only the schema. To write both data and schema, use one of the overloads that includes the <see cref="T:System.Data.XmlWriteMode" /> parameter, and set its value to WriteSchema.</para>
          <para>Note that the same is true for the <see cref="Overload:System.Data.DataTable.ReadXml" /> and <see cref="Overload:System.Data.DataTable.ReadXmlSchema" /> methods, respectively. To read XML data, or both schema and data into the DataTable, use the ReadXml method. To read just the schema, use the ReadXmlSchema method.</para>
          <block subset="none" type="note">
            <para>An <see cref="T:System.InvalidOperationException" /> will be thrown if a column type in the DataRow being read from or written to implements <see cref="T:System.Dynamic.IDynamicMetaObjectProvider" /> and does not implement <see cref="T:System.Xml.Serialization.IXmlSerializable" />.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Writes the current contents of the <see cref="T:System.Data.DataTable" /> as XML using the specified <see cref="T:System.IO.TextWriter" />.</para>
        </summary>
        <param name="writer">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.IO.TextWriter" /> with which to write the content. </param>
      </Docs>
    </Member>
    <Member MemberName="WriteXml">
      <MemberSignature Language="C#" Value="public void WriteXml (string fileName);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fileName" Type="System.String" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="Overload:System.Data.DataTable.WriteXml" /> method provides a way to write either data only, or both data and schema from a <see cref="T:System.Data.DataTable" /> into an XML document, whereas the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method writes only the schema. To write both data and schema, use one of the overloads that includes the <see cref="T:System.Data.XmlWriteMode" /> parameter, and set its value to WriteSchema.</para>
          <para>Note that the same is true for the <see cref="Overload:System.Data.DataTable.ReadXml" /> and <see cref="Overload:System.Data.DataTable.ReadXmlSchema" /> methods, respectively. To read XML data, or both schema and data into the DataTable, use the ReadXml method. To read just the schema, use the ReadXmlSchema method.</para>
          <block subset="none" type="note">
            <para>An <see cref="T:System.InvalidOperationException" /> will be thrown if a column type in the DataRow being read from or written to implements <see cref="T:System.Dynamic.IDynamicMetaObjectProvider" /> and does not implement <see cref="T:System.Xml.Serialization.IXmlSerializable" />.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Writes the current contents of the <see cref="T:System.Data.DataTable" /> as XML using the specified file.</para>
        </summary>
        <param name="fileName">
          <attribution license="cc4" from="Microsoft" modified="false" />The file to which to write the XML data.</param>
      </Docs>
    </Member>
    <Member MemberName="WriteXml">
      <MemberSignature Language="C#" Value="public void WriteXml (System.Xml.XmlWriter writer);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="writer" Type="System.Xml.XmlWriter" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="Overload:System.Data.DataTable.WriteXml" /> method provides a way to write either data only, or both data and schema from a <see cref="T:System.Data.DataTable" /> into an XML document, whereas the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method writes only the schema. To write both data and schema, use one of the overloads that include the <see cref="T:System.Data.XmlWriteMode" /> parameter, and set its value to WriteSchema.</para>
          <para>Note that the same is true for the <see cref="Overload:System.Data.DataTable.ReadXml" /> and <see cref="Overload:System.Data.DataTable.ReadXmlSchema" /> methods, respectively. To read XML data, or both schema and data into the DataTable, use the ReadXml method. To read just the schema, use the ReadXmlSchema method.</para>
          <block subset="none" type="note">
            <para>An <see cref="T:System.InvalidOperationException" /> will be thrown if a column type in the DataRow being read from or written to implements <see cref="T:System.Dynamic.IDynamicMetaObjectProvider" /> and does not implement <see cref="T:System.Xml.Serialization.IXmlSerializable" />.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Writes the current contents of the <see cref="T:System.Data.DataTable" /> as XML using the specified <see cref="T:System.Xml.XmlWriter" />.</para>
        </summary>
        <param name="writer">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Xml.XmlWriter" /> with which to write the contents. </param>
      </Docs>
    </Member>
    <Member MemberName="WriteXml">
      <MemberSignature Language="C#" Value="public void WriteXml (System.IO.Stream stream, bool writeHierarchy);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="stream" Type="System.IO.Stream" />
        <Parameter Name="writeHierarchy" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Use the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method to write the schema for a <see cref="T:System.Data.DataTable" /> to an XML document. The schema includes table, relation, and constraint definitions. </para>
          <para>The XML schema is written using the XSD standard.</para>
          <para>To write the data to an XML document, use the <see cref="Overload:System.Data.DataTable.WriteXml" /> method.</para>
          <para>Normally the WriteXml method writes the data only for the current table. To write the data for the current table and all of its descendant, related tables, call the method with the <paramref name="writeHierarchy" /> parameter set to true.</para>
          <block subset="none" type="note">
            <para>An <see cref="T:System.InvalidOperationException" /> will be thrown if a column type in the DataRow being read from or written to implements <see cref="T:System.Dynamic.IDynamicMetaObjectProvider" /> and does not implement <see cref="T:System.Xml.Serialization.IXmlSerializable" />.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Writes the current contents of the <see cref="T:System.Data.DataTable" /> as XML using the specified <see cref="T:System.IO.Stream" />. To save the data for the table and all its descendants, set the <paramref name="writeHierarchy" /> parameter to true.</para>
        </summary>
        <param name="stream">
          <attribution license="cc4" from="Microsoft" modified="false" />The stream to which the data will be written. </param>
        <param name="writeHierarchy">
          <attribution license="cc4" from="Microsoft" modified="false" />If true, write the contents of the current table and all its descendants. If false (the default value), write the data for the current table only.</param>
      </Docs>
    </Member>
    <Member MemberName="WriteXml">
      <MemberSignature Language="C#" Value="public void WriteXml (System.IO.Stream stream, System.Data.XmlWriteMode mode);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="stream" Type="System.IO.Stream" />
        <Parameter Name="mode" Type="System.Data.XmlWriteMode" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="Overload:System.Data.DataTable.WriteXml" /> method provides a way to write either data only, or both data and schema from a <see cref="T:System.Data.DataTable" /> into an XML document, whereas the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method writes only the schema. To write both data and schema, use one of the overloads that includes the <see cref="T:System.Data.XmlWriteMode" /> parameter, and set its value to WriteSchema.</para>
          <para>Note that the same is true for the <see cref="Overload:System.Data.DataTable.ReadXml" /> and <see cref="Overload:System.Data.DataTable.ReadXmlSchema" /> methods, respectively. To read XML data, or both schema and data into the DataTable, use the ReadXml method. To read just the schema, use the ReadXmlSchema method.</para>
          <block subset="none" type="note">
            <para>An <see cref="T:System.InvalidOperationException" /> will be thrown if a column type in the DataRow being read from or written to implements <see cref="T:System.Dynamic.IDynamicMetaObjectProvider" /> and does not implement <see cref="T:System.Xml.Serialization.IXmlSerializable" />.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Writes the current data, and optionally the schema, for the <see cref="T:System.Data.DataTable" /> to the specified file using the specified <see cref="T:System.Data.XmlWriteMode" />. To write the schema, set the value for the <paramref name="mode" /> parameter to WriteSchema.</para>
        </summary>
        <param name="stream">
          <attribution license="cc4" from="Microsoft" modified="false" />The stream to which the data will be written. </param>
        <param name="mode">
          <attribution license="cc4" from="Microsoft" modified="false" />One of the <see cref="T:System.Data.XmlWriteMode" /> values.</param>
      </Docs>
    </Member>
    <Member MemberName="WriteXml">
      <MemberSignature Language="C#" Value="public void WriteXml (System.IO.TextWriter writer, bool writeHierarchy);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="writer" Type="System.IO.TextWriter" />
        <Parameter Name="writeHierarchy" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="Overload:System.Data.DataTable.WriteXml" /> method provides a way to write either data only, or both data and schema from a <see cref="T:System.Data.DataTable" /> into an XML document, whereas the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method writes only the schema. To write both data and schema, use one of the overloads that includes the <see cref="T:System.Data.XmlWriteMode" /> parameter, and set its value to WriteSchema.</para>
          <para>Normally the WriteXml method writes the data only for the current table. To write the data for the current table and all its descendant, related tables, call the method with the <paramref name="writeHierarchy" /> parameter set to true.</para>
          <block subset="none" type="note">
            <para>An <see cref="T:System.InvalidOperationException" /> will be thrown if a column type in the DataRow being read from or written to implements <see cref="T:System.Dynamic.IDynamicMetaObjectProvider" /> and does not implement <see cref="T:System.Xml.Serialization.IXmlSerializable" />.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Writes the current contents of the <see cref="T:System.Data.DataTable" /> as XML using the specified <see cref="T:System.IO.TextWriter" />. To save the data for the table and all its descendants, set the <paramref name="writeHierarchy" /> parameter to true.</para>
        </summary>
        <param name="writer">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.IO.TextWriter" /> with which to write the content. </param>
        <param name="writeHierarchy">
          <attribution license="cc4" from="Microsoft" modified="false" />If true, write the contents of the current table and all its descendants. If false (the default value), write the data for the current table only.</param>
      </Docs>
    </Member>
    <Member MemberName="WriteXml">
      <MemberSignature Language="C#" Value="public void WriteXml (System.IO.TextWriter writer, System.Data.XmlWriteMode mode);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="writer" Type="System.IO.TextWriter" />
        <Parameter Name="mode" Type="System.Data.XmlWriteMode" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="Overload:System.Data.DataTable.WriteXml" /> method provides a way to write either data only, or both data and schema from a <see cref="T:System.Data.DataTable" /> into an XML document, whereas the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method writes only the schema. To write both data and schema, use one of the overloads that includes the <see cref="T:System.Data.XmlWriteMode" /> parameter, and set its value to WriteSchema.</para>
          <para>Note that the same is true for the <see cref="Overload:System.Data.DataTable.ReadXml" /> and <see cref="Overload:System.Data.DataTable.ReadXmlSchema" /> methods, respectively. To read XML data, or both schema and data into the DataTable, use the ReadXml method. To read just the schema, use the ReadXmlSchema method.</para>
          <block subset="none" type="note">
            <para>An <see cref="T:System.InvalidOperationException" /> will be thrown if a column type in the DataRow being read from or written to implements <see cref="T:System.Dynamic.IDynamicMetaObjectProvider" /> and does not implement <see cref="T:System.Xml.Serialization.IXmlSerializable" />.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Writes the current data, and optionally the schema, for the <see cref="T:System.Data.DataTable" /> using the specified <see cref="T:System.IO.TextWriter" /> and <see cref="T:System.Data.XmlWriteMode" />. To write the schema, set the value for the <paramref name="mode" /> parameter to WriteSchema.</para>
        </summary>
        <param name="writer">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.IO.TextWriter" /> used to write the document. </param>
        <param name="mode">
          <attribution license="cc4" from="Microsoft" modified="false" />One of the <see cref="T:System.Data.XmlWriteMode" /> values. </param>
      </Docs>
    </Member>
    <Member MemberName="WriteXml">
      <MemberSignature Language="C#" Value="public void WriteXml (string fileName, bool writeHierarchy);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fileName" Type="System.String" />
        <Parameter Name="writeHierarchy" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="Overload:System.Data.DataTable.WriteXml" /> method provides a way to write either data only, or both data and schema from a <see cref="T:System.Data.DataTable" /> into an XML document, whereas the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method writes only the schema. To write both data and schema, use one of the overloads that includes the <see cref="T:System.Data.XmlWriteMode" /> parameter, and set its value to WriteSchema.</para>
          <para>Note that the same is true for the <see cref="Overload:System.Data.DataTable.ReadXml" /> and <see cref="Overload:System.Data.DataTable.ReadXmlSchema" /> methods, respectively. To read XML data, or both schema and data into the DataTable, use the ReadXml method. To read just the schema, use the ReadXmlSchema method.</para>
          <para>Normally the WriteXml method writes the data only for the current table. To write the data for the current table and all of its descendant, related tables, call the method with the <paramref name="writeHierarchy" /> parameter set to true.</para>
          <block subset="none" type="note">
            <para>An <see cref="T:System.InvalidOperationException" /> will be thrown if a column type in the DataRow being read from or written to implements <see cref="T:System.Dynamic.IDynamicMetaObjectProvider" /> and does not implement <see cref="T:System.Xml.Serialization.IXmlSerializable" />.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Writes the current contents of the <see cref="T:System.Data.DataTable" /> as XML using the specified file. To save the data for the table and all its descendants, set the <paramref name="writeHierarchy" /> parameter to true.</para>
        </summary>
        <param name="fileName">
          <attribution license="cc4" from="Microsoft" modified="false" />The file to which to write the XML data.</param>
        <param name="writeHierarchy">
          <attribution license="cc4" from="Microsoft" modified="false" />If true, write the contents of the current table and all its descendants. If false (the default value), write the data for the current table only.</param>
      </Docs>
    </Member>
    <Member MemberName="WriteXml">
      <MemberSignature Language="C#" Value="public void WriteXml (string fileName, System.Data.XmlWriteMode mode);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fileName" Type="System.String" />
        <Parameter Name="mode" Type="System.Data.XmlWriteMode" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="Overload:System.Data.DataTable.WriteXml" /> method provides a way to write either data only, or both data and schema from a <see cref="T:System.Data.DataTable" /> into an XML document, whereas the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method writes only the schema. To write both data and schema, use one of the overloads that include the <see cref="T:System.Data.XmlWriteMode" /> parameter, and set its value to WriteSchema.</para>
          <para>Note that the same is true for the <see cref="Overload:System.Data.DataTable.ReadXml" /> and <see cref="Overload:System.Data.DataTable.ReadXmlSchema" /> methods, respectively. To read XML data, or both schema and data into the DataTable, use the ReadXml method. To read just the schema, use the ReadXmlSchema method.</para>
          <block subset="none" type="note">
            <para>An <see cref="T:System.InvalidOperationException" /> will be thrown if a column type in the DataRow being read from or written to implements <see cref="T:System.Dynamic.IDynamicMetaObjectProvider" /> and does not implement <see cref="T:System.Xml.Serialization.IXmlSerializable" />.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Writes the current data, and optionally the schema, for the <see cref="T:System.Data.DataTable" /> using the specified file and <see cref="T:System.Data.XmlWriteMode" />. To write the schema, set the value for the <paramref name="mode" /> parameter to WriteSchema.</para>
        </summary>
        <param name="fileName">
          <attribution license="cc4" from="Microsoft" modified="false" />The name of the file to which the data will be written. </param>
        <param name="mode">
          <attribution license="cc4" from="Microsoft" modified="false" />One of the <see cref="T:System.Data.XmlWriteMode" /> values. </param>
      </Docs>
    </Member>
    <Member MemberName="WriteXml">
      <MemberSignature Language="C#" Value="public void WriteXml (System.Xml.XmlWriter writer, bool writeHierarchy);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="writer" Type="System.Xml.XmlWriter" />
        <Parameter Name="writeHierarchy" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="Overload:System.Data.DataTable.WriteXml" /> method provides a way to write either data only, or both data and schema from a <see cref="T:System.Data.DataTable" /> into an XML document, whereas the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method writes only the schema. To write both data and schema, use one of the overloads that include the <see cref="T:System.Data.XmlWriteMode" /> parameter, and set its value to WriteSchema.</para>
          <para>Note that the same is true for the <see cref="Overload:System.Data.DataTable.ReadXml" /> and <see cref="Overload:System.Data.DataTable.ReadXmlSchema" /> methods, respectively. To read XML data, or both schema and data into the DataTable, use the ReadXml method. To read just the schema, use the ReadXmlSchema method.</para>
          <para>Normally the WriteXml method writes the data only for the current table. To write the data for the current table and its entire descendant, related tables, call the method with the <paramref name="writeHierarchy" /> parameter set to true.</para>
          <block subset="none" type="note">
            <para>An <see cref="T:System.InvalidOperationException" /> will be thrown if a column type in the DataRow being read from or written to implements <see cref="T:System.Dynamic.IDynamicMetaObjectProvider" /> and does not implement <see cref="T:System.Xml.Serialization.IXmlSerializable" />.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Writes the current contents of the <see cref="T:System.Data.DataTable" /> as XML using the specified <see cref="T:System.Xml.XmlWriter" />. </para>
        </summary>
        <param name="writer">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Xml.XmlWriter" /> with which to write the contents. </param>
        <param name="writeHierarchy">
          <attribution license="cc4" from="Microsoft" modified="false" />If true, write the contents of the current table and all its descendants. If false (the default value), write the data for the current table only.</param>
      </Docs>
    </Member>
    <Member MemberName="WriteXml">
      <MemberSignature Language="C#" Value="public void WriteXml (System.Xml.XmlWriter writer, System.Data.XmlWriteMode mode);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="writer" Type="System.Xml.XmlWriter" />
        <Parameter Name="mode" Type="System.Data.XmlWriteMode" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="Overload:System.Data.DataTable.WriteXml" /> method provides a way to write either data only, or both data and schema from a <see cref="T:System.Data.DataTable" /> into an XML document, whereas the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method writes only the schema. To write both data and schema, use one of the overloads that include the <see cref="T:System.Data.XmlWriteMode" /> parameter, and set its value to WriteSchema.</para>
          <para>Note that the same is true for the <see cref="Overload:System.Data.DataTable.ReadXml" /> and <see cref="Overload:System.Data.DataTable.ReadXmlSchema" /> methods, respectively. To read XML data, or both schema and data into the DataTable, use the ReadXml method. To read just the schema, use the ReadXmlSchema method.</para>
          <block subset="none" type="note">
            <para>An <see cref="T:System.InvalidOperationException" /> will be thrown if a column type in the DataRow being read from or written to implements <see cref="T:System.Dynamic.IDynamicMetaObjectProvider" /> and does not implement <see cref="T:System.Xml.Serialization.IXmlSerializable" />.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Writes the current data, and optionally the schema, for the <see cref="T:System.Data.DataTable" /> using the specified <see cref="T:System.Xml.XmlWriter" /> and <see cref="T:System.Data.XmlWriteMode" />. To write the schema, set the value for the <paramref name="mode" /> parameter to WriteSchema.</para>
        </summary>
        <param name="writer">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Xml.XmlWriter" /> used to write the document. </param>
        <param name="mode">
          <attribution license="cc4" from="Microsoft" modified="false" />One of the <see cref="T:System.Data.XmlWriteMode" /> values. </param>
      </Docs>
    </Member>
    <Member MemberName="WriteXml">
      <MemberSignature Language="C#" Value="public void WriteXml (System.IO.Stream stream, System.Data.XmlWriteMode mode, bool writeHierarchy);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="stream" Type="System.IO.Stream" />
        <Parameter Name="mode" Type="System.Data.XmlWriteMode" />
        <Parameter Name="writeHierarchy" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="Overload:System.Data.DataTable.WriteXml" /> method provides a way to write either data only, or both data and schema from a DataTable into an XML document, whereas the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method writes only the schema. To write both data and schema, use one of the overloads that includes the XmlWriteMode parameter, and set its value to WriteSchema.</para>
          <para>Note that the same is true for the <see cref="Overload:System.Data.DataTable.ReadXml" /> and <see cref="Overload:System.Data.DataTable.ReadXmlSchema" /> methods, respectively. To read XML data, or both schema and data into the DataTable, use the ReadXml method. To read just the schema, use the ReadXmlSchema method.</para>
          <para>Normally, the WriteXml method saves data only for the current table. The WriteXml method provides a way to write either data only, or both data and schema from a DataTable into an XML document, whereas the WriteXmlSchema method writes only the schema. To write both data and schema, use one of the overloads that includes the XmlWriteMode parameter, and set its value to WriteSchema.</para>
          <para>Note that the same is true for the <see cref="Overload:System.Data.DataTable.ReadXml" /> and <see cref="Overload:System.Data.DataTable.ReadXmlSchema" /> methods, respectively. To read XML data, or both schema and data into the DataTable, use the ReadXml method. To read just the schema, use the ReadXmlSchema method.</para>
          <para>Normally the WriteXml method writes the data only for the current table. To write the data for the current table and all of its descendant, related tables, call the method with the <paramref name="writeHierarchy" /> parameter set to true.</para>
          <block subset="none" type="note">
            <para>An <see cref="T:System.InvalidOperationException" /> will be thrown if a column type in the DataRow being read from or written to implements <see cref="T:System.Dynamic.IDynamicMetaObjectProvider" /> and does not implement <see cref="T:System.Xml.Serialization.IXmlSerializable" />.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Writes the current data, and optionally the schema, for the <see cref="T:System.Data.DataTable" /> to the specified file using the specified <see cref="T:System.Data.XmlWriteMode" />. To write the schema, set the value for the <paramref name="mode" /> parameter to WriteSchema. To save the data for the table and all its descendants, set the <paramref name="writeHierarchy" /> parameter to true.</para>
        </summary>
        <param name="stream">
          <attribution license="cc4" from="Microsoft" modified="false" />The stream to which the data will be written. </param>
        <param name="mode">
          <attribution license="cc4" from="Microsoft" modified="false" />One of the <see cref="T:System.Data.XmlWriteMode" /> values. </param>
        <param name="writeHierarchy">
          <attribution license="cc4" from="Microsoft" modified="false" />If true, write the contents of the current table and all its descendants. If false (the default value), write the data for the current table only.</param>
      </Docs>
    </Member>
    <Member MemberName="WriteXml">
      <MemberSignature Language="C#" Value="public void WriteXml (System.IO.TextWriter writer, System.Data.XmlWriteMode mode, bool writeHierarchy);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="writer" Type="System.IO.TextWriter" />
        <Parameter Name="mode" Type="System.Data.XmlWriteMode" />
        <Parameter Name="writeHierarchy" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="Overload:System.Data.DataTable.WriteXml" /> method provides a way to write either data only, or both data and schema from a <see cref="T:System.Data.DataTable" /> into an XML document, whereas the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method writes only the schema. To write both data and schema, use one of the overloads that includes the <see cref="T:System.Data.XmlWriteMode" /> parameter, and set its value to WriteSchema.</para>
          <para>Note that the same is true for the <see cref="Overload:System.Data.DataTable.ReadXml" /> and <see cref="Overload:System.Data.DataTable.ReadXmlSchema" /> methods, respectively. To read XML data, or both schema and data into the DataTable, use the ReadXml method. To read just the schema, use the ReadXmlSchema method.</para>
          <para>Normally, the WriteXml method saves data only for the current table. The <see cref="Overload:System.Data.DataTable.WriteXml" /> method provides a way to write either data only, or both data and schema from a <see cref="T:System.Data.DataTable" /> into an XML document, whereas the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method writes only the schema. To write both data and schema, use one of the overloads that includes the <see cref="T:System.Data.XmlWriteMode" /> parameter, and set its value to WriteSchema.</para>
          <para>Note that the same is true for the <see cref="Overload:System.Data.DataTable.ReadXml" /> and <see cref="Overload:System.Data.DataTable.ReadXmlSchema" /> methods, respectively. To read XML data, or both schema and data into the DataTable, use the ReadXml method. To read just the schema, use the ReadXmlSchema method.</para>
          <para>Normally the WriteXml method writes the data only for the current table. To write the data for the current table and all of its descendant, related tables, call the method with the <paramref name="writeHierarchy" /> parameter set to true.</para>
          <block subset="none" type="note">
            <para>An <see cref="T:System.InvalidOperationException" /> will be thrown if a column type in the DataRow being read from or written to implements <see cref="T:System.Dynamic.IDynamicMetaObjectProvider" /> and does not implement <see cref="T:System.Xml.Serialization.IXmlSerializable" />.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Writes the current data, and optionally the schema, for the <see cref="T:System.Data.DataTable" /> using the specified <see cref="T:System.IO.TextWriter" /> and <see cref="T:System.Data.XmlWriteMode" />. To write the schema, set the value for the <paramref name="mode" /> parameter to WriteSchema. To save the data for the table and all its descendants, set the <paramref name="writeHierarchy" /> parameter to true.</para>
        </summary>
        <param name="writer">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.IO.TextWriter" /> used to write the document. </param>
        <param name="mode">
          <attribution license="cc4" from="Microsoft" modified="false" />One of the <see cref="T:System.Data.XmlWriteMode" /> values. </param>
        <param name="writeHierarchy">
          <attribution license="cc4" from="Microsoft" modified="false" />If true, write the contents of the current table and all its descendants. If false (the default value), write the data for the current table only.</param>
      </Docs>
    </Member>
    <Member MemberName="WriteXml">
      <MemberSignature Language="C#" Value="public void WriteXml (string fileName, System.Data.XmlWriteMode mode, bool writeHierarchy);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fileName" Type="System.String" />
        <Parameter Name="mode" Type="System.Data.XmlWriteMode" />
        <Parameter Name="writeHierarchy" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="Overload:System.Data.DataTable.WriteXml" /> method provides a way to write either data only, or both data and schema from a <see cref="T:System.Data.DataTable" /> into an XML document, whereas the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method writes only the schema. To write both data and schema, use one of the overloads that include the <see cref="T:System.Data.XmlWriteMode" /> parameter, and set its value to WriteSchema.</para>
          <para>Note that the same is true for the <see cref="Overload:System.Data.DataTable.ReadXml" /> and <see cref="Overload:System.Data.DataTable.ReadXmlSchema" /> methods, respectively. To read XML data, or both schema and data into the DataTable, use the ReadXml method. To read just the schema, use the ReadXmlSchema method.</para>
          <para>Normally, the WriteXml method saves data only for the current table. If you want to save the data for the current table and all of schema, the <see cref="Overload:System.Data.DataTable.WriteXml" /> method provides a way to write either data only, or both data and schema from a <see cref="T:System.Data.DataTable" /> into an XML document, whereas the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method writes only the schema. To write both data and schema, use one of the overloads that include the <see cref="T:System.Data.XmlWriteMode" /> parameter, and set its value to WriteSchema.</para>
          <para>Note that the same is true for the <see cref="Overload:System.Data.DataTable.ReadXml" /> and <see cref="Overload:System.Data.DataTable.ReadXmlSchema" /> methods, respectively. To read XML data, or both schema and data into the DataTable, use the ReadXml method. To read just the schema, use the ReadXmlSchema method.</para>
          <para>Normally the WriteXml method writes the data only for the current table. To write the data for the current table and all descendant, related tables, call the method with the <paramref name="writeHierarchy" /> parameter set to true.</para>
          <block subset="none" type="note">
            <para>An <see cref="T:System.InvalidOperationException" /> will be thrown if a column type in the DataRow being read from or written to implements <see cref="T:System.Dynamic.IDynamicMetaObjectProvider" /> and does not implement <see cref="T:System.Xml.Serialization.IXmlSerializable" />.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Writes the current data, and optionally the schema, for the <see cref="T:System.Data.DataTable" /> using the specified file and <see cref="T:System.Data.XmlWriteMode" />. To write the schema, set the value for the <paramref name="mode" /> parameter to WriteSchema. To save the data for the table and all its descendants, set the <paramref name="writeHierarchy" /> parameter to true.</para>
        </summary>
        <param name="fileName">
          <attribution license="cc4" from="Microsoft" modified="false" />The name of the file to which the data will be written. </param>
        <param name="mode">
          <attribution license="cc4" from="Microsoft" modified="false" />One of the <see cref="T:System.Data.XmlWriteMode" /> values. </param>
        <param name="writeHierarchy">
          <attribution license="cc4" from="Microsoft" modified="false" />If true, write the contents of the current table and all its descendants. If false (the default value), write the data for the current table only.</param>
      </Docs>
    </Member>
    <Member MemberName="WriteXml">
      <MemberSignature Language="C#" Value="public void WriteXml (System.Xml.XmlWriter writer, System.Data.XmlWriteMode mode, bool writeHierarchy);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="writer" Type="System.Xml.XmlWriter" />
        <Parameter Name="mode" Type="System.Data.XmlWriteMode" />
        <Parameter Name="writeHierarchy" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="Overload:System.Data.DataTable.WriteXml" /> method provides a way to write either data only, or both data and schema from a <see cref="T:System.Data.DataTable" /> into an XML document, whereas the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method writes only the schema. To write both data and schema, use one of the overloads that include the <see cref="T:System.Data.XmlWriteMode" /> parameter, and set its value to WriteSchema.</para>
          <para>Note that the same is true for the <see cref="Overload:System.Data.DataTable.ReadXml" /> and <see cref="Overload:System.Data.DataTable.ReadXmlSchema" /> methods, respectively. To read XML data, or both schema and data into the DataTable, use the ReadXml method. To read just the schema, use the ReadXmlSchema method.</para>
          <para>Normally the WriteXml method writes the data only for the current table. To write the data for the current table and its entire descendant, related tables, call the method with the <paramref name="writeHierarchy" /> parameter set to true.</para>
          <block subset="none" type="note">
            <para>An <see cref="T:System.InvalidOperationException" /> will be thrown if a column type in the DataRow being read from or written to implements <see cref="T:System.Dynamic.IDynamicMetaObjectProvider" /> and does not implement <see cref="T:System.Xml.Serialization.IXmlSerializable" />.</para>
          </block>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Writes the current data, and optionally the schema, for the <see cref="T:System.Data.DataTable" /> using the specified <see cref="T:System.Xml.XmlWriter" /> and <see cref="T:System.Data.XmlWriteMode" />. To write the schema, set the value for the <paramref name="mode" /> parameter to WriteSchema. To save the data for the table and all its descendants, set the <paramref name="writeHierarchy" /> parameter to true.</para>
        </summary>
        <param name="writer">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Xml.XmlWriter" /> used to write the document. </param>
        <param name="mode">
          <attribution license="cc4" from="Microsoft" modified="false" />One of the <see cref="T:System.Data.XmlWriteMode" /> values. </param>
        <param name="writeHierarchy">
          <attribution license="cc4" from="Microsoft" modified="false" />If true, write the contents of the current table and all its descendants. If false (the default value), write the data for the current table only.</param>
      </Docs>
    </Member>
    <Member MemberName="WriteXmlSchema">
      <MemberSignature Language="C#" Value="public void WriteXmlSchema (System.IO.Stream stream);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="stream" Type="System.IO.Stream" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Use the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method to write the schema for a <see cref="T:System.Data.DataTable" /> to an XML document. The schema includes table, relation, and constraint definitions. </para>
          <para>The XML schema is written using the XSD standard.</para>
          <para>To write the data to an XML document, use the <see cref="Overload:System.Data.DataTable.WriteXml" /> method.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Writes the current data structure of the <see cref="T:System.Data.DataTable" /> as an XML schema to the specified stream.</para>
        </summary>
        <param name="stream">
          <attribution license="cc4" from="Microsoft" modified="false" />The stream to which the XML schema will be written. </param>
      </Docs>
    </Member>
    <Member MemberName="WriteXmlSchema">
      <MemberSignature Language="C#" Value="public void WriteXmlSchema (System.IO.TextWriter writer);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="writer" Type="System.IO.TextWriter" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Use the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method to write the schema for a <see cref="T:System.Data.DataTable" /> to an XML document. The schema includes table, relation, and constraint definitions. </para>
          <para>The XML schema is written using the XSD standard.</para>
          <para>To write the data to an XML document, use the <see cref="Overload:System.Data.DataTable.WriteXml" /> method.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Writes the current data structure of the <see cref="T:System.Data.DataTable" /> as an XML schema using the specified <see cref="T:System.IO.TextWriter" />.</para>
        </summary>
        <param name="writer">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.IO.TextWriter" /> with which to write. </param>
      </Docs>
    </Member>
    <Member MemberName="WriteXmlSchema">
      <MemberSignature Language="C#" Value="public void WriteXmlSchema (string fileName);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fileName" Type="System.String" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Use the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method to write the schema for a <see cref="T:System.Data.DataTable" /> to an XML document. The schema includes table, relation, and constraint definitions. </para>
          <para>The XML schema is written using the XSD standard.</para>
          <para>To write the data to an XML document, use the <see cref="Overload:System.Data.DataTable.WriteXml" /> method.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Writes the current data structure of the <see cref="T:System.Data.DataTable" /> as an XML schema to the specified file.</para>
        </summary>
        <param name="fileName">
          <attribution license="cc4" from="Microsoft" modified="false" />The name of the file to use. </param>
      </Docs>
    </Member>
    <Member MemberName="WriteXmlSchema">
      <MemberSignature Language="C#" Value="public void WriteXmlSchema (System.Xml.XmlWriter writer);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="writer" Type="System.Xml.XmlWriter" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Use the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method to write the schema for a <see cref="T:System.Data.DataTable" /> to an XML document. The schema includes table, relation, and constraint definitions. </para>
          <para>The XML schema is written using the XSD standard.</para>
          <para>To write the data to an XML document, use the <see cref="Overload:System.Data.DataTable.WriteXml" /> method.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Writes the current data structure of the <see cref="T:System.Data.DataTable" /> as an XML schema using the specified <see cref="T:System.Xml.XmlWriter" />.</para>
        </summary>
        <param name="writer">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Xml.XmlWriter" /> to use. </param>
      </Docs>
    </Member>
    <Member MemberName="WriteXmlSchema">
      <MemberSignature Language="C#" Value="public void WriteXmlSchema (System.IO.Stream stream, bool writeHierarchy);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="stream" Type="System.IO.Stream" />
        <Parameter Name="writeHierarchy" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Use the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method to write the schema for a <see cref="T:System.Data.DataTable" /> to an XML document. The schema includes table, relation, and constraint definitions. </para>
          <para>The XML schema is written using the XSD standard.</para>
          <para>To write the data to an XML document, use the <see cref="Overload:System.Data.DataTable.WriteXml" /> method.</para>
          <para>Normally the WriteXmlSchema method writes the schema only for the current table. To write the schema for the current table and its entire descendant, related tables, call the method with the <paramref name="writeHierarchy" /> parameter set to true.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Writes the current data structure of the <see cref="T:System.Data.DataTable" /> as an XML schema to the specified stream. To save the schema for the table and all its descendants, set the <paramref name="writeHierarchy" /> parameter to true.</para>
        </summary>
        <param name="stream">
          <attribution license="cc4" from="Microsoft" modified="false" />The stream to which the XML schema will be written. </param>
        <param name="writeHierarchy">
          <attribution license="cc4" from="Microsoft" modified="false" />If true, write the schema of the current table and all its descendants. If false (the default value), write the schema for the current table only.</param>
      </Docs>
    </Member>
    <Member MemberName="WriteXmlSchema">
      <MemberSignature Language="C#" Value="public void WriteXmlSchema (System.IO.TextWriter writer, bool writeHierarchy);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="writer" Type="System.IO.TextWriter" />
        <Parameter Name="writeHierarchy" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Use the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method to write the schema for a <see cref="T:System.Data.DataTable" /> to an XML document. The schema includes table, relation, and constraint definitions. </para>
          <para>The XML schema is written using the XSD standard.</para>
          <para>To write the data to an XML document, use the <see cref="Overload:System.Data.DataTable.WriteXml" /> method.</para>
          <para>Normally the WriteXmlSchema method writes the schema only for the current table. To write the schema for the current table and its entire descendant, related tables, call the method with the <paramref name="writeHierarchy" /> parameter set to true.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Writes the current data structure of the <see cref="T:System.Data.DataTable" /> as an XML schema using the specified <see cref="T:System.IO.TextWriter" />. To save the schema for the table and all its descendants, set the <paramref name="writeHierarchy" /> parameter to true.</para>
        </summary>
        <param name="writer">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.IO.TextWriter" /> with which to write. </param>
        <param name="writeHierarchy">
          <attribution license="cc4" from="Microsoft" modified="false" />If true, write the schema of the current table and all its descendants. If false (the default value), write the schema for the current table only.</param>
      </Docs>
    </Member>
    <Member MemberName="WriteXmlSchema">
      <MemberSignature Language="C#" Value="public void WriteXmlSchema (string fileName, bool writeHierarchy);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="fileName" Type="System.String" />
        <Parameter Name="writeHierarchy" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Use the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method to write the schema for a <see cref="T:System.Data.DataTable" /> to an XML document. The schema includes table, relation, and constraint definitions. </para>
          <para>The XML schema is written using the XSD standard.</para>
          <para>To write the data to an XML document, use the <see cref="Overload:System.Data.DataTable.WriteXml" /> method.</para>
          <para>Normally the WriteXmlSchema method writes the schema only for the current table. To write the schema for the current table and its entire descendant, related tables, call the method with the <paramref name="writeHierarchy" /> parameter set to true.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Writes the current data structure of the <see cref="T:System.Data.DataTable" /> as an XML schema to the specified file. To save the schema for the table and all its descendants, set the <paramref name="writeHierarchy" /> parameter to true.</para>
        </summary>
        <param name="fileName">
          <attribution license="cc4" from="Microsoft" modified="false" />The name of the file to use. </param>
        <param name="writeHierarchy">
          <attribution license="cc4" from="Microsoft" modified="false" />If true, write the schema of the current table and all its descendants. If false (the default value), write the schema for the current table only.</param>
      </Docs>
    </Member>
    <Member MemberName="WriteXmlSchema">
      <MemberSignature Language="C#" Value="public void WriteXmlSchema (System.Xml.XmlWriter writer, bool writeHierarchy);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="writer" Type="System.Xml.XmlWriter" />
        <Parameter Name="writeHierarchy" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Use the <see cref="Overload:System.Data.DataTable.WriteXmlSchema" /> method to write the schema for a <see cref="T:System.Data.DataTable" /> to an XML document. The schema includes table, relation, and constraint definitions. </para>
          <para>The XML schema is written using the XSD standard.</para>
          <para>To write the data to an XML document, use the <see cref="Overload:System.Data.DataTable.WriteXml" /> method.</para>
          <para>Normally the WriteXmlSchema method writes the schema only for the current table. To write the schema for the current table and its entire descendant, related tables, call the method with the <paramref name="writeHierarchy" /> parameter set to true.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Writes the current data structure of the <see cref="T:System.Data.DataTable" /> as an XML schema using the specified <see cref="T:System.Xml.XmlWriter" />. To save the schema for the table and all its descendants, set the <paramref name="writeHierarchy" /> parameter to true.</para>
        </summary>
        <param name="writer">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Xml.XmlWriter" /> used to write the document. </param>
        <param name="writeHierarchy">
          <attribution license="cc4" from="Microsoft" modified="false" />If true, write the schema of the current table and all its descendants. If false (the default value), write the schema for the current table only.</param>
      </Docs>
    </Member>
  </Members>
</Type>