ich stehe vor dem Problem eine xml-Datei mit einer externen dtd file zu überprüfen. Ich finde leider nicht anderes als dieses Beispiel: private static bool isValid = true; XmlTextReader r = new XmlTextReader("C:\MyFolder\ProductWithDTD.xml"); XmlValidatingReader v = new XmlValidatingReader(r); v.ValidationType = ValidationType.DTD; v.ValidationEventHandler += new ValidationEventHandler(MyValidationEventHandler); while (v.Read()) { // Can add code here to process the content. } v.Close();
// Check whether the document is valid or invalid. if (isValid) Console.WriteLine("Document is valid"); else Console.WriteLine("Document is invalid");
Was muss ich machen um hier eine externe dtd Datei zu benennen?
Danke für jedne Hinweis und Tipp
Ich bin in der Zwischenzeit ein bißchen weiter gekommen. XmlReaderSettings settings = new XmlReaderSettings(); settings.ValidationType = ValidationType.DTD; settings.DtdProcessing = DtdProcessing.Parse; settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack); settings.NameTable = new NameTable(); XmlParserContext context = new XmlParserContext(settings.NameTable, new XmlNamespaceManager(settings.NameTable), "root-element-name", "", "file:///C:/Users/Ingo/Documents/Visual Studio 2010/UserInstallation/Data/GDPdU/gdpdu-01-08-2002.dtd", "", "", "en", XmlSpace.Default);
using (XmlReader reader = XmlReader.Create(Path.Combine(exportPath, "index.xml"), settings, context))
Nur habe ich jetzt das Problem das ich den Fehler "Keine DTD gefunden" bekomme obwohl die die Datei im Verzeichnis C:\Users\Ingo\Documents\Visual Studio 2010\UserInstallation\Data\GDPdU vorhanden ist.