Udostępnij za pośrednictwem


Integracja XML z danymi relacyjnymi i sterownikiem 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 zestawemDanych, 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, walidacja i nawigacja można efektywnie wykonywać za pomocą modelu kursora na danych XML przechowywanych relacyjnych. 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ć klasy XPath lub XslTransform do przechowywania w zestawie danych tylko tych elementów i atrybutów zainteresowania. 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 WinForm i WebForm w stylu programu .NET Framework z zestawem danych wypełnionym strumieniem wejściowym XML.

Oprócz obsługi XslTransform, xmlDataDocumentuwidacznia 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 elementem i przechowuje podzbiór swoich danych, zestaw danych nie ogranicza ani nie zmienia jego użycia jako dokument XmlDocument w żaden sposób. Kod napisany w celu korzystania z elementu XmlDocument działa niesprawdzone względem dokumentu 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 that shows different associations with the XML DataSet.

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 dane DataSet i XmlDataDocument są synchronizowane w jednym zestawie danych, zmiany wprowadzone w jednym magazynie są odzwierciedlane w innym magazynie.

Dokument XmlDataDocument dziedziczy wszystkie funkcje edycji i nawigacji po kodzie XmlDocument. W przypadku używania elementu XmlDataDocument i jego odziedziczonych funkcji synchronizowanych z zestawem danych jest bardziej odpowiednia opcja niż ładowanie kodu XML bezpośrednio do zestawu danych. 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 kodu XML bezpośrednio w zestawie danych i poza nimi odpowiada twoim potrzebom, zobacz Ładowanie zestawu danych z formatu XML i Zapisywanie elementu DataSet jako danych XML.

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

Zobacz też