Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 .
DataSet Když je synchronizován 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 modelem DataSet a modelem XmlDataDocument vytváří velkou flexibilitu tím, že umožňuje jedné aplikaci, pomocí jedné sady dat, přistupovat k celé sadě služeb vytvořených kolem DataSet (například webových formulářů a ovládacích prvků Windows Forms a návrhářů 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 vybírat, na kterou sadu služeb cílit pomocí aplikace, obě jsou k dispozici.
Existuje několik způsobů, jak synchronizovat DataSet s XmlDataDocument. Můžete:
Naplňte
DataSetschématem (tj. relační strukturou) a daty a pak je synchronizujte s novým XmlDataDocument. To poskytuje hierarchické zobrazení existujících relačních dat. Napří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
DataSetpouze schématem (například silně typovanou datovou sadu), synchronizujte ji s XmlDataDocument, a pak načtěteXmlDataDocumentz dokumentu XML. Poskytuje relační zobrazení existujících hierarchických dat. Názvy tabulek a názvy sloupců ve schématuDataSetmusí 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
DataSetpouze musí odpovídat elementům XML, které chcete vystavit 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. ZachováXmlDataDocumentcelý dokument XML, přestožeDataSetzpřístupňuje pouze jeho 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í
DataSeta naplnění jeho schématu a následnou synchronizaci s XmlDataDocument. Všimněte si, žeDataSetschéma musí odpovídat pouze prvkům z objektuXmlDataDocument, 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");Nelze načíst
XmlDataDocument, pokud je synchronizována sDataSet, která obsahuje data. Vyvolá se výjimka.Vytvořte nový
XmlDataDocumenta načtěte ho z dokumentu XML a pak získejte přístup k relačnímu zobrazení dat pomocíDataSetvlastnosti XmlDataDocument. Než budete moci zobrazit libovolná data vXmlDataDocumentpomocí DataSet, musíte nastavit schéma proDataSet. Názvy tabulek a sloupců ve schématuDataSetmusí 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 DataSet je zachování věrnosti dokumentu XML.
DataSet Pokud je vyplněn z dokumentu XML pomocí ReadXml, při zápisu dat zpět jako dokument XML pomocí WriteXml se může výrazně lišit od původního dokumentu XML. Důvodem je to, že DataSet neudržuje formátování, například prázdné znaky nebo hierarchické informace, například pořadí prvků, z dokumentu XML. Také DataSet neobsahuje prvky z dokumentu XML, které byly ignorovány, protože se neshodovaly se schématem datové sady. Synchronizace XmlDataDocument s objektem DataSet umožňuje formátování a hierarchickou strukturu elementů původního dokumentu XML udržovat ve formátu XmlDataDocument, zatímco DataSet obsahuje pouze informace o datech a schématu odpovídajících datové sadě.
Při synchronizaci DataSet 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ých relací.
V této sekci
Synchronizace datové sady s dokumentem XmlDataDocument Ukazuje synchronizaci silně typované datové sady s minimálním schématem s dokumentem XmlDataDocument.
Provedení dotazu XPath v datové sadě Demonstruje provedení dotazu XPath na obsah datové sady.
Použití transformace XSLT na datovou sadu Demonstruje použití transformace XSLT na obsah datové sady.
Související oddíly
Použití XML v datové sadě Popisuje, jak DataSet interaguje s XML jako zdrojem dat, včetně načítání a zachování obsahu DataSet dat ve formátu XML.
Vnoření datových vztahů Popisuje důležitost vnořených DataRelation objektů při reprezentaci obsahu DataSet dat XML a popisuje, jak tyto vztahy vytvořit.
Datové sady, datové tabulky a zobrazení dat Popisuje DataSet , jak ho používat ke správě aplikačních dat a k interakci se zdroji dat, včetně relačních databází a XML.
XmlDataDocument Obsahuje referenční informace o XmlDataDocument třídě.