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:
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.