Новые возможности класса XmlReader

Обновлен: November 2007

В платформе Microsoft .NET Framework версии 2.0 в класс XmlReader внесено множество конструктивных и функциональных изменений.

Создание XmlReader

В этой версии метод Create является предпочтительным механизмом для получения экземпляров XmlReader. Метод Create использует класс XmlReaderSettings для указания возможностей, которые должен поддерживать экземпляр XmlReader.

Дополнительные сведения см. в разделе Создание средств чтения XML;

Проверка данных

Объекты XmlReader, создаваемые методом Create, могут применять проверку с помощью DTD или схемы XSD. Свойство XmlReaderSettings.ValidationType определяет, применяется ли проверка в экземпляре XmlReader. Свойство XmlReaderSettings.ValidationFlags задает дополнительные параметры проверки. Класс XmlSchemaSet используется для кэширования схем XML.

8459257a.alert_note(ru-ru,VS.90).gifПримечание.

Классы XmlValidatingReader и XmlSchemaCollection являются устаревшими в версии платформы NET Framework 2.0.

Дополнительные сведения см. в разделе Проверка XML-данных с помощью XmlReader.

Согласованность данных

Объекты XmlReader, создаваемые методом Create, по умолчанию более согласованы, чем реализация XmlTextReader. Объекты XmlReader, создаваемые методом Create, по умолчанию поддерживают следующие возможности:

  • Нормализация символов перевода строки.

  • Раскрытие сущностей.

  • Добавление атрибутов по умолчанию.

Свойства XmlReaderSettings.CheckCharacters и XmlReaderSettings.ConformanceLevel позволяют указать тип проверок согласованности, которые следует включить в созданном объекте XmlReader. Дополнительные сведения см. в разделе Проверка согласованности данных с помощью XmlReader.

Поддержка типов

Обеспечивает поддержку получения сведений схемы XSD и позволяет вызывающим объектам запрашивать значения среды CLR.

Методы ReadContentAs и ReadElementContentAs могут считывать содержимое в виде системных типов, а не в виде строк. Эти новые методы дают пользователям возможность получать значения в таком представлении, которое лучше всего подходит для задач написания кода, и устраняют необходимость выполнять синтаксический анализ и преобразование значений вручную.

Дополнительные сведения см. в разделе Чтение типизированных данных.

Новые вспомогательные методы

Класс XmlReader содержит новые методы, которые упрощают синтаксический анализ XML-данных:

  • ReadSubtree — возвращает новый экземпляр XmlReader, который считывает текущий элемент и все его потомки;

  • ReadToDescendant — переводит модуль чтения в следующий дочерний элемент, соответствующий заданному имени;

  • ReadToNextSibling — переводит модуль чтения в следующий одноуровневый элемент, соответствующий заданному имени;

  • ReadToFollowing — переводит модуль чтения в следующий элемент, соответствующий заданному имени;

  • ReadValueChunk — считывает большие потоки текста, внедренного в XML-документ, используя операции с потоками;

  • ReadContentAsBase64 и ReadElementContentAsBase64 — считывают большие потоки двоичных данных, внедренных в XML-документ, используя операции с потоками, и декодируют содержимое Base64.

  • ReadContentAsBinHex и ReadElementContentAsBinHex — считывают большие потоки двоичных данных, внедренных в XML-документ, используя операции с потоками, и декодируют содержимое BinHex.

Функции безопасности

Можно создать объект XmlReader, который будет блокировать обработку DTD. Отключение обработки DTD может быть полезным для предотвращения некоторых разновидностей атак типа «отказ в обслуживании». Если обработка DTD отключена, объект XmlReader создает исключение XmlException, когда обнаруживается любое содержимое DTD. По умолчанию обработка DTD отключена. Чтобы включить обработку DTD, установите свойство XmlReaderSettings.ProhibitDtd в значение false перед созданием объекта XmlReader.

8459257a.alert_note(ru-ru,VS.90).gifПримечание.

Свойство ProhibitDtd также доступно в классе XmlTextReader.

Обработка сущностей

Объекты XmlReader, созданные методом Create, автоматически разворачивают все сущности. Если обнаруживаются сущности, которые не удается разрешить, создается исключение.

См. также

Основные понятия

Чтение XML с помощью XmlReader