XmlReaderSettings.DtdProcessing Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt een waarde opgehaald of ingesteld waarmee de verwerking van DTD's wordt bepaald.
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
Waarde van eigenschap
Een van de opsommingswaarden die de verwerking van DTD's bepaalt. De standaardwaarde is Prohibit.
Voorbeelden
In het volgende voorbeeld wordt een XML-bestand gevalideerd met behulp van een DTD-bestand.
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
In het voorbeeld wordt het itemDTD.xml bestand als invoer gebruikt.
<!--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>
Opmerkingen
Validatie van documenttypedefinitie (DTD) wordt geïmplementeerd met behulp van de geldigheidsbeperkingen die zijn gedefinieerd in de aanbeveling W3C Extensible Markup Language (XML) 1.0 (vierde editie). DTD's gebruiken een formele grammatica om de structuur en syntaxis van compatibele XML-documenten te beschrijven; ze geven de inhoud en waarden op die zijn toegestaan voor het XML-document.
De DtdProcessing eigenschap kan een van de volgende waarden hebben:
- DtdProcessing.Parse DTD-verwerking inschakelen.
- DtdProcessing.Prohibit om een XmlException uitzondering te genereren wanneer er een DTD wordt aangetroffen.
- DtdProcessing.Ignore DTD-verwerking uitschakelen zonder waarschuwingen of uitzonderingen.
Als u validatie wilt uitvoeren op basis van een DTD, gebruikt de XmlReader DTD die is gedefinieerd in de DOCTYPE-declaratie van een XML-document. De DOCTYPE-declaratie kan verwijzen naar een inline DTD of kan een verwijzing naar een extern DTD-bestand zijn. Een XML-bestand valideren op basis van een DTD:
- Stel de eigenschap XmlReaderSettings.DtdProcessing in op
DtdProcessing.Parse. - Stel de eigenschap XmlReaderSettings.ValidationType in op
ValidationType.DTD. - Als de DTD een extern bestand is dat is opgeslagen op een netwerkresource waarvoor verificatie is vereist, geeft u een XmlResolver object met de benodigde referenties door aan de Create methode.
Important
Als de DtdProcessing eigenschap is ingesteld op DtdProcessing.Ignore, zal XmlReader de DTD's niet rapporteren. Dit betekent dat het DTD/DOCTYPE verloren gaat tijdens de uitvoer.