WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Советы » Доступ к XML и реляционным данным

Доступ к XML и реляционным данным


Дата публикации: 15-10-2010

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.
Классы, которые включают XML и ADO.NET Framework, допускают применение трёх общих сценариев:

Сценарий Задачи
Доступ к реляционным данным с помощью ADO.NET - Создание, и использование DataSet для обращения к реляционным данным без использования XML.
- Чтение, и запись XML данных в/из DataSet без использования XmlDataDocument (любая информация XML, не соответствующая реляционному представлению, будет потеряна.)
Доступ к XML документам - Создание и использование XmlDocument для обращения к потокам XML данных.
- Использование структурированных данных в XmlDataDocument без таблиц, строк, столбцов, отношений и других реляционных элементов. Это делается аналогично XmlDocument.
Доступ к реляционным данным в XML документах (XML и ADO.NET) - Структурированные, реляционные данные в XmlDataDocument вместе с DataSet.
- Получить DataSet из XmlDataDocument, в порядке реляционного представления и запроса структурированного контента XML документа.
- Работа с XML представлением реляционных данных в DataSet.
- Поддержка реляционных и основанных на 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.
Класс XmlDocument обеспечивает инструментарий первого (http://www.w3.org/TR/DOM-Level-1/) и второго (http://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 разрешает внешние XML ресурсы, называемые Uniform Resource Identifier (URI - унифицированный идентификатор ресурса). XmlResolver используется XmlTextReader для загрузки внешних DTD объектов и схем. Также, он используется XslTransform для обработки элементов <xsl:include>. XmlUrlResolver - конкретное исполнение XmlResolver для URL.
Абстрактный класс XmlNameTable обеспечивает таблицу расщеплённых строковых объектов. Он обеспечивает эффективные средства для синтаксического анализатора XML, который позволяет использовать тот же самый объект-строку для повторных элементов и имён атрибутов в XML документе. Прикладная программа может использовать объект XmlNameTable или его собственное исполнение класса XmlNameTable в целях повышения эффективности.

 

1.2. Microsoft .NET XML классы

Представленные ниже классы Микрософт.NET Framework обеспечивают поддержку Xml стандартов и предоставляют мощный API для доступа к Xml документам. Обеспечивается поддержка пространств имён, типов данных, XSL схем, XSL операций, сохранения документов, и навигация по документам.

Класс Описание
XmlDataDocument Представляет исполняемый XmlDocument, который может быть связан с объектом ADO.NET DataSet. Вы можете одновременно просматривать и управлять структурированным XML через реляционное представление DataSet или представления DOM XmlDataDocument.
XmlNavigator (abstract) Чтение и запись Xml данных с использованием модели курсора. Обеспечивает Xpath, поддерживаемый для XmlDocument. Это абстрактный класс.
DocumentNavigator Обеспечивает cursor-style модель, для управления memory-resident деревом Xml и поддерживает XPath выражения. Также, предоставляет XmlNavigator для DOM.
DataDocumentNavigator Чтение и запись реляционных данных с использованием модели курсора. Обеспечивает поддержку Xpath для XmlDataDocument. Предоставляет XmlNavigator по XmlDataDocument.
XmlResolver (abstract) Определяет внешние Xml ресурсы, называемые Uniform Resource Identifier (URI). Это абстрактный класс.
XmlUrlResolver Определяет внешние Xml ресурсы, называемые URI. Обеспечивает XmlResolver для URL.
XmlSchemaCollection Содержит набор из пространства имён URI. Каждое пространство имён также имеет связанный собственный кэш данных, соответствующий XML-Data Schema или W3C Xml Schema. XmlSchemaCollection может загружать XSD и XDR схемы, и компилировать их во внутренний "cooked schema representation". Тогда метод Validate() использует это внутреннее представление для эффективной проверки правильности (в смысле: run-time) любого заданного поддерева.
XmlReader (abstract) Представляет механизм чтения, который обеспечивает быстрый, non-cached, forward-only поток доступа к Xml данным. Этот механизм чтения может читать поток или документ Xml. Это абстрактный класс.
XmlTextReader Обеспечивает быстрый, non-cached, forward-only поток доступ к Xml данным. Обеспечивает XmlReader для байтового потока.
XmlWriter (abstract) Обеспечивает быструю, non-cached, forward-only генерацию правильно построенных Xml потоков. Этот механизм записи предназначен для записи в поток или документ. Это абстрактный класс.
XmlTextWriter Обеспечивает быструю, non-cached, forward-only генерацию Xml потоков, содержащих Xml документы, которые соответствуют спецификации W3C Xml 1.0 и пространству имён в спецификации Xml. Использует XmlWriter.
XmlNameTable (abstract) Таблица, группирующая строки, гарантирует, что обеспечиваются эффективные средства для синтаксического анализатора Xml, и что используется один и тот же объект строки для каждого повторяющегося элемента и имёни атрибута в Xml документе.
XmlNodeReader Представляет механизм чтения, который обеспечивает быструю, non-cached отправку потока доступа к Xml данным в XmlDocument или в определенный XmlNode в рамках XmlDocument.
XslTransform Преобразовывает Xml данные, используя XSL таблицу стилей.
XmlConvert Кодирует и декодирует имена в Xml, которые содержат недопустимые символы (такие, как пробелы или половинчатые символы Katakana) что необходимо при отображении Xml имён без поддержки или представления схем.
XmlException Возвращает детализированную информацию о последней ошибке синтаксического анализа, включая: номер ошибки, номер строки, символьную позицию, и текстовое описание.

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)
Ноябрь 2015 (1)
Октябрь 2015 (1)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта

Хотите продать свой сайт?
- Мы быстро и удобно для Вас сможем его купить:
  • Заявка на продажу сайта
  • Раcсматриваем цены на каждый сайт в индивидуальном порядке.

    Случайная цитата

    Неизвестный автор:

    "Случайное красивым не бывает."

    Опрос

    Как Вам новый дизайн сайта?

    Отлично
    Неплохо
    Нормальный
    Ужасно