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


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 .

В версии 1.1 the.NET Framework вызывающий объект должен быть полностью доверенным, чтобы указать XmlResolverобъект.

Исключения

Это свойство имеет значение и обнаружена null внешняя DTD или сущность.

Примеры

В следующем примере загружается XML-документ, содержащий ссылку на DTD-файл. Свойство XmlResolver используется для задания учетных данных, необходимых для доступа к сетевому ресурсу.

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), XmlDocumentXmlResolver он используется для разрешения ссылок на все ссылки в узле DocumentType и для расширения ссылок на сущности.

Замечание

Если он XmlDocument загружается с помощью XmlReader набора, XmlResolverXmlReaderXmlResolver он не кэшируется XmlDocument после Load завершения.

В версии 1.1 the.NET Framework, если это свойство не задано, уровень доверия приложения определяет поведение по умолчанию.

Fully trusted code: Документ использует значение по умолчанию XmlUrlResolver без учетных данных пользователя. Если для доступа к сетевому ресурсу требуется проверка подлинности, используйте XmlResolver свойство, чтобы указать XmlResolver необходимые учетные данные.

Semi-trusted code: Для XmlResolver свойства задано значение null. Внешние ресурсы не разрешаются.

Дополнительные сведения о безопасности и XmlResolver свойстве см. в разделе "Разрешение внешних ресурсов".

Это свойство является расширением Майкрософт для объектной модели документов (DOM).

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

См. также раздел