次の方法で共有


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 Version 1.1 の場合、完全に信頼されている呼び出し元だけが XmlResolver を指定できます。

例外

このプロパティは null に設定され、外部 DTD または外部エンティティが検出されました。

次の例では、DTD ファイルへの参照を含む XML ドキュメントを読み込みます。 この 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">

注釈

DTD XmlResolver の読み込みやエンティティ参照の展開に使用できます。 このプロパティを XmlResolver.Credentials 使用すると、セキュリティで保護されたネットワーク リソースに XmlResolver 格納されているリソースにアクセスするための資格情報を設定できます。

  • ドキュメントが (つまり、ストリーム、ファイルなどを使用して XmlReader 読み込まれた場合) XmlResolver を使用して読み込まれていない場合は、on XmlDocument が常に使用されます。

  • ドキュメントが読み込まれた XmlTextReader場合は、DocumentType ノード内 XmlTextReader の DTD 参照を解決するために、そのドキュメントのリゾルバーが使用されます。 上の XmlDocument リゾルバーは、エンティティ参照を展開するために使用されます。

  • ドキュメントが読み込まれた XmlValidatingReader場合、そのドキュメントの XmlDocument リゾルバーは使用されません。

  • 拡張されたクラスでドキュメントがXmlReader``XmlReader読み込まれ、エンティティを解決できない (CanResolveEntity戻るfalse) XmlResolver 場合、on XmlDocument は DocumentType ノード内の参照を解決し、エンティティ参照を展開するために使用されます。

注意

セットがXmlDocument設定されたをXmlResolver使用してXmlReader読み込まれる場合、XmlResolveron XmlReader は完了後LoadXmlDocumentキャッシュされません。

the.NET Framework のバージョン 1.1 では、このプロパティが設定されていない場合、アプリケーションの信頼レベルによって既定の動作が決定されます。

Fully trusted code: ドキュメントでは、ユーザー資格情報のない既定値 XmlUrlResolver が使用されます。 ネットワーク リソースへのアクセスに認証が必要な場合は、プロパティを XmlResolver 使用して必要な資格情報を XmlResolver 指定します。

Semi-trusted code:このプロパティは XmlResolver .null 外部リソースは解決されません。

セキュリティとプロパティの詳細については、「外部リソースのXmlResolver解決」を参照してください。

このプロパティは、ドキュメント オブジェクト モデル (DOM) の Microsoft 拡張機能です。

適用対象

こちらもご覧ください