Share via


XmlReader の外部リソースへのアクセス

XmlResolver クラスは、XmlReader オブジェクトが必要とするすべてのリソースを探し、アクセスするために使用されます。

概要

XmlResolver は次の目的で使用できます。

  • XML インスタンス ドキュメントを探して開く。

  • XML インスタンス ドキュメントが参照する外部リソースをすべて探して開く。 これには、エンティティ、ドキュメント型定義、スキーマなどが含まれます。

  • リソースが認証を必要とするシステム上に格納されている場合は、XmlResolver.Credentials プロパティを使用して必要な資格情報を指定します。

XmlReaderSettings.XmlResolver プロパティを設定して XmlReaderSettings オブジェクトを Create メソッドに渡すことにより、使用する XmlResolver を指定します。

注意

XmlResolver が指定されていない場合、作成されたリーダーは既定の XmlUrlResolver をユーザー資格情報なしで使用します。

次のコードは、XmlUrlResolver を既定の資格情報で使用する XmlReader のインスタンスを作成します。

' 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 クラスの 2 つの具象実装が含まれています。

  • XmlUrlResolver : file:// および http:// プロトコルを使用して解決します。 これは、使用される既定のリゾルバーです。

  • XmlSecureResolver: XmlResolver オブジェクトをラップし、元の XmlResolver がアクセスできるリソースを制限することにより、XmlResolver のもう 1 つの実装を安全に保つ支援をします。

詳細については、「NIB: URI 名を持つ外部 XML リソースの解決」を参照してください。

参照

概念

XmlReader による XML の読み取り

その他の技術情報

XmlReader クラスの使用