XmlReaderSettings.DtdProcessing Property
Gets or sets a value that determines the processing of DTDs.
Assembly: System.Xml (in System.Xml.dll)
Document type definition (DTD) validation is implemented by using the validity constraints defined in the W3C Extensible Markup Language (XML) 1.0 (fourth edition) recommendation. DTDs use a formal grammar to describe the structure and syntax of compliant XML documents; they specify the content and values allowed for the XML document.
This property can have one of the following values:
DtdProcessing.Parse to enable DTD processing.
DtdProcessing.Prohibit to throw an XmlException exception when a DTD is encountered.
DtdProcessing.Ignore to disable DTD processing without warnings or exceptions.
To perform validation against a DTD, the XmlReader uses the DTD defined in the DOCTYPE declaration of an XML document. The DOCTYPE declaration can either point to an inline DTD or can be a reference to an external DTD file. To validate an XML file against a DTD:
Set the XmlReaderSettings.DtdProcessing property to DtdProcessing.Parse.
Set the XmlReaderSettings.ValidationType property to ValidationType.DTD.
If the DTD is an external file stored on a network resource that requires authentication, pass an XmlResolver object with the necessary credentials to the Create method.
Important |
|---|
If the DtdProcessing property is set to DtdProcessing.Ignore, the XmlReader will not report the DTDs. This means that the DTD/DOCTYPE will be lost on output. |
The following example validates an XML file using a DTD file.
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); } }
The example uses the itemDTD.xml file as input.
<!--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>
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
