XML prüfen mit XSD => Alle Fehler auflisten

Status
Nicht offen für weitere Antworten.

Timmah

Bekanntes Mitglied
Hi Leute,

ich möchte eine XML-Datei gegen eine XSD-Datei prüfen.
Prinzipiell klappt das auch, doch möchte ich, dass ich alle Fehler, die beim parsen entstanden sind, aufgelistet bekomme.

Kann ich das mit diesem Code irgendwie erreichen?

Code:
		private void checkXML(int i)
		{
			Document xmlDocument = null;
			addInformations(i);
			try
			{
				SAXBuilder builder = new SAXBuilder("org.apache.xerces.parsers.SAXParser", true);
	
				builder.setFeature("http://xml.org/sax/features/validation", true);
				builder.setFeature("http://apache.org/xml/features/validation/schema", true);
	
				builder.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation", jtextfieldXSD.getText());
	
				xmlDocument = builder.build(new File(vectorXMLFilesCopies.get(i).toString()));
	
			}
			catch (JDOMParseException e)
			{
				vectorXMLErrors.addElement(vectorXMLFiles.get(i).toString() + ": " + e.getMessage());
	
			}
			catch (IOException e)
			{
	
			}
			catch (JDOMException e)
			{
				System.out.println(e.getMessage());
			}
	
		}

Vielen Dank für eure Hilfe.
 

byte

Top Contributor
JDOM stoppt das Parsen, sobald ein Fehler auftrat. Wüsste nicht, dass man ihn irgendwie dazu bewegen könnte, trotzdem weiter zu parsen. Macht imho auch wenig Sinn, denn der Fehler würde ja im Worst Case diverse Folgefehler produzieren.
 

KSG9|sebastian

Top Contributor
Das Dokument parsen, bei nehm entsprechenden Fehler das "schuldige" element aus dem Dokument rauswerfen.
Blöd ist, dass du halt dadurch Elemente "verlierst". Beispiel

Code:
<test>
<abc>
  <d> // angenommen das hier ist falsch
     <xy>llll</xy>
     <xy>llll</xy>
  </d>
</abc>
</test>
Wenn du das Element <d> rauswirfst fliegen halt auch alle Childnodes mit raus, somit werden die nicht validiert.
 

Timmah

Bekanntes Mitglied
Okay,

das würde wohl gehen, doch das erzielt nicht so ganz das, was ich möchte, aber trotzdem danke dafür.

Andere Ideen, evtl. nicht mit JDOM?
 

byte

Top Contributor
Der Eclipse WTP Validierer listet alle Fehler auf. Kannst die ja mal fragen, wie sie das gemacht haben. ;)
 
G

Gast

Gast
Hallo Timmah...

ich hatte das gleiche Problem wie du und habe es damit gelöst. ;-)


builder.setErrorHandler(new ErrorHandler() {

public void warning(SAXParseException arg0) throws SAXException {
// TODO Auto-generated method stub
System.out.println("warning: " + arg0.getMessage());
}

public void error(SAXParseException arg0) throws SAXException {
// TODO Auto-generated method stub
System.out.println("error: " + arg0.getMessage());
}

public void fatalError(SAXParseException arg0) throws SAXException {
// TODO Auto-generated method stub
System.out.println("fatal error: " + arg0.getMessage());
}

});
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S XML mit DTD prüfen XML & JSON 5
M XML gegen XSD prüfen XML & JSON 3
M XML einlesen - prüfen ob Element vorhanden XML & JSON 2
D XML nach BME Cat Norm prüfen? XML & JSON 4
L XMLDatei mit SAXParser prüfen XML & JSON 3
S XML-Datei gegen xsd prüfen! XML & JSON 5
P DTD benutzen um XML zu prüfen XML & JSON 6
G Prüfen ob eine XML-Datei "well-formed" ist XML & JSON 2
B Xml speichern - müssen alle Klassen deklariert werden? XML & JSON 12
S NodeList rückwärts scannen, alle Parent Nodes ausgeben rekursiv und nicht-reukrsiv XML & JSON 0
C XPath: Alle Kinder in einer Schleife auslesen XML & JSON 2
N Alle namespaces ins Root Element hinauf ziehen XML & JSON 2
N Alle namespaces ins Root Element hinauf ziehen XML & JSON 2
T xsl schleife alle kindeelemtente eines elternelementes durchlaufen XML & JSON 2
E EMF Modell um alle möglichen Attribute auszulesen XML & JSON 12
X Xpath, alle Element die mit "user" beginnen auswäh XML & JSON 2
M getChildren gibt nicht alle children zurück XML & JSON 3
T Fehler: Hauptklasse com.sun.tools.internal.xjc.XJCFacade konnte nicht gefunden oder geladen werden XML & JSON 6
T XSD/XML Fehler im Namespace? XML & JSON 1
S Apache Ant - Fehler: Hauptklasse konnte nicht gefunden oder geladen werde XML & JSON 1
B JAXB-Fehler bei REST-Api XML & JSON 0
S JDOM XML Datei darstellen Fehler! XML & JSON 2
A XML-Fehler beim Prefix von xmlns XML & JSON 2
A Fehler beim Erzeugen eines XML-Schema XML & JSON 4
R XML eingelesen und wieder geschrieben... Fehler XML & JSON 7
I Fehler bei XSL-FO und for-each XML & JSON 2
G XML Parser Fehler, zwei gleiche kind-Elemente XML & JSON 7
E Schweigsamer Fehler XML & JSON 3
G XML Fehler! Warum? XML & JSON 3
DaRolla UTF-8 Castor Unmarshal Fehler? XML & JSON 2
J Fehler beim laden einer .xml XML & JSON 3
K XMLBuddy fehler XML & JSON 12
C Zeile herausfinden in der ein Fehler beim Einlesen entsteht XML & JSON 3

Ähnliche Java Themen

Neue Themen


Oben