Freigeben über


XML-Integration mit relationalen Daten und ADO.NET

Die XmlDataDocument-Klasse ist eine abgeleitete Klasse von XmlDocument und enthält XML-Daten. Der Vorteil des XmlDataDocument besteht darin, dass es eine Brücke zwischen relationalen und hierarchischen Daten bietet. Es handelt sich um ein XmlDocument , das an ein DataSet gebunden werden kann, und beide Klassen können Änderungen an Daten synchronisieren, die in den beiden Klassen enthalten sind. Ein XmlDocument , das an ein DataSet gebunden ist, ermöglicht xml die Integration in relationale Daten, und Sie müssen ihre Daten nicht als XML oder in einem relationalen Format darstellen lassen. Sie können beides ausführen und nicht auf eine einzelne Darstellung der Daten beschränkt werden.

Die Vorteile der Verfügbarkeit von Daten in zwei Ansichten sind:

  • Der strukturierte Teil eines XML-Dokuments kann einem Dataset zugeordnet und effizient gespeichert, indiziert und durchsucht werden.

  • Transformationen, Validierung und Navigation können effizient über ein Cursormodell über die XML-Daten erfolgen, die relational gespeichert werden. Manchmal kann dies effizienter für relationale Strukturen erfolgen, als wenn der XML-Code in einem XmlDocument-Modell gespeichert wird.

  • Das DataSet kann einen Teil des XML-Codes speichern. Das heißt, Sie können XPath oder XslTransform verwenden, um nur diese Elemente und Attribute von Interesse in einem DataSet zu speichern. Von dort aus können Änderungen an der kleineren gefilterten Teilmenge der Daten vorgenommen werden, wobei die Änderungen an die größeren Daten im XmlDataDocument weitergegeben werden.

Sie können auch eine Transformation über Daten ausführen, die aus SQL Server in das DataSet geladen wurden. Eine weitere Option besteht darin, .NET Framework-Klassen-verwaltete WinForm- und WebForm-Steuerelemente an ein DataSet zu binden, das aus einem XML-Eingabedatenstrom aufgefüllt wurde.

Neben der Unterstützung von XslTransform macht ein XmlDataDocument relationale Daten für XPath-Abfragen und -Validierung verfügbar. Grundsätzlich sind alle XML-Dienste über relationale Daten verfügbar, und relationale Einrichtungen, z. B. Steuerelementbindung, Codegen usw., stehen über eine strukturierte Projektion von XML zur Verfügung, ohne die XML-Genauigkeit zu beeinträchtigen.

Da XmlDataDocument von einem XmlDocument geerbt wird, stellt es eine Implementierung des W3C-DOM bereit. Die Zuordnung des XmlDataDocument und das Speichern einer Teilmenge seiner Daten in einem DataSet schränkt oder ändert die Verwendung als XmlDocument in keiner Weise ein. Code, der für die Nutzung eines XmlDocument geschrieben wurde, funktioniert unverändert für ein XmlDataDocument. Das DataSet stellt die relationale Ansicht der gleichen Daten bereit, indem Tabellen, Spalten, Beziehungen und Einschränkungen definiert werden, und es handelt sich um einen eigenständigen, speicherinternen Benutzerdatenspeicher.

Die folgende Abbildung zeigt die verschiedenen Zuordnungen, die XML-Daten mit dem DataSet und XmlDataDocument aufweisen:

Diagramm, das verschiedene Zuordnungen mit dem XML DataSet zeigt.

Die Abbildung zeigt, dass XML-Daten direkt in ein DataSet geladen werden können, was die direkte Manipulation mit XML auf relationale Weise ermöglicht. Oder der XML-Code kann in eine abgeleitete Klasse des DOM geladen werden, bei dem es sich um xmlDataDocument handelt und anschließend mit dem DataSet geladen und synchronisiert wird. Da DataSet und XmlDataDocument über eine einzelne Datengruppe synchronisiert werden, werden Änderungen, die an den Daten in einem Speicher vorgenommen wurden, auch im anderen Speicher widergespiegelt.

Das XmlDataDocument erbt alle Bearbeitungs- und Navigationsfeatures aus xmlDocument. Es gibt Zeiten, in denen die Verwendung von XmlDataDocument und den geerbten Features, die mit einem DataSet synchronisiert werden, eine geeignetere Option ist, als XML direkt in das DataSet zu laden. In der folgenden Tabelle sind die Elemente aufgeführt, die beim Auswählen der zum Laden des DataSets zu verwendenden Methode berücksichtigt werden sollen.

Wann xml direkt in ein DataSet geladen werden soll Wann ein XmlDataDocument mit einem DataSet synchronisiert werden soll
Abfragen von Daten im DataSet sind einfacher mit SQL als XPath. XPath-Abfragen werden über Daten im DataSet benötigt.
Die Erhaltung der Elementbestellung in der Quell-XML ist nicht wichtig. Die Erhaltung der Elementbestellung in der Quell-XML ist entscheidend.
Leerzeichen zwischen Elementen und Formatierungen müssen nicht im Quell-XML beibehalten werden. Leerzeichen und Formatierungserhaltung im Quell-XML-Code sind von entscheidender Bedeutung.

Wenn das Laden und Schreiben von XML direkt in und aus einem DataSet Ihre Anforderungen erfüllt, lesen Sie das Laden eines DataSets aus XML und das Schreiben eines DataSets als XML-Daten.

Wenn das DataSet aus einem XmlDataDocument geladen wird, das Ihre Anforderungen erfüllt, lesen Sie die Synchronisierung eines Datasets mit einem XML-Dokument.

Siehe auch