lxml, RelaxNG und xInclude - Validierung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
m0ps1234
User
Beiträge: 40
Registriert: Freitag 13. März 2009, 08:57

Hallo zusammen,
ich nutze in meinem Programm lxml und ein RelaxNG Schema, mit dessen Hilfe ich xml Dateien validieren möchte.
Funktioniert soweit auch ohne Probleme.
Jedoch habe ich eine xml Datei, welche ein xInclude Element besitzt. Die externe Datei wird korrekt in das xml eingelesen.
Wenn ich jedoch mit schema.assertValid(xml) das Ganze validieren möchte, schmeißt er mir eine Fehlermeldung, welche unsinniges Zeug für den Fehler angibt (Element has extra content: blabla <-- Das Element ist aber definitiv erlaubt).

Ich habe dann den Jing validator getestet, welcher über Java läuft und dieser wirft keine Fehlermeldung.

Kann es sein, dass lxml nicht wirklich für die Validierung für RelaxNg Schemas geeignet ist? Oder ist einfach dieser Jing schlecht? Könnt ihr mir einen guten Validierer für RelaxNGs sagen?

Grüße
BlackJack

@m0ps1234: So ganz ohne konkrete Daten kann ich da nur sagen vielleicht, vielleicht auch nicht.

Wenn `blabla` das Element ist, dann beschwert sich der Validator ja nicht darüber dass es existiert, sondern das es selbst "extra content" hat, der da nicht sein dürfte. Stimmt das denn!?
m0ps1234
User
Beiträge: 40
Registriert: Freitag 13. März 2009, 08:57

Hi BlackJack,
danke erstmal für deine Antwort. Leider kann ich dir die Dateien nicht direkt zeigen, da sie Firmeneigentum sind. Ich weiß, das ist nicht sehr förderlich um das Problem zu lösen. Aber vielleicht ist jemanden auch aufgefallen, dass lxml bei rng einige Probleme hat?

Ich kann nur sagen, dass das xml einmal mit einem xsd Schema und einmal mit dem gesagten rng Schema (welches ich aus dem xsd erstellt und geprüft habe) validiert wird.
Das xsd wirft keinen Fehler. Das rng dürfte auch keinen Fehler werfen. Und Jing wirft wie gesagt ja auch keinen Fehler. Ich weiß nur nicht, welchen Validierer ich jetzt trauen kann. Ich werde mich einfach nochmal im Internet auf die Suche nach einem anderen Validierer machen und es mit diesem testen. Wie gesagt: solltet ihr einen guten kennen, dann her damit.

Zu dem extra content: Wie schon gesagt ist das xml richtig aufgebaut, was xsd ja auch bestätigt. Und im rng Schema konnte ich auch keinen Fehler finden.
m0ps1234
User
Beiträge: 40
Registriert: Freitag 13. März 2009, 08:57

Also, ich habe es gerade noch mit dem libxml2 Validierer getestet. Dieser wirft auch keinen Fehler. Es scheint so, als hätte lxml einige Probleme mit RelaxNG...
m0ps1234
User
Beiträge: 40
Registriert: Freitag 13. März 2009, 08:57

Stopp, Kommando zurück! Sry für die Verwirrung, aber mit fehlte ein Namespace in der einen Datei. Komisch dass Jing da nicht gemotzt hat. Also lxml scheint doch zuverlässig zu sein!
Antworten