다음을 통해 공유


DataSet 및 XmlDataDocument 동기화

ADO.NET DataSet 데이터의 관계형 표현을 제공합니다. 계층적 데이터 액세스의 경우 .NET Framework에서 사용할 수 있는 XML 클래스를 사용할 수 있습니다. 지금까지 이러한 두 가지 데이터 표현은 별도로 사용되었습니다. 그러나 .NET Framework를 사용하면, DataSet 개체를 통해 관계형 데이터 표현에, XmlDataDocument 개체를 통해 계층적 데이터 표현에 실시간 동기식 액세스를 할 수 있습니다.

DataSet XmlDataDocument와 동기화되는 경우 두 개체 모두 단일 데이터 집합으로 작동합니다. 즉, DataSet이 변경되면 변경 내용이 XmlDataDocument에 반영되고 그 반대의 경우도 마찬가지입니다. 두 DataSet 애플리케이션 간의 XmlDataDocument 관계는 단일 데이터 집합을 사용하여 단일 애플리케이션이 XSL(Extensible Stylesheet Language)을 비롯한 XML 서비스 제품군뿐만 아니라 Web Forms 및 Windows Forms 컨트롤 및 Visual Studio .NET 디자이너와 같이 빌드된 DataSet 전체 서비스 제품군에 액세스할 수 있도록 하여 뛰어난 유연성을 만듭니다. XSL 변환(XSLT) 및 XPath(XML 경로 언어). 애플리케이션을 대상으로 지정할 서비스 집합을 선택할 필요가 없습니다. 둘 다 사용할 수 있습니다.

DataSet XmlDataDocument와 동기화할 수 있는 여러 가지 방법이 있습니다. 다음을 할 수 있습니다:

  • DataSet 스키마(즉, 관계형 구조)와 데이터를 채웁니다. 그런 다음 새 XmlDataDocument와 동기화합니다. 기존 관계형 데이터에 대한 계층적 보기를 제공합니다. 다음은 그 예입니다.

    Dim dataSet As DataSet = New DataSet
    
    ' Add code here to populate the DataSet with schema and data.
    
    Dim xmlDoc As XmlDataDocument = New XmlDataDocument(dataSet)
    
    DataSet dataSet = new DataSet();
    
    // Add code here to populate the DataSet with schema and data.
    
    XmlDataDocument xmlDoc = new XmlDataDocument(dataSet);
    
  • 스키마만으로 DataSet를 채운 후, 이를 XmlDataDocument와 동기화하고, 그 다음 XML 문서에서 XmlDataDocument를 로드합니다. 기존 계층적 데이터에 대한 관계형 보기를 제공합니다. 스키마의 테이블 이름과 열 이름은 DataSet 동기화할 XML 요소의 이름과 일치해야 합니다. 이 일치는 대/소문자를 구분합니다.

    DataSet의 스키마는 관계형 보기에 노출하려는 필요한 XML 요소에만 일치해야 합니다. 이렇게 하면 매우 큰 XML 문서와 해당 문서에 매우 작은 관계형 "창"이 있을 수 있습니다. XmlDataDocument XML 문서의 일부만 노출되더라도 DataSet 전체 XML 문서가 유지됩니다. 자세한 예제는 DataSet과 XmlDataDocument 동기화를 참조하세요.

    다음 코드 예제에서는 스키마를 DataSet 만들고 채인 다음 XmlDataDocument와 동기화하는 단계를 보여줍니다. 스키마는 DataSetXmlDataDocument을 사용하여 노출하려는 요소 와만 일치해야 합니다.

    Dim dataSet As DataSet = New DataSet
    
    ' Add code here to populate the DataSet with schema, but not data.
    
    Dim xmlDoc As XmlDataDocument = New XmlDataDocument(dataSet)
    xmlDoc.Load("XMLDocument.xml")
    
    DataSet dataSet = new DataSet();
    
    // Add code here to populate the DataSet with schema, but not data.
    
    XmlDataDocument xmlDoc = new XmlDataDocument(dataSet);
    xmlDoc.Load("XMLDocument.xml");
    

    데이터가 포함된 DataSet과 동기화된 경우 XmlDataDocument을 로드할 수 없습니다. 예외가 발생합니다.

  • XmlDataDocument 문서를 만들고 XML 문서에서 로드한 다음 DataSet 속성을 사용하여 데이터의 관계형 뷰에 액세스합니다. DataSet을 사용하여 XmlDataDocument의 데이터를 보기 전에 DataSet의 스키마를 설정해야 합니다. 스키마의 테이블 이름과 열 이름은 DataSet 동기화할 XML 요소의 이름과 일치해야 합니다. 이 일치는 대/소문자를 구분합니다.

    다음 코드 예제에서는 XmlDataDocument에서 데이터의 관계형 뷰에 액세스하는 방법을 보여 있습니다.

    Dim xmlDoc As XmlDataDocument = New XmlDataDocument
    Dim dataSet As DataSet = xmlDoc.DataSet
    
    ' Add code here to create the schema of the DataSet to view the data.
    
    xmlDoc.Load("XMLDocument.xml")
    
    XmlDataDocument xmlDoc = new XmlDataDocument();
    DataSet dataSet = xmlDoc.DataSet;
    
    // Add code here to create the schema of the DataSet to view the data.
    
    xmlDoc.Load("XMLDocument.xml");
    

XmlDataDocumentDataSet을 동기화하는 또 다른 이점은 XML 문서의 충실도가 유지된다는 것입니다. DataSet ReadXml을 사용하여 XML 문서에서 데이터를 채우는 경우 데이터를 사용하여 WriteXml XML 문서로 다시 쓸 때 원본 XML 문서와 크게 다를 수 있습니다. DataSet 이는 XML 문서에서 공백과 같은 서식이나 요소 순서와 같은 계층적 정보를 유지하지 않기 때문입니다. DataSet 또한 데이터 세트의 스키마와 일치하지 않아 무시된 XML 문서의 요소도 포함되지 않습니다. 와 동기화하면 XmlDataDocumentDataSet 원래 XML 문서의 서식 및 계층적 요소 구조를 XmlDataDocument에서 유지 관리할 수 있지만 DataSet데이터 세트에 적합한 데이터 및 스키마 정보만 포함됩니다.

DataSetXmlDataDocument와 동기화할 때, DataRelation 개체가 중첩되는지 여부에 따라 결과가 다를 수 있습니다. 자세한 내용은 데이터 관계 중첩을 참조하세요.

이 섹션 안에

DataSet을 XmlDataDocument와 동기화 최소 스키마를 사용하여 강력한 형식의 DataSetXmlDataDocument와 동기화하는 방법을 보여 줍니다.

데이터 세트에서 XPath 쿼리 수행DataSet의 내용에 대해 XPath 쿼리를 수행하는 방법을 보여 줍니다.

데이터 세트에 XSLT 변환 적용DataSet의 내용에 XSLT 변환을 적용하는 방법을 보여 줍니다.

DataSet에서 XML 사용 XML을 데이터 원본으로 사용하는 방법을 설명하며, XML 데이터로서 DataSet의 내용을 로드하고 유지하는 것을 DataSet 포함합니다.

DataRelations 중첩 XML 데이터로 콘텐츠를 나타낼 때 중첩된 DataRelation 개체의 DataSet 중요성에 대해 설명하고 이러한 관계를 만드는 방법을 설명합니다.

DataSets, DataTables 및 DataViewsDataSet 애플리케이션 데이터를 관리하고 관계형 데이터베이스 및 XML을 비롯한 데이터 원본과 상호 작용하는 데 사용하는 방법과 방법을 설명합니다.

XmlDataDocument 클래스에 대한 XmlDataDocument 참조 정보를 포함합니다.

참고하십시오