XmlReaderSettings.DtdProcessing Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar eller anger ett värde som avgör bearbetningen av DTD:er.
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
Egenskapsvärde
Ett av uppräkningsvärdena som avgör bearbetningen av DTD:er. Standardvärdet är Prohibit.
Exempel
I följande exempel verifieras en XML-fil med hjälp av en DTD-fil.
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
I exemplet används itemDTD.xml filen som indata.
<!--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>
Kommentarer
Validering av dokumenttypsdefinition (DTD) implementeras med hjälp av de giltighetsbegränsningar som definieras i rekommendationen W3C Extensible Markup Language (XML) 1.0 (fjärde utgåvan). DTD:erna använder en formell grammatik för att beskriva strukturen och syntaxen för kompatibla XML-dokument. de anger det innehåll och de värden som tillåts för XML-dokumentet.
Egenskapen DtdProcessing kan ha något av följande värden:
- DtdProcessing.Parse för att aktivera DTD-bearbetning.
- DtdProcessing.Prohibit för att utlösa ett XmlException undantag när en DTD påträffas.
- DtdProcessing.Ignore för att inaktivera DTD-bearbetning utan varningar eller undantag.
För att utföra verifiering mot en DTD XmlReader använder den DTD som definierats i DOCTYPE-deklarationen för ett XML-dokument. DOCTYPE-deklarationen kan antingen peka på en infogad DTD eller vara en referens till en extern DTD-fil. Så här verifierar du en XML-fil mot en DTD:
- Ange egenskapen XmlReaderSettings.DtdProcessing till
DtdProcessing.Parse. - Ange egenskapen XmlReaderSettings.ValidationType till
ValidationType.DTD. - Om DTD är en extern fil som lagras på en nätverksresurs som kräver autentisering skickar du ett XmlResolver objekt med nödvändiga autentiseringsuppgifter till Create metoden.
Important
Om egenskapen DtdProcessing är inställd på DtdProcessing.Ignore, kommer XmlReader inte att rapportera DTD:erna. Det innebär att DTD/DOCTYPE går förlorad vid utdata.