Welche XML-Validierungs-Tools können Sie für Leistung und Genauigkeit empfehlen, von denen jedes ein kritisches Problem in unserem System ist? Wir haben die folgenden Anforderungen:XML-Schema-Validierung mit RelaxNG
- Es ist nicht xmllint (siehe unten)
- Unterstützt RelaxNG
- leicht mit Perl integrieren kann (dies ist optional, aber es wäre schön)
Warum nicht xmllint? (Dies ist Hintergrund und Sie können es überspringen, wenn Sie möchten)
Wir haben ein großes Perl-System, das RelaxNG verwendet, um unsere XML zu validieren. Wir verwenden die compact RelaxNG format und trang, um es in das Standard-RelaxNG-Format zu konvertieren. Dann machen wir die eigentliche Validierung über xmllint.
Das ist, wenn die Probleme auftreten. Xmllint hat routinemäßig Probleme bei der Meldung von Validierungsfehlern falsch. Es gibt keine falschen positiven oder negativen Ergebnisse, aber wenn das Dokument nicht validiert wird, meldet xmllint oft das falsche Element oder Attribut für einen bestimmten Fehler. Manchmal ist der Fehler korrekt ("Elementleiste wurde nicht erwartet"), aber nur, weil ein vorheriger Fehler nicht gemeldet wurde (weil 'bar' dem erforderlichen, aber fehlenden Element 'foo' folgen sollte, aber xmllint doesn ' Beachten Sie, dass dies ein seit langem bestehendes Problem mit xmllint ist und dass selbst die neueste Version die gleichen Probleme hat. Wir haben oft riesige XML-Dokumente und falsche Berichte über Fehler verursachen sowohl für Kunden als auch für Entwickler viel Ärger.
Da dies vor mehr als 7 Jahren gefragt wurde (jetzt ist es 2015): Ist xmllint immer noch zu fehlerhaft für Ihren Zweck? – Jens
Jens: Das war bei der BBC und ich habe dort jahrelang nicht gearbeitet, noch habe ich seitdem xmllint benutzt. – Ovid