XmlReaderSettings.ProhibitDtd Propriedade

Definição

Cuidado

Use XmlReaderSettings.DtdProcessing property instead.

Cuidado

XmlReaderSettings.ProhibitDtd has been deprecated. Use DtdProcessing instead.

Obtém ou define um valor que indica se o processamento de DTD (definição de tipo de documento) deve ser proibido. Esta propriedade está obsoleta. Use DtdProcessing em seu lugar.

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

Valor da propriedade

Boolean

true para proibir o processamento de DTD; caso contrário, false. O padrão é true.

Atributos

Exemplos

O exemplo a seguir valida dados usando um DTD.

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

O exemplo usa o arquivo itemDTD.xml como entrada.

<!--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>

Comentários

Quando definido como true, o XmlReader gera um XmlException quando qualquer conteúdo DTD é encontrado. Não habilite o processamento de DTD se você estiver preocupado sobre problemas de negação de serviço ou se você está tratando as fontes não confiáveis.

Se você tiver o processamento de DTD ativado, você pode usar XmlSecureResolver para restringir os recursos que XmlReader pode acessar. Você também pode criar seu aplicativo para que processar XML é memória e hora restritos. Por exemplo, configurar limites de tempo limite no seu aplicativo ASP.NET.

Esta propriedade está obsoleta. Use DtdProcessing em seu lugar. Se você tivesse definido ProhibitDtd como seu valor true padrão definido DtdProcessing como Prohibit. Se você tivesse definido ProhibitDtd como false DtdProcessing Parse.

Aplica-se a

Produto Versões (Obsoleto)
.NET (Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7)
.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)
.NET Standard (2.0, 2.1)