Доступ до XML та реляційних даних

1. Короткий огляд

Мікрософт .NET Framework використовує XML Document Object Model (DOM), щоб забезпечити доступ до даних у XML документах та додаткові класи для читання, запису та навігації в межах XML документа. Ці класи підтримуються простором імен System.XML, який також поєднує XML DOM з механізмом доступу до даних засобами ADO.NET. XMLDataDocument є одним із підкласів DOM у вказаному просторі імен і забезпечує доступ до реляційних даних. XMLDataDocument відображає XML на реляційні дані в ADO.NET DataSet. Мікрософт .NET-based прикладні програми можуть використовувати спеціальні класи у просторі імен System.XML для управління та звернення до документів XML та реляційними даними у DataDocument. Цей механізм підтримує багатошарову архітектуру n-tiered для збирання та розподілу даних.

Microsoft .NET XML та засоби ADO.NET використовують єдину модель програмування для доступу до XML даних (текст, розмежований структуруючими даними тегами) та реляційних даних (таблиці, що складаються з рядків та стовпців). XML Framework читає XML дані з будь-якого потоку даних у вузлі дерева DOM, якщо до даних можна звертатися програмним шляхом, у той час як ADO.NET Framework забезпечує керування та звернення до реляційних даних у межах об'єкта DataSet. Є три ключові компоненти для доступу до даних у XML Framework та ADO.NET:

- DataSet, що представляє джерело реляційних даних у ADO.NET Framework.; - XMLDocument, що використовує DOM у XML Framework. - XMLDataDocument, що поєднує ADO.NET і XML Framework і представляє реляційні дані з DataSet, а також синхронізує їх з моделлю XML документа.

XMLDataDocument є підкласом XMLDocument. .NET-додаток може використовуватиXMLDataDocument для завантаження XML або реляційних даних і керувати ними за допомогою DOM. Коли XMLDataDocument завантажує реляційні дані, відбувається синхронізація даних між DataSet та DOM. Після того, як XMLDataDocument завантажить реляційні дані, програма може звертатися до них програмним шляхом, за допомогою .NET XML Framework API.

СценарійЗавдання
Доступ до реляційних даних за допомогою ADO.NET- Створення та використання DataSet для звернення до реляційних даних без використання XML. - Читання та запис XML даних у/з DataSet без використання XmlDataDocument (будь-яка інформація XML, що не відповідає реляційному уявленню, буде втрачена.)
Доступ до XML документів- Створення та використання XmlDocument для звернення до потоків XML даних. - Використання структурованих даних у XmlDataDocument без таблиць, рядків, стовпців, відносин та інших реляційних елементів. Це робиться аналогічно до XmlDocument.
Доступ до реляційних даних у XML документах (XML та ADO.NET)- Структуровані, реляційні дані в XmlDataDocument разом з DataSet. - Отримати DataSet з XmlDataDocument, в порядку реляційного подання та запиту структурованого контенту XML документа. та заснованих на XML компонент для додатків, які обслуговують дані. Наприклад, Ви можете редагувати та показувати реляційні дані без впливу на точність XML документа, застосовувати XSLT (Extensible Stylesheet Language Transformations) до реляційних даних. Виконання XPath запитів до реляційних даних.

1.1. Архітектура XML.NET

Класи XML.NET у просторі імен System.XML призначені для того, щоб забезпечити взаємодію так, як проілюстровано на цьому малюнку:

реляційних даних

Абстрактний клас XmlReader призначений лише для забезпечення швидкого, не кешованого відправлення потоку доступу до даних XML. Абстрактний клас XmlWriter забезпечує швидкий, не кешований, односпрямований шлях створення XML потоків, що містять документи XML, які відповідають специфікації W3C Extensible Markup Language (XML) 1.0 і простору імен зі специфікації XML. XmlTextWriter і XmlTextReader - призначені для безпосереднього виконання класи в просторі імен System.Xml. /www.w3.org/TR/DOM-Level-2/) рівнів специфікації W3C XML Document Object Model (DOM). XmlNodeReader забезпечує XmlReader API до відгалужень вузла DOM. Він повертає будь-які вузли, які знаходить у дереві DOM, включаючи вузли – посилання на об'єкти. XmlElement представляє елемент у дереві DOM. XmlAttribute представляє атрибут об'єкта XmlElement. Клас XmlTransform здійснює WC3 перетворення в термінах специфікації XSL (XSLT) (http://www.w3.org/TR/XSLT), які дозволяють перетворити один XML документ на інший. Він повертає XmlWriter або XmlReader, щоб забезпечити запис або читання перетвореного XML документа. Клас XmlNavigator визначає доступну для редагування модель курсору за XML документом. Він забезпечує вбудовані в підтримку для WC3 XML Path Language (XPath) вирази (http://www.w3.org/TR/XPath) і використовується XslTransform. -уніфікований ідентифікатор ресурсу). XmlResolver використовується XmlTextReader для завантаження зовнішніх DTD об'єктів та схем. Також він використовується XslTransform для обробки елементів . XmlUrlResolver - конкретне виконання XmlResolver для URL. Абстрактний клас XmlNameTable забезпечує таблицю розщеплених рядкових об'єктів. Він забезпечує ефективні засоби для синтаксичного аналізатора XML, який дозволяє використовувати той же об'єкт-рядок для повторних елементів та імен атрибутів у XML документі. Прикладна програма може використовувати об'єкт XmlNameTable або його власне виконання класу XmlNameTable з метою підвищення ефективності.

1.2. Microsoft .NET XML класи

Нижче наведені класи Мікрософт.NET Framework забезпечують підтримку Xml стандартів і надають потужний API для доступу до Xml документів. Забезпечується підтримка просторів імен, типів даних, XSL схем, XSL операцій, збереження документів та навігація по документах.