XmlReaderSettings.DtdProcessing Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví hodnotu, která určuje zpracování DTD.
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
Hodnota vlastnosti
Jedna z hodnot výčtu, která určuje zpracování DTD. Výchozí hodnota je Prohibit.
Příklady
Následující příklad ověří soubor XML pomocí souboru 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
Příklad používá itemDTD.xml soubor jako vstup.
<!--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>
Poznámky
Ověřování definice typu dokumentu (DTD) se implementuje pomocí omezení platnosti definovaných v doporučení W3C Extensible Markup Language (XML) 1.0 (fourth edition). DTD používají formální gramatiku k popisu struktury a syntaxe vyhovujících dokumentů XML; specifikují obsah a hodnoty povolené pro dokument XML.
Vlastnost DtdProcessing může mít jednu z následujících hodnot:
- DtdProcessing.Parse k aktivaci zpracování DTD.
- DtdProcessing.Prohibit vyvolání XmlException výjimky při zobrazení DTD.
- DtdProcessing.Ignore zakázat zpracování DTD bez upozornění nebo výjimek.
Chcete-li provést ověření proti DTD, XmlReader používá DTD definované v deklaraci DOCTYPE dokumentu XML. Deklarace DOCTYPE může odkazovat na vložený DTD nebo může být odkazem na externí soubor DTD. Ověření souboru XML v DTD:
- Nastavte vlastnost XmlReaderSettings.DtdProcessing na
DtdProcessing.Parse. - Nastavte vlastnost XmlReaderSettings.ValidationType na
ValidationType.DTD. - Pokud je DTD externí soubor uložený v síťovém prostředku, který vyžaduje ověření, předejte objekt s potřebnými přihlašovacími údaji XmlResolver do metody Create.
Important
Pokud je vlastnost nastavena DtdProcessing na DtdProcessing.Ignore, XmlReader nebude hlásit DTD. To znamená, že ve výstupu dojde ke ztrátě DTD/DOCTYPE.