
Лекция 4. Работа с xml в .Net
План
1. Классы для работы с XML .NET
2. Чтение и запись потоков данных Xml
2.1. Использование класса XmlReader
2.2. Методы чтения данных
2.3. Контроль типов данных при чтении Xml-документа
3. Создание XML-документа в Visual Studio
1. Классы для работы с xml .Net
Многие составляющие технологии .NET неразрывно связаны с XML. А значит, XML хорошо поддерживается со стороны Framework Class Library. В .NET поддерживаются следующие технологии:
XML 1.0
пространства имен XML
XSD схемы
выражения XPath
XSL преобразования
DOM Level 1 Core, DOM Level 2 Core
Среда .NET Framework не только позволяет применять XML в создаваемых приложениях, но и сама применяет его в конфигурационных файлах, документации по исходному коду и в манифесте сборки.
Пример 1. Манифест сборки
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
Классы для работы с XML собраны в пространстве имен System.Xml. Это пространство загружается вместе с классами, которые могут использоваться для обработки данных XML.
Таблица 1. Основные классы чтения и записи данных XML
XmlReader |
Абстрактный класс, выполняющий чтение и обеспечивающий быструю доставку некешированных данных XML. Класс представляет собой однонаправленный синтаксический анализатор |
XmlWriter |
Абстрактный класс, выполняющий запись данных в виде потока или файла |
XmlTextReader |
Расширяет возможности класса XmlReader. Обеспечивает однонаправленный потоковый доступ к данным XML |
XmlTextWtiter |
Расширяет возможности класса Xml.Writer. Обеспечивает быструю однонаправленную генерацию потоков XML |
Таблица 2. Некоторые классы обработки данных XML
|
|
XmlNode |
Абстрактный класс, представляющий один узел в XML-документе. Базовый класс для некоторых других классов |
XmlDocument |
Расширяет класс XmlNode. Представляет собой реализацию DOM от W3C. Обеспечивает древовидное представление XML-документа в памяти с возможностями навигации и редактирования |
XmlNavigator |
Обеспечивает навигацию по документу |
XMLDataDocument |
служит мостом между хранилищами данных и реляционными данными, хранящимися в DataSet |
2. Чтение и запись потоков данных Xml
Среда .NET Framework поддерживает два способа обработки XML-документов: потоковый ввод-вывод и DOM. Абстрактные классы XmlReader, XmlWriter и порожденные от них классы поддерживают потоковую модель ввода-вывода.
Классы, основанные на XmlReader обеспечивают быстрый однонаправленный курсор, который организует поток данных XML для обработки.
От XmlReader порождены следующие классы:
XmlNodeReader |
использует XmlNode как источник вместо потока |
XmlTextReader |
Обеспечивает однонаправленный потоковый доступ к данным XML |
XmlValidatingReader |
добавляет определение шаблона DTD (Document TypeDefinition) и обеспечивает проверку достоверности данных |
От XmlWriter порождены следующие классы:
XmlTextWriter |
Расширяет возможности класса Xml.Writer. Обеспечивает быструю однонаправленную генерацию потоков XML |
XmlQueryOutput |
Расширяет возможности класса Xml.Writer, Обеспечивает функциональность, необходимую для вывода результатов преобразований XSLT. |
Для работы с данными каждый из классов предоставляет необходимые методы.