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 должны находиться в структуре путей, которая выглядит примерно следующим образом:
/XMLChapter/Sample1
/XMLChapter/Sample2
/XMLChapter/Sample3
и т. д. Файлы XML должны находиться в подкаталоге XMLChapter, а код для примеров должен быть в подкаталогах Sample1, Sample2 и т.д. Можно называть каталоги как угодно, но их относительное положение важно. Можно также изменять примеры, чтобы указать желаемое направление. В коде примеров будут сделаны указания, какие строки изменить.
Файл books.xml выглядит следующим образом:
<?xml version='1.0'?>
<!-- Этот файл представляет фрагмент базы данных учета запасов книжного склада -- >
<bookstore>
<book genre='autobiography' publicationdate='1981' ISBN='1-861003-11-0'>
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre='novel' publicationdate='1967' ISBN='0-201-63361-2'>
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre='philosophy' publicationdate='1991' ISBN='1-861001-57-6'>
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
Рассмотрим пример кода, использующего MSXML 3.0 для загрузки окна списка с номерами ISBN из books.xml
. Ниже записан код, который можно найти в папке SampleBase1
архива, загружаемого с web-сайта издательства Wrox. Можно скопировать его в Visual Studio IDE или