XmlDocument.XmlResolver XmlDocument.XmlResolver XmlDocument.XmlResolver XmlDocument.XmlResolver Property

定義

外部リソースを解決するために使用する XmlResolver を設定します。Sets the XmlResolver to use for resolving external resources.

public:
 virtual property System::Xml::XmlResolver ^ XmlResolver {  void set(System::Xml::XmlResolver ^ value); };
public virtual System.Xml.XmlResolver XmlResolver { set; }
member this.XmlResolver : System.Xml.XmlResolver
Public Overridable Property XmlResolver As XmlResolver

プロパティ値

使用する XmlResolverThe XmlResolver to use.

.NET Framework Version 1.1 の場合、完全に信頼されている呼び出し元だけが XmlResolver を指定できます。In version 1.1 of the.NET Framework, the caller must be fully trusted in order to specify an XmlResolver.

例外

このプロパティは null に設定され、外部 DTD または外部エンティティが検出されました。This property is set to null and an external DTD or entity is encountered.

次の例では、DTD ファイルへの参照を含む XML ドキュメントを読み込みます。The following example loads an XML document which includes a reference to a DTD file. XmlResolverプロパティを使用して、ネットワーク リソースにアクセスするために必要な資格情報を設定します。The XmlResolver property is used to set the credentials necessary to access the network resource.

#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
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

例では、入力として次のデータ ファイルを使用します。The example uses the following data files as input.

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 を読み込みまたはエンティティ参照の展開に使用できます。The XmlResolver can be used to load DTDs or expand entity references. 使用して、XmlResolver.Credentialsプロパティで資格情報を設定することができます、XmlResolverセキュリティで保護されたネットワーク リソースに格納されているリソースにアクセスします。Using the XmlResolver.Credentials property, you can set credentials on the XmlResolver to access resources stored on a secure network resource.

  • ドキュメントの読み込みを使用していない場合、 XmlReader (つまり、ストリームを使用して読み込まれた場合、ファイルや)、XmlResolver上、XmlDocumentは常に使用します。If the document was not loaded using an XmlReader (that is, if it was loaded using a stream, file, and so on) the XmlResolver on the XmlDocument is always used.

  • ドキュメントが読み込まれた場合、 XmlTextReader、に対する競合回避モジュール、 XmlTextReader DocumentType ノードのすべての DTD 参照を解決するために使用します。If the document was loaded with an XmlTextReader, the resolver on the XmlTextReader is used to resolve any DTD references in the DocumentType node. 競合回避モジュール、XmlDocument任意のエンティティ参照の展開に使用されます。The resolver on the XmlDocument is used to expand any entity references.

  • ドキュメントが読み込まれた場合、 XmlValidatingReader、に対する競合回避モジュール、XmlDocumentは使用されません。If the document was loaded with an XmlValidatingReader, the resolver on the XmlDocument is never used.

  • 拡張するクラスを使用して、ドキュメントが読み込まれたかどうかXmlReaderXmlReaderエンティティを解決することはできません (CanResolveEntity返しますfalse)、XmlResolver上、 XmlDocument DocumentType ノードのすべての参照を解決するために使用任意のエンティティ参照を展開します。If the document was loaded with a class that extends XmlReader and the XmlReader cannot resolve entities (CanResolveEntity returns false), the XmlResolver on the XmlDocument is used to resolve any references in the DocumentType node and to expand any entity references.

注意

場合、XmlDocumentを使用して読み込まれる、XmlReaderされていた、XmlResolver設定するには、XmlResolver上、XmlReaderによってキャッシュされていない、XmlDocumentLoadが完了するとします。If the XmlDocument is loaded using an XmlReader which had an XmlResolver set to it, the XmlResolver on the XmlReader is not cached by the XmlDocument after Load completes.

.Net Framework version 1.1 でこのプロパティが設定されていない場合、アプリケーションの信頼レベルは、既定の動作を決定します。In version 1.1 of the.NET Framework, if this property is not set, the trust level of the application determines the default behavior.

Fully trusted code: ドキュメントは、既定値を使用してXmlUrlResolverをユーザーの資格情報なし。Fully trusted code: The document uses a default XmlUrlResolver with no user credentials. ネットワーク リソースへのアクセスを認証が必要な場合は、使用、XmlResolverプロパティを指定する、XmlResolverのために必要な資格情報を使用します。If authentication is required to access a network resource, use the XmlResolver property to specify an XmlResolver with the necessary credentials.

Semi-trusted code: XmlResolverプロパティに設定されてnullします。Semi-trusted code: The XmlResolver property is set to null. 外部リソースは解決されません。External resources are not resolved.

セキュリティの詳細については、XmlResolverプロパティを参照してください外部リソースの解決します。For more information on security and the XmlResolver property, see Resolving External Resources.

このプロパティは、ドキュメント オブジェクト モデル (DOM) の Microsoft 拡張機能です。This property is a Microsoft extension to the Document Object Model (DOM).

適用対象

こちらもご覧ください