XML mittels XSD überprüfen (QXmlSchemaValidator)

Alles rund um die Programmierung mit Qt
Antworten
apfei01
Beiträge: 17
Registriert: 2. Oktober 2005 22:04

XML mittels XSD überprüfen (QXmlSchemaValidator)

Beitrag von apfei01 »

Ich möchte eine XML-Datei (gpx) mittels XSD (www.topografix.com/GPX/1/1/gpx.xsd) auf Gültigkeit prüfen. Beide Dateien liegen auf der Festplatte lokal vor und werden geladen. Die Prüfung funktioniert, allerdings nur bei Bestehen einer Internetverbindung; ohne Online-Verbindung schlägt es fehl.

Unter C# (bzw. mono) scheint es wohl eine Möglichkeit mittels xsd.exe zu geben.

Meine Frage: Wie kann ich das mit QT4 _ohne_ Onlineverbindung realisieren?

Quellcode:

Code: Alles auswählen

#include <QtCore/QCoreApplication>
#include <QtXmlPatterns/QXmlSchema>
#include <QtXmlPatterns/QXmlSchemaValidator>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QXmlSchema schema;
    if (schema.load (QUrl ("file:///Users/andy/QT4_Programmieren/GpxValidation/gpx.xsd")))
        qDebug() << "schema load successful.";
    else qDebug() << "schema load faild.";

    if (schema.isValid()) {
        QXmlSchemaValidator validator (schema);
        if (validator.validate (QUrl ("file:///Users/andy/QT4_Programmieren/GpxValidation/gpx.gpx"))) {
            qDebug() << "instance is valid";
        } else {
            qDebug() << "instance is invalid";
        }
    } else {
        qDebug() << "schema is invalid";
    }

    a.quit();
}
Bild

Danke,
Andy.
apfei01
Beiträge: 17
Registriert: 2. Oktober 2005 22:04

Beitrag von apfei01 »

Mmh. Keine Antwort lässt auf eine schwierige Fragestellung schliessen :?

Dann mal anders gefragt:

- Wie überprüft ihr (offline), ob eine XML-Datei gültig ist?
- Kann einer von der Experten anhang der Doku einschätzen, ob das gewünschte Verhalten überhaupt mittels QXmlSchemaValidator erreichbar ist?

Die Suchmaschine nach Wahl bringt lediglich xerces zum Vorschein. Leider ohne einfaches (!) Beispielcode / Tutorial.
Antworten