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 つの実装を安全に保つ支援をします。
詳細については、「URI 名を持つ外部 XML リソースの解決」を参照してください。