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


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

Обновлен: November 2007

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

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

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

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

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

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

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

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

Если объект 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

Безопасность и приложения System.Xml