Hallo zusammen!
Ich möchte gern XML-Dokumente anhand eines Schemas validieren. Dafür nutze ich momentan nutze ich die Funktionen aus den Packages "javax.xml" und "org.xml.sax". Ich arbeite mit einem ErrorHandler, der die Methoden error(), warning() und fatalError() implementiert. Das funktioniert soweit auch sehr gut.
Mein Problem ist allerdings, daß innerhalb eines komplexen Elementes nur ein Fehler gefunden wird. Sobald der erste Fehler gefunden wurde springt er aus dem Element heraus und macht mit dem nächsten weiter.
Beispiel:
<ADRESSE>
<STRASSE>EU/1/00/123/002</STRASSE>
<HAUSNUMMER_Fehler1>51</HAUSNUMMER_Fehler1>
<PLZ>100</PLZ>
<ORT_Fehler2>20000</ORT_Fehler2>
</ADRESSE>
In diesem Fall findet er immer nur den "Fehler1". Wäre eine zweite Adressangabe vorhanden, würde er mit dieser fortfahren und dort genauso verfahren.
Die Methoden des ErrorHandler sehen folgendermaßen aus, am Beispiel der error-Methode:
Hat eventuell jemand eine Idee, wie ich ihn dazu veranlassen könnte wirklich alle Fehler zu registrieren?
Vielen Dank schoneinmal
MichaelPF
Ich möchte gern XML-Dokumente anhand eines Schemas validieren. Dafür nutze ich momentan nutze ich die Funktionen aus den Packages "javax.xml" und "org.xml.sax". Ich arbeite mit einem ErrorHandler, der die Methoden error(), warning() und fatalError() implementiert. Das funktioniert soweit auch sehr gut.
Mein Problem ist allerdings, daß innerhalb eines komplexen Elementes nur ein Fehler gefunden wird. Sobald der erste Fehler gefunden wurde springt er aus dem Element heraus und macht mit dem nächsten weiter.
Beispiel:
<ADRESSE>
<STRASSE>EU/1/00/123/002</STRASSE>
<HAUSNUMMER_Fehler1>51</HAUSNUMMER_Fehler1>
<PLZ>100</PLZ>
<ORT_Fehler2>20000</ORT_Fehler2>
</ADRESSE>
In diesem Fall findet er immer nur den "Fehler1". Wäre eine zweite Adressangabe vorhanden, würde er mit dieser fortfahren und dort genauso verfahren.
Die Methoden des ErrorHandler sehen folgendermaßen aus, am Beispiel der error-Methode:
Code:
public void error( SAXParseException e ) { System.out.println("Error: "+e.toString()); System.out.println("Position: +e.getColumnNumber()+"/"+e.getLineNumber()); }
Vielen Dank schoneinmal
MichaelPF
Comment