XmlValidatingReader.XmlResolver プロパティ
アセンブリ: System.Xml (system.xml.dll 内)

使用する XmlResolver。null 参照 (Visual Basic では Nothing) に設定されていると、外部リソースが解決されません。 .NET Framework バージョン 1.1 では、呼び出し元が完全に信頼されていなければ XmlResolver を指定できません。

![]() |
---|
Microsoft .NET Framework version 2.0 では、XmlValidatingReader クラスは使用されなくなりました。検証を実行する XmlReader のインスタンスは、XmlReaderSettings クラスおよび Create メソッドを使用して作成できます。詳細については、「XmlReader による XML データの検証」を参照してください。 |
XmlResolver は、検証プロセスを完了するために必要な DTD、エンティティ、またはスキーマを読み込むために使用します。
このプロパティはいつでも設定でき、次の Read 呼び出しの後に有効となります。このプロパティを null 参照 (Visual Basic では Nothing) に設定すると、リーダーは外部参照を解決する必要がないと判断します。この場合、リーダーは、リソースがある場合、内部リソースだけを検証します。
.NET Framework バージョン 1.1 では、このプロパティが設定されていない場合、アプリケーションの信頼性レベルによって既定の動作が決まります。
Fully trusted code: リーダーは、ユーザー資格情報を持たない既定の XmlUrlResolver を使用します。ネットワーク リソースへのアクセスに認証が要求される場合、XmlResolver プロパティを使用して必要な資格情報で XmlResolver を指定してください。
Semi-trusted code: XmlResolver プロパティが null 参照 (Visual Basic では Nothing) に設定されています。外部リソースが解決されていません。
スキーマを使用して検証を行う場合は、Schemas プロパティを使用して XmlSchemaCollection を指定することにより、手間のかかる読み込みプロセスを回避できます。

XmlResolver プロパティを使用して、ネットワーク DTD ファイルのアクセスに必要な資格情報を指定する例を次に示します。
' Create the reader. Dim txtreader as XmlTextReader = new XmlTextReader("book5.xml") Dim reader as XmlValidatingReader = new XmlValidatingReader(txtreader) txtreader.WhitespaceHandling = WhitespaceHandling.None ' Set the credentials necessary to access the DTD file stored on the network. Dim resolver as XmlUrlResolver = new XmlUrlResolver() resolver.Credentials = System.Net.CredentialCache.DefaultCredentials reader.XmlResolver = resolver ' Display each of the element nodes. while (reader.Read()) select case reader.NodeType case XmlNodeType.Element: Console.Write("<{0}>", reader.Name) case XmlNodeType.Text: Console.Write(reader.Value) case XmlNodeType.DocumentType: Console.Write("<!DOCTYPE {0} [{1}]", reader.Name, reader.Value) case XmlNodeType.EntityReference: Console.Write(reader.Name) case XmlNodeType.EndElement: Console.Write("</{0}>", reader.Name) end select end while
// Create the reader. XmlTextReader txtreader = new XmlTextReader("book5.xml"); XmlValidatingReader reader = new XmlValidatingReader(txtreader); txtreader.WhitespaceHandling = WhitespaceHandling.None; // Set the credentials necessary to access the DTD file stored on the network. XmlUrlResolver resolver = new XmlUrlResolver(); resolver.Credentials = System.Net.CredentialCache.DefaultCredentials; reader.XmlResolver = resolver; // Display each of the element nodes. while (reader.Read()){ switch (reader.NodeType){ case XmlNodeType.Element: Console.Write("<{0}>", reader.Name); break; case XmlNodeType.Text: Console.Write(reader.Value); break; case XmlNodeType.DocumentType: Console.Write("<!DOCTYPE {0} [{1}]", reader.Name, reader.Value); break; case XmlNodeType.EntityReference: Console.Write(reader.Name); break; case XmlNodeType.EndElement: Console.Write("</{0}>", reader.Name); break; } }
// Create the reader. -> XmlTextReader^ txtreader = gcnew XmlTextReader( "book5.xml" ); XmlValidatingReader^ reader = gcnew XmlValidatingReader( txtreader ); txtreader->WhitespaceHandling = WhitespaceHandling::None; // Set the credentials necessary to access the DTD file stored on the network. XmlUrlResolver^ resolver = gcnew XmlUrlResolver; resolver->Credentials = System::Net::CredentialCache::DefaultCredentials; reader->XmlResolver = resolver; // Display each of the element nodes. while ( reader->Read() ) { switch ( reader->NodeType ) { case XmlNodeType::Element: Console::Write( "< {0}>", reader->Name ); break; case XmlNodeType::Text: Console::Write( reader->Value ); break; case XmlNodeType::DocumentType: Console::Write( "<!DOCTYPE {0} [ {1}]", reader->Name, reader->Value ); break; case XmlNodeType::EntityReference: Console::Write( reader->Name ); break; case XmlNodeType::EndElement: Console::Write( "</ {0}>", reader->Name ); break; } } // Close the reader. reader->Close(); }
この例では、次のデータ ファイルを入力として使用しています。
book5.xml
<!DOCTYPE book SYSTEM 'http://myServer/DTDs/books.dtd'> <book ISBN = '1-861001-57-5'> <title>Pride And Prejudice</title> <price>19.95</price> <misc>&h;</misc> </book>
books.dtd

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- XmlValidatingReader.XmlResolver プロパティのページへのリンク