이 문서는 기계로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오. 추가 정보
번역
원본
이 항목은 아직 평가되지 않았습니다.- 이 항목 평가

DataTable.WriteXmlSchema 메서드

DataTable 의 현재 데이터 구조를 XML 스키마로 씁니다.

이 멤버는 오버로드됩니다. 구문, 사용법 및 예제를 비롯하여 이 멤버에 대한 자세한 내용을 보려면 오버로드 목록에서 이름을 클릭합니다.

  이름 설명
Public 메서드 WriteXmlSchema(Stream) DataTable 의 현재 데이터 구조를 지정된 스트림에 XMl 스키마로 씁니다.
Public 메서드 WriteXmlSchema(String) DataTable 의 현재 데이터 구조를 지정된 파일에 XML 스키마로 씁니다.
Public 메서드 WriteXmlSchema(TextWriter) 지정된 TextWriter를 사용하여 DataTable의 현재 데이터 구조를 XML 스키마로 씁니다.
Public 메서드 WriteXmlSchema(XmlWriter) 지정된 XmlWriter를 사용하여 DataTable의 현재 데이터 구조를 XML 스키마로 씁니다.
Public 메서드 WriteXmlSchema(Stream, Boolean) DataTable 의 현재 데이터 구조를 지정된 스트림에 XMl 스키마로 씁니다. 테이블과 모든 하위 항목의 스키마를 저장하려면 writeHierarchy 매개 변수를 true로 설정합니다.
Public 메서드 WriteXmlSchema(String, Boolean) DataTable 의 현재 데이터 구조를 지정된 파일에 XML 스키마로 씁니다. 테이블과 모든 하위 항목의 스키마를 저장하려면 writeHierarchy 매개 변수를 true로 설정합니다.
Public 메서드 WriteXmlSchema(TextWriter, Boolean) 지정된 TextWriter를 사용하여 DataTable의 현재 데이터 구조를 XML 스키마로 씁니다. 테이블과 모든 하위 항목의 스키마를 저장하려면 writeHierarchy 매개 변수를 true로 설정합니다.
Public 메서드 WriteXmlSchema(XmlWriter, Boolean) 지정된 XmlWriter를 사용하여 DataTable의 현재 데이터 구조를 XML 스키마로 씁니다. 테이블과 모든 하위 항목의 스키마를 저장하려면 writeHierarchy 매개 변수를 true로 설정합니다.
위쪽

WriteXmlSchema 메서드를 사용하여 XML 문서에 DataTable의 스키마를 씁니다. 스키마에는 테이블, 관계 및 제약 조건 정의가 포함됩니다.

XSD 표준을 사용하여 XML 스키마를 씁니다.

XML 문서에 데이터를 쓰려면 WriteXml 메서드를 사용합니다.

다음 콘솔 응용 프로그램은 두 개의 DataTable 인스턴스를 만든 후 각 인스턴스를 DataSet에 추가하고, 두 테이블의 관계를 지정하는 DataRelation을 만든 다음 WriteXmlSchema 메서드를 사용하여 부모 테이블에 포함된 데이터를 TextWriter에 씁니다. 예제에서는 writeHierarchy 매개 변수를 각각의 값으로 설정했을 때 나타나는 동작을 보여 줍니다.

참고 참고

이 예제에서는 WriteXmlSchema의 오버로드된 버전 중 하나에 대한 사용 방법을 보여 줍니다. 사용할 수 있는 다른 예제는 개별 오버로드 항목을 참조하십시오.


static void Main()
{
    DataSet ds = new DataSet();
    DataTable customerTable = GetCustomers();
    DataTable orderTable = GetOrders();

    ds.Tables.Add(customerTable);
    ds.Tables.Add(orderTable);
    ds.Relations.Add("CustomerOrder",
        new DataColumn[] { customerTable.Columns[0] },
        new DataColumn[] { orderTable.Columns[1] }, true);

    System.IO.StringWriter writer = new System.IO.StringWriter();
    customerTable.WriteXmlSchema(writer, false);
    PrintOutput(writer, "Customer table, without hierarchy");

    writer = new System.IO.StringWriter();
    customerTable.WriteXmlSchema(writer, true);
    PrintOutput(writer, "Customer table, with hierarchy");

    Console.WriteLine("Press any key to continue.");
    Console.ReadKey();
}

private static DataTable GetCustomers()
{
    // Create sample Customers table, in order
    // to demonstrate the behavior of the DataTableReader.
    DataTable table = new DataTable();

    // Create two columns, ID and Name.
    DataColumn idColumn = table.Columns.Add("ID", typeof(System.Int32));
    table.Columns.Add("Name", typeof(System.String));

    // Set the ID column as the primary key column.
    table.PrimaryKey = new DataColumn[] { idColumn };

    table.Rows.Add(new object[] { 1, "Mary" });
    table.Rows.Add(new object[] { 2, "Andy" });
    table.Rows.Add(new object[] { 3, "Peter" });
    table.Rows.Add(new object[] { 4, "Russ" });
    table.AcceptChanges();
    return table;
}

private static DataTable GetOrders()
{
    // Create sample Customers table, in order
    // to demonstrate the behavior of the DataTableReader.
    DataTable table = new DataTable();

    // Create three columns; OrderID, CustomerID, and OrderDate.
    table.Columns.Add(new DataColumn("OrderID", typeof(System.Int32)));
    table.Columns.Add(new DataColumn("CustomerID", typeof(System.Int32)));
    table.Columns.Add(new DataColumn("OrderDate", typeof(System.DateTime)));

    // Set the OrderID column as the primary key column.
    table.PrimaryKey = new DataColumn[] { table.Columns[0] };

    table.Rows.Add(new object[] { 1, 1, "12/2/2003" });
    table.Rows.Add(new object[] { 2, 1, "1/3/2004" });
    table.Rows.Add(new object[] { 3, 2, "11/13/2004" });
    table.Rows.Add(new object[] { 4, 3, "5/16/2004" });
    table.Rows.Add(new object[] { 5, 3, "5/22/2004" });
    table.Rows.Add(new object[] { 6, 4, "6/15/2004" });
    table.AcceptChanges();
    return table;
}

private static void PrintOutput(System.IO.TextWriter writer, 
    string caption)
{
    Console.WriteLine("==============================");
    Console.WriteLine(caption);
    Console.WriteLine("==============================");
    Console.WriteLine(writer.ToString());
}


예제에서는 콘솔 창에 다음 출력을 표시합니다.

==============================
Customer table, without hierarchy
==============================
<?xml version="1.0" encoding="utf-16"?>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
  <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="Ta
ble1">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Table1">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="ID" type="xs:int" />
              <xs:element name="Name" type="xs:string" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
    <xs:unique name="Constraint1" msdata:PrimaryKey="true">
      <xs:selector xpath=".//Table1" />
      <xs:field xpath="ID" />
    </xs:unique>
  </xs:element>
</xs:schema>
==============================
Customer table, with hierarchy
==============================
<?xml version="1.0" encoding="utf-16"?>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
  <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="Table1">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Table1">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="ID" type="xs:int" />
              <xs:element name="Name" type="xs:string" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Table2">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="OrderID" type="xs:int" />
              <xs:element name="CustomerID" type="xs:int" minOccurs="0" />
              <xs:element name="OrderDate" type="xs:dateTime" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
    <xs:unique name="Constraint1" msdata:PrimaryKey="true">
      <xs:selector xpath=".//Table1" />
      <xs:field xpath="ID" />
    </xs:unique>
    <xs:unique name="Table2_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
      <xs:selector xpath=".//Table2" />
      <xs:field xpath="OrderID" />
    </xs:unique>
    <xs:keyref name="CustomerOrder" refer="Constraint1">
      <xs:selector xpath=".//Table2" />
      <xs:field xpath="CustomerID" />
    </xs:keyref>
  </xs:element>
</xs:schema>
이 정보가 도움이 되었습니까?
(1500자 남음)

커뮤니티 추가 항목

추가
Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
© 2013 Microsoft. All rights reserved.