XmlReaderSettings Класс

Определение

Задает набор функций, которые должны поддерживаться объектом XmlReader, создаваемым с помощью метода Create.Specifies a set of features to support on the XmlReader object created by the Create method.

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

Примеры

В следующем примере создается XmlReader, использующий XmlUrlResolver с необходимыми учетными данными.The following example creates an XmlReader that uses an XmlUrlResolver with the necessary credentials.

// 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)

Комментарии

Для получения экземпляров XmlReader используется метод Create.You use the Create method to obtain XmlReader instances. Этот метод использует класс XmlReaderSettings, чтобы указать, какие функции должны быть реализованы в создаваемом им объекте XmlReader.This method uses the XmlReaderSettings class to specify which features to implement in the XmlReader object it creates.

Сведения о параметрах, используемых для проверки соответствия, проверки и других распространенных сценариев, см. в разделах "Примечания" на страницах справочника XmlReader и Create.See the Remarks sections of the XmlReader and Create reference pages for information about which settings to use for conformance checks, validation, and other common scenarios. Список параметров по умолчанию см. в конструкторе XmlReaderSettings().See the XmlReaderSettings() constructor for a list of default settings.

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

При использовании класса XmlReaderSettings учитывайте следующее.Consider the following when using the XmlReaderSettings class.

  • Флаги проверки ProcessInlineSchema и ProcessSchemaLocation объекта XmlReaderSettings по умолчанию не установлены.The ProcessInlineSchema and ProcessSchemaLocation validation flags of an XmlReaderSettings object are not set by default. Если эти флаги установлены, для разрешения расположения схем, обнаруженных в экземпляре документа в объекте XmlResolver, используется арбитр XmlReaderSettings объекта XmlReader.When these flags are set, the XmlResolver of the XmlReaderSettings object is used to resolve schema locations encountered in the instance document in the XmlReader. Если XmlResolver объект null, расположения схем не разрешаются, даже если установлены флаги проверки ProcessInlineSchema и ProcessSchemaLocation.If the XmlResolver object is null, schema locations are not resolved even if the ProcessInlineSchema and ProcessSchemaLocation validation flags are set.

  • Схемы, добавленные во время проверки, добавляют новые типы и могут изменить результат проверки документа.Schemas added during validation add new types and can change the validation outcome of the document being validated. Поэтому следует разрешать только внешние схемы из доверенных источников.As a result, external schemas should only be resolved from trusted sources.

  • Сообщения об ошибках проверки могут представлять сведения о модели конфиденциального содержимого.Validation error messages may expose sensitive content model information. Сообщения об ошибках и предупреждениях проверки обрабатываются с помощью делегата ValidationEventHandler или предоставляются как XmlSchemaValidationException, если для объекта XmlReaderSettings не предоставлен обработчик событий (предупреждения проверки не вызывают возникновения XmlSchemaValidationException).Validation error and warning messages are handled using the ValidationEventHandler delegate, or are exposed as an XmlSchemaValidationException if no event handler is provided to the XmlReaderSettings object (validation warnings do not cause an XmlSchemaValidationException to be thrown). Эта информация о модели содержимого не должна предоставляться в недоверенных сценариях.This content model information should not be exposed in untrusted scenarios. Сообщения с предупреждениями о проверке по умолчанию подавляются, и их можно сообщить, установив флаг ReportValidationWarnings.Validation warning messages are suppressed by default and can be reported by setting the ReportValidationWarnings flag.

  • Свойство SourceUri XmlSchemaValidationException Возвращает путь универсального кода ресурса (URI) к файлу схемы, вызвавшему исключение.The SourceUri property of an XmlSchemaValidationException returns the URI path to the schema file that caused the exception. Свойство SourceUri не должно предоставляться в недоверенных сценариях.The SourceUri property should not be exposed in untrusted scenarios.

  • Отключение флага ProcessIdentityConstraints (включено по умолчанию) рекомендуется при проверке ненадежных больших XML-документов в сценариях высокого уровня доступности для схемы с ограничениями идентификации в большой части документа.Disabling the ProcessIdentityConstraints flag (enabled by default) is recommended when validating, untrusted, large XML documents in high availability scenarios against a schema with identity constraints over a large part of the document.

  • Объекты XmlReaderSettings могут содержать конфиденциальные сведения, например учетные данные пользователей.XmlReaderSettings objects can contain sensitive information such as user credentials. Следует соблюдать осторожность при кэшировании объектов XmlReaderSettings или при передаче объекта XmlReaderSettings от одного компонента другому.You should be careful when caching XmlReaderSettings objects, or when passing the XmlReaderSettings object from one component to another.

  • Обработка DTD по умолчанию отключена.DTD processing is disabled by default. При включении обработки DTD необходимо учитывать, что определения DTD из ненадежных источников и возможные атаки типа «отказ в обслуживании».If you enable DTD processing, you need to be aware of including DTDs from untrusted sources and possible denial of service attacks. Используйте XmlSecureResolver, чтобы ограничить ресурсы, к которым XmlReader может получить доступ.Use the XmlSecureResolver to restrict the resources that the XmlReader can access.

  • Не следует принимать вспомогательные компоненты, например объекты NameTable, XmlNamespaceManager и XmlResolver, из ненадежных источников.Do not accept supporting components, such as NameTable, XmlNamespaceManager, and XmlResolver objects, from an untrusted source.

  • Объем памяти, который требуется приложению, использующему объект XmlReader, может соотноситься с размерами анализируемого XML-документа.Memory usage of an application that uses XmlReader may have a correlation to the size of the parsed XML document. Одна из форм атаки типа «отказ в обслуживании» заключается в передаче для синтаксического анализа чрезмерно больших XML-документов.One form of denial of service attack is when excessively large XML documents are submitted to be parsed. Можно ограничить размер документа, который можно проанализировать, задав свойство MaxCharactersInDocument, а затем ограничив число символов, полученное в результате расширения сущностей, установив свойство MaxCharactersFromEntities.You can limit the size of the document that can be parsed by setting the MaxCharactersInDocument property and then limit the number of characters that result from expanding entities by setting the MaxCharactersFromEntities property.

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

XmlReaderSettings()

Инициализирует новый экземпляр класса XmlReaderSettings.Initializes a new instance of the XmlReaderSettings class.

XmlReaderSettings(XmlResolver)

Инициализирует новый экземпляр класса XmlReaderSettings.Initializes a new instance of the XmlReaderSettings class.

Свойства

Async

Получает или задает значение, указывающее, можно ли использовать асинхронные методы XmlReader для конкретного экземпляра XmlReader.Gets or sets whether asynchronous XmlReader methods can be used on a particular XmlReader instance.

CheckCharacters

Возвращает или задает значение, показывающее, осуществляется ли проверка символов.Gets or sets a value indicating whether to do character checking.

CloseInput

Возвращает или задает значение, указывающее, следует ли закрыть основной поток или TextReader при закрытии средства чтения.Gets or sets a value indicating whether the underlying stream or TextReader should be closed when the reader is closed.

ConformanceLevel

Возвращает или задает уровень соответствия для XmlReader.Gets or sets the level of conformance which the XmlReader will comply.

DtdProcessing

Получает или задает значение, определяющее обработку определений DTD.Gets or sets a value that determines the processing of DTDs.

IgnoreComments

Возвращает или задает значение, указывающее, следует ли игнорировать комментарии.Gets or sets a value indicating whether to ignore comments.

IgnoreProcessingInstructions

Возвращает или задает значение, указывающее, следует ли игнорировать инструкции по обработке.Gets or sets a value indicating whether to ignore processing instructions.

IgnoreWhitespace

Возвращает или задает значение, определяющее, будут ли игнорироваться незначимые символы-разделители.Gets or sets a value indicating whether to ignore insignificant white space.

LineNumberOffset

Возвращает или задает смещение номера строки объекта XmlReader.Gets or sets line number offset of the XmlReader object.

LinePositionOffset

Возвращает или задает смещение позиции строки объекта XmlReader.Gets or sets line position offset of the XmlReader object.

MaxCharactersFromEntities

Возвращает или задает значение, указывающее максимально допустимое количество символов в документе, которые возникают вследствие расширения сущностей.Gets or sets a value indicating the maximum allowable number of characters in a document that result from expanding entities.

MaxCharactersInDocument

Возвращает или задает значение, указывающее максимальное допустимое количество символов в XML-документе.Gets or sets a value indicating the maximum allowable number of characters in an XML document. Нуль (0) означает отсутствие ограничений на размер XML-документа.A zero (0) value means no limits on the size of the XML document. Значение, не равное нулю, указывает максимальное количество символов.A non-zero value specifies the maximum size, in characters.

NameTable

Возвращает или задает таблицу XmlNameTable, используемую для разделенных сравнений строк.Gets or sets the XmlNameTable used for atomized string comparisons.

ProhibitDtd

Возвращает или задает значение, определяющее, следует ли запретить обработку DTD.Gets or sets a value indicating whether to prohibit document type definition (DTD) processing. Это свойство устарело.This property is obsolete. Используйте вместо этого DtdProcessing.Use DtdProcessing instead.

Schemas

Возвращает или задает XmlSchemaSet для использования при проверке схемы.Gets or sets the XmlSchemaSet to use when performing schema validation.

ValidationFlags

Возвращает или задает значение, указывающее параметры проверки схемы.Gets or sets a value indicating the schema validation settings. Этот параметр применим к объектам XmlReader, служащим для проверки схем (значение свойства ValidationType равно ValidationType.Schema).This setting applies to XmlReader objects that validate schemas (ValidationType property set to ValidationType.Schema).

ValidationType

Возвращает или задает значение, показывающее, будет ли XmlReader при считывании выполнять проверку типа назначения.Gets or sets a value indicating whether the XmlReader will perform validation or type assignment when reading.

XmlResolver

Задает XmlResolver, используемый для доступа ко внешним документам.Sets the XmlResolver used to access external documents.

Методы

Clone()

Создает копию экземпляра XmlReaderSettings.Creates a copy of the XmlReaderSettings instance.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

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

Служит в качестве хэш-функции по умолчанию.Serves as the default hash function.

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

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

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

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

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

Повторно загружает значения по умолчанию для элементов класса параметров.Resets the members of the settings class to their default values.

ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

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

События

ValidationEventHandler

Возникает, когда средство чтения встречает ошибки проверки.Occurs when the reader encounters validation errors.

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

Дополнительно