Sdílet prostřednictvím


Integrace XML s relačními daty a ADO.NET

XmlDataDocument třída je odvozená třída XmlDocument a obsahuje XML data. Výhodou XmlDataDocument je, že poskytuje most mezi relačními a hierarchickými daty. Jedná se o xmldocument , který může být vázán na DataSet a obě třídy mohou synchronizovat změny provedené v datech obsažených ve dvou třídách. XmlDocument, který je vázán na datovou sadu umožňuje XML integrovat s relačními daty a nemusíte mít data reprezentovaná jako XML nebo v relačním formátu. Můžete provést obojí a nesmí být omezeni na jedinou reprezentaci dat.

Výhody dostupnosti dat ve dvou zobrazeních jsou:

  • Strukturovaná část dokumentu XML je možné mapovat na datovou sadu a efektivně ukládat, indexovat a prohledávat.

  • Transformace, ověřování a navigace je možné efektivně provádět prostřednictvím modelu kurzoru nad daty XML, která jsou uložena relačním způsobem. Někdy lze provádět efektivněji proti relačním strukturám, než když je XML uložen v modelu XmlDocument .

  • Datová sada může uložit část XML. To znamená, že můžete použít XPath nebo XslTransform k uložení do datové sady pouze ty prvky a atributy, které vás zajímají. Tam je možné provést změny v menší filtrované podmnožině dat s tím, že se změny šíří do větších dat v xmldatadocumentu.

Můžete také spustit transformaci dat načtených do datové sady z SQL Serveru. Další možností je vytvořit vazbu ovládacích prvků WinForm a WebForm spravovaných ve stylu rozhraní .NET Framework k datové sadě naplněné ze vstupního datového proudu XML.

Kromě podpory XslTransform zpřístupňuje XmlDataDocument relační data dotazům a ověřování XPath. V podstatě jsou všechny služby XML k dispozici přes relační data a relační zařízení, jako jsou vazby řízení, codegen atd., jsou k dispozici přes strukturovanou projekci XML bez ohrožení věrnosti XML.

Protože XmlDataDocument je zděděný z XmlDocument, poskytuje implementaci W3C DOM. Skutečnost, že XmlDataDocument je přidružen a ukládá podmnožinu svých dat v rámci, DataSet neomezuje nebo nemění jeho použití jako XmlDocument žádným způsobem. Kód zapisovaný pro využívání dokumentu XmlDocument funguje bez přípony XmlDataDocument. DataSet poskytuje relační zobrazení stejných dat definováním tabulek, sloupců, relací a omezení a je samostatné uživatelské úložiště dat v paměti.

Následující obrázek ukazuje různá přidružení, která data XML mají s DataSet a XmlDataDocument:

Diagram that shows different associations with the XML DataSet.

Obrázek ukazuje, že data XML lze načíst přímo do datové sady, což umožňuje přímou manipulaci s XML relačním způsobem. Nebo xml lze načíst do odvozené třídy DOM, což je XmlDataDocument, a následně načten a synchronizovat s DataSet. Vzhledem k tomu, že DataSet a XmlDataDocument se synchronizují přes jednu sadu dat, změny dat v jednom úložišti se projeví v druhém úložišti.

XmlDataDocument dědí všechny editační a navigační funkce z XmlDocument. Při použití XmlDataDocument a jeho zděděných funkcí, synchronizovaných s datovou sadou, je vhodnější možnost než načtení XML přímo do datové sady. Následující tabulka ukazuje položky, které se mají zvážit při výběru metody, která se má použít k načtení datové sady.

Kdy načíst XML přímo do datové sady Kdy synchronizovat XmlDataDocument s datovou sadou
Dotazy na data v datové sadě jsou jednodušší pomocí SQL než XPath. Dotazy XPath jsou potřeba pro data v datové sadě.
Zachování řazení prvků ve zdrojovém xml není důležité. Zachování řazení prvků ve zdrojovém xml je důležité.
Prázdné znaky mezi elementy a formátováním není nutné zachovat ve zdrojovém XML. Zachování prázdných znaků a formátování ve zdrojovém kódu XML je důležité.

Pokud načítání a zápis XML přímo do a z datové sady řeší vaše potřeby, přečtěte si téma Načítání datové sady z XML a zápis datové sady jako dat XML.

Pokud načítání datové sady z XmlDataDocument řeší vaše potřeby, přečtěte si téma Synchronizace datové sady s dokumentem XML.

Viz také