Share via


Synchronizace datové sady a datového dokumentu XML

ADO.NET DataSet poskytuje relační reprezentaci dat. Pro přístup k hierarchickým datům můžete použít třídy XML dostupné v rozhraní .NET Framework. V minulosti se tyto dvě reprezentace dat používaly samostatně. Rozhraní .NET Framework však umožňuje synchronní přístup v reálném čase jak k relačnímu, tak hierarchickému znázornění dat prostřednictvím objektu DataSet a objektu XmlDataDocument .

Při synchronizaci datové sady s XmlDataDocument oba objekty pracují s jedinou sadou dat. To znamená, že pokud dojde ke změně datové sady, změna se projeví v xmldatadocumentu a naopak. Vztah mezi datovou sadou a XmlDataDocument vytváří velkou flexibilitu tím, že umožňuje jedné aplikaci, pomocí jedné sady dat, přístup k celé sadě služeb vytvořených kolem datové sady (jako jsou webové formuláře a model Windows Forms ovládací prvky a návrháři sady Visual Studio .NET) a také sady služeb XML, včetně XSL (Extensible Stylesheet Language). Transformace XSL (XSLT) a jazyk XPath (XML Path Language). Nemusíte zvolit, která sada služeb se má cílit s aplikací; obě jsou k dispozici.

Existuje několik způsobů, jak synchronizovat datovou sadu s XmlDataDocument. Můžete provádět následující akce:

  • Naplňte datovou sadu schématem (tj. relační strukturou) a daty a pak ji synchronizujte s novým objektem XmlDataDocument. To poskytuje hierarchické zobrazení existujících relačních dat. Příklad:

    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);  
    
  • Naplňte datovou sadu pouze schématem (například datovou sadu silného typu), synchronizujte ji s XmlDataDocument a pak načtěte XmlDataDocument z dokumentu XML. Poskytuje relační zobrazení existujících hierarchických dat. Názvy tabulek a sloupců ve schématu datové sady musí odpovídat názvům elementů XML, se kterými se mají synchronizovat. V této shodě se rozlišují malá a velká písmena.

    Všimněte si, že schéma datové sady musí odpovídat pouze elementům XML, které chcete zveřejnit v relačním zobrazení. Tímto způsobem můžete mít velmi velký dokument XML a velmi malý relační "okno" v tomto dokumentu. XmlDataDocument zachovává celý dokument XML, i když datová sada zveřejňuje pouze malou část. (Podrobný příklad najdete v tématu Synchronizace datové sady s XmlDataDocument.)

    Následující příklad kódu ukazuje kroky pro vytvoření datové sady a naplnění jeho schématu a následnou synchronizaci s XmlDataDocument. Všimněte si, že schéma Datové sady musí odpovídat pouze prvkům z XmlDataDocument, které chcete zveřejnit pomocí datové sady.

    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");  
    

    XmlDataDocument nelze načíst, pokud je synchronizován s datovou sadou, která obsahuje data. Vyvolá se výjimka.

  • Vytvořte nový XmlDataDocument a načtěte ho z dokumentu XML a pak získejte přístup k relačnímu zobrazení dat pomocí vlastnosti DataSet XmlDataDocument. Před zobrazením libovolného data ve formátu XmlDataDocument pomocí datové sady je nutné nastavit schéma datové sady. Názvy tabulek a sloupců ve schématu datové sady musí znovu odpovídat názvům elementů XML, se kterými se mají synchronizovat. V této shodě se rozlišují malá a velká písmena.

    Následující příklad kódu ukazuje, jak získat přístup k relačnímu zobrazení dat v 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");  
    

Další výhodou synchronizace XmlDataDocument s datovou sadou je zachování věrnosti dokumentu XML. Pokud je datová sada naplněna z dokumentu XML pomocí readXml, při zápisu dat zpět jako dokumentu XML pomocí WriteXml se může výrazně lišit od původního dokumentu XML. Důvodem je to, že datová sada neudržuje formátování, jako jsou prázdné znaky nebo hierarchické informace, například pořadí elementů, z dokumentu XML. Sada dat také neobsahuje prvky z dokumentu XML, které byly ignorovány, protože se neshodovaly se schématem datové sady. Synchronizace XmlDataDocument s DataSet umožňuje formátování a hierarchickou strukturu elementů původního dokumentu XML udržovat v XmlDataDocument, zatímco DataSet obsahuje pouze data a informace schématu vhodné pro DataSet.

Při synchronizaci datové sady s XmlDataDocument se výsledky můžou lišit v závislosti na tom, jestli jsou objekty DataRelation vnořené nebo ne. Další informace najdete v tématu Vnoření datovýchrelací.

V tomto oddílu

Synchronizace datové sady s datovým dokumentem XML
Demonstruje synchronizaci datové sady silného typu s minimálním schématem s XmlDataDocument.

Provedení dotazu XPath u datové sady
Demonstruje provedení dotazu XPath na obsah datové sady.

Použití transformace XSLT u datové sady
Demonstruje použití transformace XSLT na obsah datové sady.

Použití XML v datové sadě
Popisuje, jak datová sada komunikuje s XML jako zdrojem dat, včetně načítání a zachování obsahu datové sady jako dat XML.

Vnoření datových relací
Popisuje důležitost vnořených objektů DataRelation při reprezentaci obsahu datové sady jako dat XML a popisuje, jak tyto vztahy vytvořit.

Datové sady, datové tabulky a datová zobrazení
Popisuje datovou sadu a způsob použití ke správě aplikačních dat a interakci se zdroji dat, včetně relačních databází a XML.

XmlDataDocument
Obsahuje referenční informace o XmlDataDocument třídy.

Viz také