XML-Datei validieren

  • 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

    [/autoit][autoit][/autoit][autoit]

    msgbox (16, "Error", $xml.parseError.reason)

    [/autoit]

    Hier die test.xml:

    XML
    <?xml version="1.0" encoding="UTF8"?>
    <!DOCTYPE root SYSTEM "rules.dtd">
    <root>
    	Testfile with a <not_existing_element/>
    </root>

    Hier die rules.dtd:

    XML
    <?xml version="1.0" encoding="UTF8"?>
    <!ELEMENT teil (#PCDATA)>

    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

    2 Mal editiert, zuletzt von spyro (22. Juli 2009 um 18:56)