Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
DTD-Validierungen (Document Type Definition) werden unter Verwendung von Gültigkeitsbeschränkungen implementiert, die in der W3C-Empfehlung zu Extensible Markup Language (XML) 1.0 definiert sind. DTDs verwenden eine formale Grammatik zur Beschreibung der Struktur und Syntax kompatibler XML-Dokumente und legen fest, welche Inhalte und Werte für das XML-Dokument zulässig sind.
Zur Ausführung einer DTD-Validierung verwendet der XmlReader die in der DOCTYPE-Deklaration eines XML-Dokuments definierte DTD. Die DOCTYPE-Deklaration kann entweder auf eine Inline-DTD oder auf eine externe DTD-Datei verweisen.
Legen Sie die XmlReaderSettings.DtdProcessing-Eigenschaft auf DtdProcessing.Parse. fest.
Legen Sie die XmlReaderSettings.ValidationType-Eigenschaft auf "ValidationType.DTD" fest.
Wenn die DTD eine externe Datei ist, die auf einer Netzwerkressource mit Authentifizierungsanforderung gespeichert ist, übergeben Sie ein XmlResolver-Objekt mit den notwendigen Anmeldeinformationen an die Create-Methode.
Beispiel
Im folgenden Beispiel wird eine XML-Datei mithilfe einer DTD-Datei validiert.
Imports System
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
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);
}
}
#using <System.Xml.dll>
using namespace System;
using namespace System::Xml;
using namespace System::Xml::Schema;
using namespace System::IO;
// Display any validation errors.
static void ValidationCallBack( Object^ /*sender*/, ValidationEventArgs^ e )
{
Console::WriteLine( L"Validation Error: {0}", e->Message );
}
int main()
{
// Set the validation settings.
XmlReaderSettings^ settings = gcnew XmlReaderSettings;
settings->DtdProcessing = DtdProcessing::Parse;
settings->ValidationType = ValidationType::DTD;
settings->ValidationEventHandler += gcnew ValidationEventHandler( ValidationCallBack );
// Create the XmlReader object.
XmlReader^ reader = XmlReader::Create( L"itemDTD.xml", settings );
// Parse the file.
while ( reader->Read() )
;
return 1;
}
Eingabe
In diesem Beispiel wird die Datei itemDTD.xml als Eingabe verwendet.
<!--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>
Siehe auch
Konzepte
Lesen von XML mit dem "XmlReader"