Frage

Gibt es eine Möglichkeit mehr nützliche Informationen über die Validierungsfehler zu bekommen? XmlSchemaException liefert die Zeilennummer und Position des Fehlers, die mir wenig Sinn macht. XML-Dokument schließlich geht es nicht um seine vorübergehende Textdarstellung. Ich möchte einen Aufzählungsfehler (oder einen Fehlercode) erhalten spezifiziert, was, wenn falsch, die Knotennamen (oder eine XPath), um die Quelle des Problems zu finden, so dass vielleicht kann ich versuchen, es zu beheben.

Edit: Ich spreche über gültige XML-Dokumente - nur nicht gültig gegen ein bestimmtes Schema

War es hilfreich?

Lösung

Sie können dies erreichen, eine Art, durch eine XmlReader deren XmlReaderSettings das Schema enthält die Einrichtung und Verwendung es dann durch den Eingangsstrom Knoten für Knoten zu lesen. Sie können lesen Spur des letzten Knotens halten und haben eine ziemlich gute Vorstellung davon, wo Sie im Dokument, wenn ein Validierungsfehler passiert.

Ich denke, wenn Sie diese Übung versuchen, werden Sie feststellen, dass es eine Menge von Validierungsfehlern sind (z erforderliches Element fehlt), wo das Konzept der Fehlerknoten nicht viel Sinn macht. Ja, das übergeordnete Element ist klar, was in diesem Fall fehlerhaft ist, aber was wirklich der Fehler ausgelöst der Leser der Begegnung mit dem End-Tag war, ohne jemals das gewünschte Element zu sehen, weshalb die Fehlerzeile und Positionspunkt am Ende Tag ist.

Andere Tipps

Nach meiner Erfahrung sind Sie glücklich, eine Zeilennummer zu erhalten und die Position zu analysieren.

Das könnte Sie betrachten, um über eine DTD validieren, die können manchmal etwas interessanter Fehler geben, aber an einem Projekt aktuell arbeite ich, wir XSLTs bestätigen Sie mit. Die Transformations prüft die Syntax und meldet Fehler als Text ausgegeben transformieren. Ich würde diesen Weg prüfen, ob Sie freundliche Fehlerprüfung mögen. Für uns bedeutet eine leere Ausgabe keine Fehler, sonst bekommen wir ein paar netten Details aus der XSLT-Verarbeitung auf, was der Fehler war und wo.

persönlich bin ich nicht sicher, wie ein detaillierteres Fehler zu erhalten, Typcially f Sie das Dokument öffnen und gehen Sie zu der Stelle erwähnt Sie die Fehler leicht finden kann.

Wenn der Code nicht in der Lage ist, die Datei als gültige XML zu analysieren, ist es ziemlich schwer für sie ein XPath oder anderes genannte XML Detail zu geben.

Es scheint dies keine leichte Aufgabe ist. Robert Rossney Antwort am nächsten kommt mein Problem zu lösen programmaticaly so ich, dass für jetzt akzeptieren würde. Ich werde auch weiterhin die xsl Lösung. Wer einen besseren Weg zu finden Validierungsfehler beheben kann auf diesen Thread antworten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top