Доступ к внешним ресурсам из класса 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