XmlReaderSettings Класс

Определение

Задает набор функций для поддержки объекта, созданного XmlReader методом Create .

public ref class XmlReaderSettings sealed
public sealed class XmlReaderSettings
type XmlReaderSettings = class
Public NotInheritable Class XmlReaderSettings
Наследование
XmlReaderSettings

Примеры

В следующем примере создается объект XmlReader , использующий XmlUrlResolver необходимые учетные данные.

// Create an XmlUrlResolver with the credentials necessary to access the Web server.
var resolver = new XmlUrlResolver();
var myCred = new NetworkCredential(UserName, SecurelyStoredPassword, Domain);
resolver.Credentials = myCred;

var settings = new XmlReaderSettings();
settings.XmlResolver = resolver;

// Create the reader.
XmlReader reader = XmlReader.Create("http://serverName/data/books.xml", settings);
' Create an XmlUrlResolver with the credentials necessary to access the Web server.
Dim resolver As New XmlUrlResolver()
Dim myCred As System.Net.NetworkCredential
myCred = New System.Net.NetworkCredential(UserName, SecurelyStoredPassword, Domain)
resolver.Credentials = myCred

Dim settings As New XmlReaderSettings()
settings.XmlResolver = resolver

' Create the reader.
Dim reader As XmlReader = XmlReader.Create("http://serverName/data/books.xml", settings)

Комментарии

Вы используете метод Create для получения экземпляров XmlReader. Этот метод использует XmlReaderSettings класс, чтобы указать, какие функции следует реализовать в объекте XmlReader , который он создает.

Дополнительные сведения о параметрах, используемых для проверок соответствия, проверки и других распространенных сценариев см. в разделах XmlReader "Примечания" и Create "Справочные страницы". См. XmlReaderSettings() конструктор списка параметров по умолчанию.

Вопросы безопасности

При использовании класса XmlReaderSettings, следует учитывать следующее.

  • Флаги проверки ProcessInlineSchema и ProcessSchemaLocation в объекте XmlReaderSettings не задаются по умолчанию. Если эти флаги заданы, XmlResolver объекта XmlReaderSettings используется для разрешения расположений схем, встречающихся в документе экземпляра XmlReader. Если объект XmlResolver имеет значение null, расположения схем не будут разрешены, даже если ProcessInlineSchema и ProcessSchemaLocation заданы флаги проверки.

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

  • Сообщения об ошибках проверки могут предоставлять конфиденциальные сведения о модели содержимого. Сообщения об ошибке проверки и предупреждения обрабатываются с помощью ValidationEventHandler делегата или передаются напрямую как XmlSchemaValidationException, если обработчик событий не предоставлен объекту XmlReaderSettings (предупреждения проверки не приводят к выбросу XmlSchemaValidationException). Эти сведения о модели содержимого не должны предоставляться в ненадежных сценариях. Предупреждающие сообщения проверки подавляются по умолчанию и могут быть сообщены, задав ReportValidationWarnings флаг.

  • Свойство SourceUri элемента XmlSchemaValidationException возвращает путь URI к файлу схемы, который вызвал исключение. Свойство SourceUri не должно быть предоставлено в ненадежных сценариях.

  • Отключение ProcessIdentityConstraints флага (включено по умолчанию) рекомендуется при проверке ненадёжных больших XML-документов в сценариях высокой доступности для схемы с ограничениями идентификации в большой части документа.

  • XmlReaderSettings объекты могут содержать конфиденциальную информацию, например учетные данные пользователя. При кэшировании объектов XmlReaderSettings или при передаче объекта XmlReaderSettings от одного компонента к другому следует быть осторожным.

  • Обработка DTD отключена по умолчанию. Если вы включите обработку DTD, необходимо учесть возможность включения DTD из ненадежных источников и возможных атак типа "отказ в обслуживании". Используйте ThrowingResolver для ограничения доступных ресурсов XmlReader .

  • Не принимать вспомогательные компоненты, такие как NameTable, XmlNamespaceManagerи XmlResolver объекты, из ненадежного источника.

  • Использование памяти приложения, использующего XmlReader, может иметь корреляцию с размером XML-документа, который был проанализирован. Одна из форм атаки типа "отказ в обслуживании" заключается в том, что для анализа отправляются слишком большие XML-документы. Вы можете ограничить размер документа, который можно проанализировать, задав MaxCharactersInDocument свойство, а затем ограничить количество символов, полученных от расширения сущностей, задав MaxCharactersFromEntities свойство.

Конструкторы

Имя Описание
XmlReaderSettings()

Инициализирует новый экземпляр класса XmlReaderSettings.

XmlReaderSettings(XmlResolver)
Устаревшие.

Инициализирует новый экземпляр класса XmlReaderSettings.

Свойства

Имя Описание
Async

Возвращает или задает, можно ли использовать асинхронные XmlReader методы для определенного XmlReader экземпляра.

CheckCharacters

Возвращает или задает значение, указывающее, следует ли выполнять проверку символов.

CloseInput

Возвращает или задает значение, указывающее, должен ли базовый поток или TextReader должен быть закрыт при закрытии средства чтения.

ConformanceLevel

Возвращает или задает уровень соответствия, с которым будет соответствовать.XmlReader

DtdProcessing

Возвращает или задает значение, определяющее обработку DTD.

IgnoreComments

Возвращает или задает значение, указывающее, следует ли игнорировать комментарии.

IgnoreProcessingInstructions

Возвращает или задает значение, указывающее, следует ли игнорировать инструкции по обработке.

IgnoreWhitespace

Возвращает или задает значение, указывающее, следует ли игнорировать незначительные пробелы.

LineNumberOffset

Возвращает или задает смещение XmlReader номера строки объекта.

LinePositionOffset

Возвращает или задает смещение XmlReader позиции строки объекта.

MaxCharactersFromEntities

Возвращает или задает значение, указывающее максимально допустимое количество символов в документе, которое приводит к расширению сущностей.

MaxCharactersInDocument

Возвращает или задает значение, указывающее максимально допустимое число символов в XML-документе. Нулевое значение (0) означает отсутствие ограничений на размер XML-документа. Значение, отличное от нуля, указывает максимальный размер в символах.

NameTable

Возвращает или задает используемый XmlNameTable для атомизованных сравнений строк.

ProhibitDtd
Устаревшие.
Устаревшие.

Возвращает или задает значение, указывающее, следует ли запретить обработку определения типа документа (DTD). Это свойство устарело. Вместо этого используйте DtdProcessing.

Schemas

Возвращает или задает значение, используемое XmlSchemaSet при проверке схемы.

ValidationFlags

Возвращает или задает значение, указывающее параметры проверки схемы. Этот параметр применяется к XmlReader объектам, проверяющим схемы (ValidationType для свойства задано значение ValidationType.Schema).

ValidationType

Возвращает или задает значение, указывающее, будет ли XmlReader выполняться проверка или назначение типов при чтении.

XmlResolver

Задает используемый XmlResolver для доступа к внешним документам.

Методы

Имя Описание
Clone()

Создает копию экземпляра XmlReaderSettings .

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
Reset()

Сбрасывает члены класса параметров в значения по умолчанию.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

События

Имя Описание
ValidationEventHandler

Возникает, когда средство чтения обнаруживает ошибки проверки.

Применяется к

См. также раздел