XmlReaderSettings.DtdProcessing Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Recebe ou define um valor que determina o processamento das DTDs.
public:
property System::Xml::DtdProcessing DtdProcessing { System::Xml::DtdProcessing get(); void set(System::Xml::DtdProcessing value); };
public System.Xml.DtdProcessing DtdProcessing { get; set; }
member this.DtdProcessing : System.Xml.DtdProcessing with get, set
Public Property DtdProcessing As DtdProcessing
Valor de Propriedade
Um dos valores de enumeração que determina o processamento das DTDs. A predefinição é Prohibit.
Exemplos
O exemplo seguinte valida um ficheiro XML usando um ficheiro 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);
}
}
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
O exemplo usa o itemDTD.xml ficheiro 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>
Observações
A validação da definição de tipo de documento (DTD) é implementada usando as restrições de validade definidas na recomendação XML (Extensible Markup Language) 1.0 (quarta edição) do W3C. DTDs usam uma gramática formal para descrever a estrutura e sintaxe de documentos XML compatíveis; eles especificam o conteúdo e os valores permitidos para o documento XML.
A DtdProcessing propriedade pode ter um dos seguintes valores:
- DtdProcessing.Parse para ativar o processamento de DTD.
- DtdProcessing.Prohibit para lançar uma XmlException exceção quando um DTD é encontrado.
- DtdProcessing.Ignore para desativar o processamento DTD sem avisos ou exceções.
Para executar a validação em relação a um DTD, o XmlReader usa o DTD definido na declaração DOCTYPE de um documento XML. A declaração DOCTYPE pode apontar para um DTD embutido ou pode ser uma referência a um arquivo DTD externo. Para validar um arquivo XML em relação a um DTD:
- Defina a propriedade XmlReaderSettings.DtdProcessing como
DtdProcessing.Parse. - Defina a propriedade XmlReaderSettings.ValidationType como
ValidationType.DTD. - Se o DTD for um arquivo externo armazenado em um recurso de rede que requer autenticação, passe um XmlResolver objeto com as credenciais necessárias para o Create método.
Importante
Se a DtdProcessing propriedade estiver definida como DtdProcessing.Ignore, o XmlReader não relatará os DTDs. Isso significa que o DTD/DOCTYPE será perdido na saída.