XmlReaderSettings クラス
アセンブリ: System.Xml (system.xml.dll 内)


Microsoft .NET Framework version 2.0 リリースで XmlReader インスタンスを取得する場合は、Create メソッドの使用をお勧めします。Create メソッドは、XmlReaderSettings クラスを使用して、作成された XmlReader オブジェクトに実装する機能を指定します。
詳細については、「XML リーダーの作成」を参照してください。
セキュリティについての考慮事項XmlReaderSettings クラスを使用する際の考慮事項を次に示します。
-
既定では、XmlReaderSettings オブジェクトの ProcessInlineSchema 検証フラグおよび ProcessSchemaLocation 検証フラグは設定されません。これらのフラグを設定すると、XmlReader のインスタンス ドキュメントで検出されたスキーマの場所を解決するときに、XmlReaderSettings オブジェクトの XmlResolver が使用されます。XmlResolver オブジェクトが null 参照 (Visual Basic では Nothing) の場合は、ProcessInlineSchema 検証フラグと ProcessSchemaLocation 検証フラグが設定されていても、スキーマの場所は解決されません。
-
検証を実行しているときにスキーマを追加すると新しい型が追加されるため、検証しているドキュメントの検証結果を変えることができます。このため、信頼関係のあるソースの外部スキーマだけを解決するようにしてください。
-
検証エラー メッセージによって、コンテンツ モデルの機密情報が公開される場合があります。検証エラー メッセージと検証警告メッセージは、ValidationEventHandler デリゲートを使用して処理されます。ただし XmlReaderSettings オブジェクトにイベント ハンドラが用意されていない場合は、XmlSchemaValidationException として公開されます (検証の警告では XmlSchemaValidationException がスローされません)。信頼関係のないシナリオでは、このコンテンツ モデル情報を公開しないでください。既定では検証警告メッセージは表示されません。ReportValidationWarnings フラグを設定するとこのメッセージを報告できます。
-
XmlSchemaValidationException の SourceUri プロパティは、例外が発生する原因となったスキーマ ファイルへの URI パスを返します。信頼関係のないシナリオでは、SourceUri プロパティを公開しないでください。
-
可用性の高い状況で、信頼関係のない大量の XML ドキュメントをドキュメントの大部分について ID 制約のあるスキーマに対して検証する場合は、ProcessIdentityConstraints フラグを無効にすることをお勧めします (既定ではこのフラグは有効)。
-
XmlReaderSettings オブジェクトには、ユーザー資格情報のような機密性の高い情報を格納できます。XmlReaderSettings オブジェクトをキャッシュする場合、または 1 つのコンポーネントから別のコンポーネントに XmlReaderSettings オブジェクトを渡す場合は、注意が必要です。
-
既定では、DTD 処理が無効になります。DTD 処理を有効にする場合は、信頼関係のないソースからの DTD の組み込みおよびサービス拒否攻撃を受ける可能性があることに注意が必要です。XmlSecureResolver を使用して、XmlReader がアクセスできるリソースを制限してください。
-
信頼関係のないソースからのサポート コンポーネント (NameTable オブジェクト、XmlNamespaceManager オブジェクト、XmlResolver オブジェクトなど) は受け入れないようにしてください。

必要な資格情報で XmlUrlResolver を使用する XmlReader を作成する例を次に示します。
' Create an XmlUrlResolver with the credentials necessary to access the Web server. Dim resolver As New XmlUrlResolver() Dim myCred As System.Net.NetworkCredential myCred = New System.Net.NetworkCredential(UserName, SecurelyStoredPassword, Domain) resolver.Credentials = myCred Dim settings As New XmlReaderSettings() settings.XmlResolver = resolver ' Create the reader. Dim reader As XmlReader = XmlReader.Create("http://serverName/data/books.xml", settings)
// Create an XmlUrlResolver with the credentials necessary to access the Web server. XmlUrlResolver resolver = new XmlUrlResolver(); System.Net.NetworkCredential myCred; myCred = new System.Net.NetworkCredential(UserName,SecurelyStoredPassword,Domain); resolver.Credentials = myCred; XmlReaderSettings settings = new XmlReaderSettings(); settings.XmlResolver = resolver; // Create the reader. XmlReader reader = XmlReader.Create("http://serverName/data/books.xml", settings);

System.Xml.XmlReaderSettings


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


- XmlReaderSettings クラスのページへのリンク