C# для профессионалов. Том II

Ватсон Карли

Ватсон Карли - C# для профессионалов. Том II скачать книгу бесплатно в формате fb2, epub, html, txt или читать онлайн
Размер шрифта
A   A+   A++
Читать
Cкачать
C# для профессионалов. Том II ( Ватсон Карли)

Глава 13

XML

XML играет очень большую роль в платформе .NET. Платформа не только позволяет использовать XML в приложениях, но сама применяет XML для таких вещей, как конфигурационные файлы и документация исходного кода. Для XML платформа .NET содержит пространство имен System.Xml. Это пространство имен загружается вместе с классами, задействованными при обработке XML.

В этой главе говорится о том, как использовать реализацию DOM, и что предлагает .NET в качестве замены SAX. Будет показана совместная работа XML и ADO.NET и их преобразования. Мы узнаем так же, как можно сериализовать объекты в документ XML и создать объект из документа XML (десериализовать). Кроме того увидим, как включать XML в приложения C#. Следующие классы будут рассмотрены более подробно:

□ XmlReader и XmlTextReader

□ XmlWriter и XmlTextWriter

□ XmlDocument и DOM

□ XPath и XslTransform

□ ADO.NET и XmlDataDocument

□ XmlSerialization

Начнем эту главу с текущего состояния стандартов XML.

Стандарты W3C

Консорциум WWW (W3C) разработал множество стандартов, придающих XML мощь и потенциал. Без этих стандартов XML не смог бы оказать такого большого влияния на мир разработки. В этой книге не будут подробно рассматриваться тонкости XML. Для этого необходимо использовать другие источники. Среди книг Wrox, переведенных издательством "Лори", можно порекомендовать "Введение в XML" (2001 г., 656 стр.), "XML для профессионалов" (2001 г., 896 стр.) и "The XML Handbook" (ISBN 0-13-055068). Конечно, web-сайт W3C является ценным источником информации о XML (www.w3.org). В мае 2001 г. платформа .NET поддерживала следующие стандарты:

□ XML 1.0 — www.w3.org/TR/1998/REC-XML-19980210 — включая поддержку DTD (XmlTextReader).

□ Пространства имен XML — www.w3.org/TR/REC-xml-names — уровень потока и DOM.

□ Схемы XML — www.w3.org/TR/xmlschema-1 — поддерживается отображение схем и сериализация, но пока еще не поддерживается проверка.

□ Выражения XPath — www.w3.org/TR/xpath

□ Преобразования XSL/T — www.w3.org/TR/xslt

□ Ядро DOM Level 2 — www.w3.org/TR/DOM-Level-2

□ Soap 1.1 — msdn.microsoft.com/xml/general/soapspec.asp

Уровень поддержки стандартов будет меняться по мере развития платформы и по мере того, как W3C продолжает обновлять рекомендованные стандарты. В связи с этим необходимо всегда оставаться на современном уровне стандартов и уровне поддержки, который обеспечивает Microsoft.

Пространство имен System.Xml

Рассмотрим (без определенного порядка) некоторые классы пространства имен System.Xml.

Имя класса Описание
XmlReader Абстрактный. Средство чтения, которое предоставляет быстрый, некэшированный доступ к данным XML. XmlReader читает только вперед, аналогично синтаксическому анализатору SAX.
XmlWriter Абстрактный. Средство записи, которое предоставляет быструю, некэшированную запись данных XML в поток или файл.
XmlTextReader Реализует XmlReader. Предоставляет быстрый потоковый доступ для чтения с режимом только вперед к данным XML. Разрешает (допускает) использование данных в одном представлении.
XmlTextWriter Реализует XmlWriter. Быстрая генерация потоков записи XML с режимом только вперед.
XmlNode Абстрактный. Класс, который представляет единичный узел в документе XML. Базовый класс для нескольких классов в пространстве имен XML.
XmlDocument Реализует XmlNode. Объектная модель документов W3C (DOM, Document Object Model). Задает в памяти представление документа XML в виде дерева, разрешая перемещение и редактирование.
XmlDataDocument Реализует XmlDocument. То есть документ, который можно загрузить из данных XML или из реляционных данных объекта DataSet из ADO.NET.
XmlResolver Абстрактный. Разрешает внешние ресурсы на основе XML, такие как DTD и схемные ссылки. Используется также для обработки элементов <xsl:include> и <xsl:import>.
XmlUrlResolver Реализует XmlResolver. Разрешает внешние ресурсы с помощью URI (унифицированный идентификатор ресурса).

XML является также частью пространства имен System.Data в классе DataSet.

Имя класса Описание
ReadXml Считывает данные XML и схему в DataSet.
ReadXmlSchema Считывает схему XML в DataSet.
WriteXml Переписывает XML и схему из DataSet в документ XML.
WriteXmlSchema Переписывает схему из DataSet в документ XML.

Необходимо отметить, что эта книга посвящена языку C#, поэтому все примеры будут написаны на C#. Однако пространство имен XML доступно в любом языке, который является частью семейства .NET. Это означает, что все приведенные примеры могли быть также написаны на языках VB.NET, Управляемый C++ и т.д.

XML 3.0 (MSXML3.DLL) в C#

Как быть, если имеется большой объем кода, разработанного с помощью синтаксического анализатора компании Microsoft (в настоящее время XML 3.0)? Придется ли его выбросить и начать все сначала? А что если вам удобно использовать объектную модель XML 3.0 DOM? Нужно ли немедленно переключаться на .NET?

Ответом будет — нет. XML 3.0 может использоваться непосредственно в приложениях. Если добавить ссылку на msxml3.DLL в свое решение, то можно будет начать писать некоторый код.

Следующие несколько примеров будут использовать файл books.xml в качестве источника данных. Его можно загрузить с web-сайта издательства Wrox, он также включен в несколько примеров .NET SDK. Файл books.xml является каталогом книг воображаемого книжного склада. Он содержит такую информацию, как жанр, имя автора, цена и номер ISBN. Все примеры кода в этой главе также доступны на web-сайте издательства Wrox: www.wrox.com. Чтобы выполнить эти примеры, файлы данных XML должны находиться в структуре путей, которая выглядит примерно следующим образом:

Скачать книгуЧитать книгу

Предложения

Фэнтези

На страница нашего сайта Fantasy Read FanRead.Ru Вы найдете кучу интересных книг по фэнтези, фантастике и ужасам.

Скачать книгу

Книги собраны из открытых источников
в интернете. Все книги бесплатны! Вы можете скачивать книги только в ознакомительных целях.