XmlDocument.XmlResolver Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Задает XmlResolver, используемый для разрешения внешних ресурсов.
public:
virtual property System::Xml::XmlResolver ^ XmlResolver { void set(System::Xml::XmlResolver ^ value); };
public virtual System.Xml.XmlResolver XmlResolver { set; }
public virtual System.Xml.XmlResolver? XmlResolver { set; }
member this.XmlResolver : System.Xml.XmlResolver
Public Overridable Property XmlResolver As XmlResolver
Значение свойства
Используемый XmlResolver
.
Чтобы указать XmlResolver
в .NET Framework версии 1.1, вызывающий объект должен быть надежным.
Исключения
Это свойство имеет значение null
, и произошло обнаружение внешнего DTD или внешней сущности.
Примеры
В следующем примере загружается XML-документ, содержащий ссылку на DTD-файл. Свойство XmlResolver
используется для задания учетных данных, необходимых для доступа к сетевому ресурсу.
#using <System.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Net;
int main()
{
// Supply the credentials necessary to access the DTD file stored on the network.
XmlUrlResolver^ resolver = gcnew XmlUrlResolver;
resolver->Credentials = CredentialCache::DefaultCredentials;
// Create and load the XmlDocument.
XmlDocument^ doc = gcnew XmlDocument;
doc->XmlResolver = resolver; // Set the resolver.
doc->Load( "book5.xml" );
// Display the entity replacement text which is pulled from the DTD file.
Console::WriteLine( doc->DocumentElement->LastChild->InnerText );
}
using System;
using System.IO;
using System.Xml;
using System.Net;
public class Sample {
public static void Main() {
// Supply the credentials necessary to access the DTD file stored on the network.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = CredentialCache.DefaultCredentials;
// Create and load the XmlDocument.
XmlDocument doc = new XmlDocument();
doc.XmlResolver = resolver; // Set the resolver.
doc.Load("book5.xml");
// Display the entity replacement text which is pulled from the DTD file.
Console.WriteLine(doc.DocumentElement.LastChild.InnerText);
}
} // End class
Imports System.IO
Imports System.Xml
Imports System.Net
public class Sample
public shared sub Main()
' Supply the credentials necessary access the DTD file stored on the network.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
resolver.Credentials = CredentialCache.DefaultCredentials
' Create and load the XmlDocument.
Dim doc as XmlDocument = new XmlDocument()
doc.XmlResolver = resolver ' Set the resolver.
doc.Load("book5.xml")
' Display the entity replacement text which is pulled from the DTD file.
Console.WriteLine(doc.DocumentElement.LastChild.InnerText)
end sub
end class
В этом примере в качестве входных данных используются следующие файлы данных.
book5.xml
<!DOCTYPE book SYSTEM 'http://myServer/data/books.dtd'>
<book ISBN = '1-861001-57-5'>
<title>Oberon's Legacy</title>
<price>19.95</price>
<misc>&h;</misc>
</book>
books.dtd
<!ELEMENT book (title,price,misc)>
<!ATTLIST book
genre CDATA "novel"
ISBN CDATA #REQUIRED>
<!ELEMENT title (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT misc (#PCDATA)>
<!ENTITY h "hardcover">
<!ENTITY p "paperback">
Комментарии
Его XmlResolver
можно использовать для загрузки DTD или расширения ссылок на сущности. XmlResolver.Credentials С помощью свойства можно задать учетные данные XmlResolver
для доступа к ресурсам, хранящимся в защищенном сетевом ресурсе.
Если документ не был загружен с помощью XmlReader (т. е. если он был загружен с помощью потока, файла и т. д.),
XmlResolver
XmlDocument
он всегда используется.Если документ был загружен с XmlTextReaderпомощью , сопоставитель используется
XmlTextReader
для разрешения любых ссылок DTD в узле DocumentType. Сопоставитель используется для расширения ссылок наXmlDocument
сущности.Если документ был загружен с помощью XmlValidatingReader, сопоставитель никогда
XmlDocument
не используется.Если документ был загружен с классом, расширяющимся
XmlReader
иXmlReader
не удается разрешить сущности (CanResolveEntityвозвращает),false``XmlResolver
онXmlDocument
используется для разрешения ссылок в узле DocumentType и расширения ссылок на сущности.
Примечание
Если он XmlDocument
загружается с помощью XmlResolver
XmlReader набора, XmlResolver
он XmlReader
не кэшируется XmlDocument
после Load завершения.
В версии 1.1 the.NET Framework, если это свойство не задано, уровень доверия приложения определяет поведение по умолчанию.
Fully trusted code:
В документе используется значение по умолчанию XmlUrlResolver без учетных данных пользователя. Если для доступа к сетевому ресурсу требуется проверка подлинности, используйте XmlResolver
свойство, чтобы указать XmlResolver
необходимые учетные данные.
Semi-trusted code:
Свойству XmlResolver
null
присвоено значение . Внешние ресурсы не разрешаются.
Дополнительные сведения о безопасности и свойстве см. в XmlResolver
разделе "Разрешение внешних ресурсов".
Это свойство является расширением Microsoft для объектной модели документа (DOM).