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

Dim instance As XmlReaderSettings Dim value As Boolean value = instance.ProhibitDtd instance.ProhibitDtd = value
/** @property */ public boolean get_ProhibitDtd () /** @property */ public void set_ProhibitDtd (boolean value)
DTD 処理を禁止する場合は true。それ以外の場合は false。既定値は true です。

true に設定すると、DTD コンテンツを検出したときに XmlReader が XmlException をスローします。サービス拒否攻撃が懸念される場合や、信頼関係のないソースを扱う場合は、DTD 処理を無効にしてください。
DTD 処理を有効にした場合、XmlReader でアクセスできるリソースを、XmlSecureResolver を使って制限できます。また、XML 処理に対するメモリと時間の割り当てが制限されるようにアプリケーションをデザインすることもできます。たとえば、ASP.NET アプリケーションにタイムアウトの制限を設定します。

Imports System Imports System.Xml Imports System.Xml.Schema Imports System.IO public class Sample public shared sub Main() ' Set the validation settings. Dim settings as XmlReaderSettings = new XmlReaderSettings() settings.ProhibitDtd = false settings.ValidationType = ValidationType.DTD AddHandler settings.ValidationEventHandler, AddressOf ValidationCallBack ' Create the XmlReader object. Dim reader as XmlReader = XmlReader.Create("itemDTD.xml", settings) ' Parse the file. while reader.Read() end while end sub ' Display any validation errors. private shared sub ValidationCallBack(sender as object, e as ValidationEventArgs) Console.WriteLine("Validation Error: {0}", e.Message) end sub end class
using System; using System.Xml; using System.Xml.Schema; using System.IO; public class Sample { public static void Main() { // Set the validation settings. XmlReaderSettings settings = new XmlReaderSettings(); settings.ProhibitDtd = false; settings.ValidationType = ValidationType.DTD; settings.ValidationEventHandler += new ValidationEventHandler (ValidationCallBack); // Create the XmlReader object. XmlReader reader = XmlReader.Create("itemDTD.xml", settings); // Parse the file. while (reader.Read()); } // Display any validation errors. private static void ValidationCallBack(object sender, ValidationEventArgs e) { Console.WriteLine("Validation Error: {0}", e.Message); } }
#using <System.Xml.dll> using namespace System; using namespace System::Xml; using namespace System::Xml::Schema; using namespace System::IO; // Display any validation errors. static void ValidationCallBack( Object^ /*sender*/, ValidationEventArgs^ e ) { Console::WriteLine( L"Validation Error: {0}", e->Message ); } int main() { // Set the validation settings. XmlReaderSettings^ settings = gcnew XmlReaderSettings; settings->ProhibitDtd = false; settings->ValidationType = ValidationType::DTD; settings->ValidationEventHandler += gcnew ValidationEventHandler( ValidationCallBack ); // Create the XmlReader object. XmlReader^ reader = XmlReader::Create( L"itemDTD.xml", settings ); // Parse the file. while ( reader->Read() ) ; return 1; }
この例では、入力として、itemDTD.xml というファイルを使用しています。
<!--XML file using a DTD--> <!DOCTYPE store [ <!ELEMENT store (item)*> <!ELEMENT item (name,dept,price)> <!ATTLIST item type CDATA #REQUIRED> <!ELEMENT name (#PCDATA)> <!ELEMENT price (#PCDATA)>]> <store> <item type="supplies" ISBN="2-3631-4"> <name>paint</name> <price>16.95</price> </item> </store>

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からXmlReaderSettings.ProhibitDtd プロパティを検索する場合は、下記のリンクをクリックしてください。

- XmlReaderSettings.ProhibitDtd プロパティのページへのリンク