XmlReaderSettings.ProhibitDtd XmlReaderSettings.ProhibitDtd XmlReaderSettings.ProhibitDtd XmlReaderSettings.ProhibitDtd Property



この API は現在使われていません。

文書型定義 (DTD) 処理を禁止するかどうかを示す値を取得または設定します。Gets or sets a value indicating whether to prohibit document type definition (DTD) processing. このプロパティは今後使用しません。This property is obsolete. 代わりに、DtdProcessing を使用してください。Use DtdProcessing instead.

 property bool ProhibitDtd { bool get(); void set(bool value); };
[System.Obsolete("Use XmlReaderSettings.DtdProcessing property instead.")]
public bool ProhibitDtd { get; set; }
member this.ProhibitDtd : bool with get, set
Public Property ProhibitDtd As Boolean


DTD 処理を禁止する場合は true。それ以外の場合は falsetrue to prohibit DTD processing; otherwise false. 既定値は、true です。The default is true.

次の例では、DTD を使用してデータを検証します。The following example validates data using a DTD.

#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->DtdProcessing = DtdProcessing::Parse;
   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;
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.DtdProcessing = DtdProcessing.Parse;
    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);
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.DtdProcessing = DtdProcessing.Parse
    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

この例では、入力として itemDTD .xml ファイルを使用します。The example uses the itemDTD.xml file as input.

<!--XML file using a DTD-->
<!DOCTYPE store [
  <!ELEMENT store (item)*> 
  <!ELEMENT item (name,dept,price)>
  <!ELEMENT name (#PCDATA)>
  <!ELEMENT price (#PCDATA)>]>
  <item type="supplies"  ISBN="2-3631-4">


true設定するXmlExceptionと、DTD コンテンツが検出されたときにがスローされます。XmlReaderWhen set to true, the XmlReader throws an XmlException when any DTD content is encountered. サービス拒否攻撃が懸念される場合や、信頼関係のないソースを扱う場合は、DTD 処理を無効にしてください。Do not enable DTD processing if you are concerned about Denial of Service issues or if you are dealing with untrusted sources.

DTD 処理を有効にした場合、XmlSecureResolver を使用して XmlReader でアクセス可能なリソースを制限できます。If you have DTD processing enabled, you can use the XmlSecureResolver to restrict the resources that the XmlReader can access. また、XML 処理に対するメモリと時間の割り当てが制限されるようにアプリケーションをデザインすることもできます。You can also design your application so that the XML processing is memory and time constrained. たとえば、ASP.NET アプリケーション内でタイムアウト制限を設定します。For example, configure time-out limits in your ASP.NET application.

このプロパティは今後使用しません。This property is obsolete. 代わりに、DtdProcessing を使用してください。Use DtdProcessing instead. ProhibitDtd既定値trueをにProhibit設定した場合は。 DtdProcessingIf you had set ProhibitDtd to its default value true set DtdProcessing to Prohibit. をに設定しParseた場合は。 ProhibitDtd false DtdProcessingIf you had set ProhibitDtd to false set DtdProcessing to Parse.