Udostępnij za pośrednictwem


Integracja XML z danymi relacyjnymi i ADO.NET

Klasa XmlDataDocument jest klasą pochodną xmlDocument i zawiera dane XML. Zaletą elementu XmlDataDocument jest zapewnienie mostu między danymi relacyjnymi i hierarchicznymi. Jest to dokument XmlDocument , który może być powiązany z zestawem Danych , a obie klasy mogą synchronizować zmiany wprowadzone w danych zawartych w dwóch klasach. Dokument XmlDocument powiązany z zestawem danych umożliwia integrację kodu XML z danymi relacyjnymi i nie trzeba mieć danych reprezentowanych jako XML lub w formacie relacyjnym. Można wykonać obie czynności i nie być ograniczone do pojedynczej reprezentacji danych.

Korzyści wynikające z dostępności danych w dwóch widokach to:

  • Ustrukturyzowana część dokumentu XML może zostać zamapowana na zestaw danych i wydajnie przechowywana, indeksowana i przeszukiwana.

  • Przekształcenia, walidację i nawigację można efektywnie przeprowadzać za pomocą modelu kursora na danych XML przechowywanych w sposób relacyjny. Czasami można to zrobić wydajniej względem struktur relacyjnych, niż jeśli kod XML jest przechowywany w modelu XmlDocument .

  • Zestaw danych może przechowywać część kodu XML. Oznacza to, że można użyć XPath lub XslTransform do przechowywania w DataSet tylko wybranych elementów i atrybutów. W tym miejscu można wprowadzać zmiany do mniejszego, filtrowanego podzestawu danych, a zmiany są propagowane do większych danych w pliku XmlDataDocument.

Można również uruchomić przekształcenie danych załadowanych do zestawu danych z programu SQL Server. Inną opcją jest powiązanie kontrolek typu WinForm i WebForm, zarządzanych w stylu klas .NET Framework, z elementem DataSet wypełnionym danymi ze strumienia wejściowego XML.

Oprócz obsługi XslTransform, xmlDataDocument uwidacznia dane relacyjne w zapytaniach XPath i walidacji. Zasadniczo wszystkie usługi XML są dostępne dla danych relacyjnych, a obiekty relacyjne, takie jak powiązanie kontrolek, kodgen itd., są dostępne w projekcji strukturalnej XML bez naruszania wierności XML.

Ponieważ xmlDataDocument jest dziedziczony z xmlDocument, zapewnia implementację W3C DOM. Fakt, że element XmlDataDocument jest skojarzony z DataSet i przechowuje w nim podzbiór swoich danych, nie ogranicza ani nie zmienia jego użycia jako XmlDocument w żaden sposób. Kod napisany w celu korzystania z elementu XmlDocument działa bez zmian z dokumentem XmlDataDocument. Zestaw danych udostępnia relacyjny widok tych samych danych, definiując tabele, kolumny, relacje i ograniczenia oraz jest autonomicznym magazynem danych użytkownika w pamięci.

Poniższa ilustracja przedstawia różne skojarzenia danych XML z elementami DataSet i XmlDataDocument:

Diagram przedstawiający różne skojarzenia z zestawem danych XML.

Ilustracja pokazuje, że dane XML można załadować bezpośrednio do zestawu danych, co umożliwia bezpośrednie manipulowanie kodem XML w sposób relacyjny. Można też załadować kod XML do klasy pochodnej modelu DOM, czyli xmlDataDocument, a następnie załadować i zsynchronizować go z zestawem danych. Ze względu na to, że DataSet i XmlDataDocument są synchronizowane nad jednym zestawem danych, zmiany wprowadzone w jednym repozytorium są odzwierciedlane w drugim repozytorium.

Dokument XmlDataDocument dziedziczy wszystkie funkcje edycji i nawigacji z XmlDocument. Są sytuacje, kiedy używanie klasy XmlDataDocument i jej odziedziczonych funkcji, zsynchronizowane z DataSet, jest bardziej odpowiednią opcją niż ładowanie XML bezpośrednio do DataSet. W poniższej tabeli przedstawiono elementy, które należy wziąć pod uwagę podczas wybierania metody do załadowania zestawu danych.

Kiedy załadować kod XML bezpośrednio do zestawu danych Kiedy synchronizować element XmlDataDocument z zestawem danych
Zapytania dotyczące danych w zestawie danych są łatwiejsze przy użyciu języka SQL niż XPath. Zapytania XPath są potrzebne w przypadku danych w zestawie danych.
Zachowywanie kolejności elementów w źródłowym formacie XML nie jest krytyczne. Zachowywanie kolejności elementów w źródłowym formacie XML ma kluczowe znaczenie.
Odstęp między elementami i formatowaniem nie musi być zachowywany w źródłowym formacie XML. Białe znaki i zachowywanie formatowania w źródłowym formacie XML ma kluczowe znaczenie.

Jeśli ładowanie i zapisywanie XML bezpośrednio do i z DataSet odpowiada Państwa potrzebom, zobacz Ładowanie DataSet z XML i Zapisywanie DataSet jako dane XML.

Jeśli ładowanie elementu DataSet z elementu XmlDataDocument odpowiada Twoim potrzebom, zobacz Synchronizowanie zestawu danych z dokumentem XML.

Zobacz także