英語で読む

次の方法で共有


XmlReaderSettings.ProhibitDtd プロパティ

定義

注意事項

Use XmlReaderSettings.DtdProcessing property instead.

注意事項

XmlReaderSettings.ProhibitDtd has been deprecated. Use DtdProcessing instead.

文書型定義 (DTD) 処理を禁止するかどうかを示す値を取得または設定します。 このプロパティは今後使用しません。 代わりに、DtdProcessing を使用してください。

C#
[System.Obsolete("Use XmlReaderSettings.DtdProcessing property instead.")]
public bool ProhibitDtd { get; set; }
C#
[System.Obsolete("XmlReaderSettings.ProhibitDtd has been deprecated. Use DtdProcessing instead.")]
public bool ProhibitDtd { get; set; }
C#
public bool ProhibitDtd { get; set; }

プロパティ値

DTD 処理を禁止する場合は true。それ以外の場合は false。 既定値は、true です。

属性

次の例では、DTD を使用してデータを検証します。

C#
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);
  }
}

この例では、itemDTD.xml ファイルを入力として使用します。

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>

注釈

true設定すると、 は XmlReader DTD コンテンツが検出されたときに を XmlException スローします。 サービス拒否攻撃が懸念される場合や、信頼関係のないソースを扱う場合は、DTD 処理を無効にしてください。

DTD 処理を有効にした場合、XmlSecureResolver を使用して XmlReader でアクセス可能なリソースを制限できます。 また、XML 処理に対するメモリと時間の割り当てが制限されるようにアプリケーションをデザインすることもできます。 たとえば、ASP.NET アプリケーション内でタイムアウト制限を設定します。

このプロパティは今後使用しません。 代わりに、DtdProcessing を使用してください。 既定値trueDtdProcessingProhibitを に設定ProhibitDtdしていた場合は。 を にParse設定ProhibitDtdDtdProcessingしたfalse場合。

適用対象

製品 バージョン (廃止)
.NET (Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9)
.NET Framework 2.0, 3.0, 3.5 (4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1)
.NET Standard (2.0, 2.1)