Hallo zusammen,
ich will mit Hilfe von AutoIt eine XML-Datei validieren. Die DTD ist direkt in dieser verlinkt und auch erreichbar. Jeder XML-Editor validiert diese Datei auch korrekt und gibt ggf. eine Fehlermeldung aus. Mit AutoIt und MSXML will mir das aber einfach nicht gelingen, ich bekomme immer nur den Wert 0 als "ParseError.Reason".
Hier mein Code:
[autoit]$xml= ObjCreate("MSXML2.DOMDocument.6.0")
With $xml
.setProperty ("ProhibitDTD",False)
.async = False
.validateOnParse = True
.resolveExternals = True
.Load ("c:\xml\test.xml")
EndWith
msgbox (16, "Error", $xml.parseError.reason)
[/autoit]Hier die test.xml:
<?xml version="1.0" encoding="UTF8"?>
<!DOCTYPE root SYSTEM "rules.dtd">
<root>
Testfile with a <not_existing_element/>
</root>
Hier die rules.dtd:
Die Dateien liegen alle im selben Verzeichnis "c:\xml". Die XML-Datei und die DTD sind als UTF-8 kodiert. Ich habe die drei Dateien mal vorbereitet und hochgeladen (siehe Anhänge).
Es müsste also eigentlich einen Validierungsfehler wegen des <not_existing_element/> geben. Das tut es aber nicht. Ich habe auch schon mit der _XMLDOMWrapper-Extension gespielt allerdings habe ich hier das selbe Ergebnis. Egal was ich mache, ich schaffe es einfach nicht eine XML-Datei gegen eine DTD zu validieren und ggf. die Fehlermeldung anzeigen zu lassen.
Kann mir jemand von euch weiterhelfen? Ich bin mit meinem Latein wirklich am Ende.
Grüße,
Spyro