Поделиться через


Доступ к внешним ресурсам из класса XmlReader

Класс XmlResolver используется для поиска всех ресурсов, нужных объекту XmlReader, и доступа к ним.

Общие сведения

С помощью объекта XmlResolver можно делать следующее:

  • Найти и открыть документ экземпляра XML.

  • Найти и открыть любые внешние ресурсы, на которые ссылается документ экземпляра XML. Это относится к сущностям, определениям типа документа, схемам и т. п.

  • Если ресурс хранится в системе, требующей проверки подлинности, можно задать нужные учетные данные с помощью свойства XmlResolver.Credentials.

Использование XmlResolver указывается путем настройки свойства XmlReaderSettings.XmlResolver и передачи объекта XmlReaderSettings методу Create.

Примечание

Если объект XmlResolver не задан, созданный объект для чтения будет использовать объект по умолчанию XmlUrlResolver, для которого не заданы учетные данные пользователя.

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

' Create a resolver with default credentials.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials

' Set the reader settings object to use the resolver.
settings.XmlResolver = resolver

' Create the XmlReader object.
Dim reader as XmlReader = XmlReader.Create("https://ServerName/data/books.xml", settings)
// Create a resolver with default credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials;

// Set the reader settings object to use the resolver.
settings.XmlResolver = resolver;

// Create the XmlReader object.
XmlReader reader = XmlReader.Create("https://ServerName/data/books.xml", settings);
// Create a resolver with default credentials.
XmlUrlResolver^ resolver = gcnew XmlUrlResolver;
resolver->Credentials = System::Net::CredentialCache::DefaultCredentials;

 // Set the reader settings object to use the resolver.
 settings->XmlResolver = resolver;

// Create the XmlReader object.
XmlReader^ reader = XmlReader::Create( L"https://ServerName/data/books.xml", settings );

Пространство имен System.Xml содержит две конкретные реализации класса XmlResolver.

  • XmlUrlResolver - разрешение производится по протоколам file:// и http://. Это арбитр, используемый по умолчанию.

  • Класс XmlSecureResolver помогает защитить другую реализацию объекта XmlResolver, заключая объект XmlResolver в обертку и ограничивая ресурсы, к которым имеет доступ базовый объект XmlResolver.

Дополнительные сведения см. в разделе Разрешение внешних XML-ресурсов, именованных посредством URI.

См. также

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

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

Другие ресурсы

Использование класса XmlReader