2012-04-09 10 views
-2

Ich validiere XML gegen eine XSD. Aber meine Java-Validierungsfehlermeldung unterscheidet sich von der Validierungsfehlermeldung von XMLSpy. Hier ist XMLSpy korrekt und eine Java Validierungsnachricht ist irreführend. Ich verwende folgenden Code, um die XML-Validierung:Irreführende Java-XML-Validierung

SAXParserFactory factory = SAXParserFactory.newInstance(); 
factory.setValidating(true); 
factory.setNamespaceAware(true); 
SAXParser saxParser = factory.newSAXParser(); 
saxParser.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA); 

saxParser.setProperty(JAXP_SCHEMA_SOURCE,new File("TXLife2.26.00.xsd")); 
MySAXHandler dh = new MySAXHandler(); 
saxParser.parse(new File("test.xml"), dh); 

Java Validierungsnachricht sagt:

cvc-Komplex-type.2.4.a: ungültiger Inhalt gefunden wurde ab Element '< Element>' .

Aber XMLSpy sagt:

Element < Element> ist nicht an dieser Stelle unter < PARENT_ELEMENT Elemente>

+2

Der Inhalt der Fehlernachrichten-ID hängt von der verwendeten Parserimplementierung ab. –

+1

Was ist Ihre Frage? Wenn die Antwort darauf lautet: "Wie behebe ich das Problem?" Lautet die Antwort: Sie sind SOL. – ControlAltDel

+0

@Pangea Gibt es trotzdem eine Lösung? –

Antwort

1
erlaubt

Die Fehlermeldung, die Sie auf dem Validator erhalten, hängen Sie verwenden. Beide melden den gleichen Fehler. Wenn Sie einen Java XSD-Validator mit besseren Fehlermeldungen wünschen, versuchen Sie Saxon: Sie können es bevorzugen. Die Fehlerberichterstattung ist jedoch eine unpräzise Kunst: Beim Entwerfen von Fehlermeldungen arbeitet ein Implementierer mit begrenzten Informationen darüber, (a) was der Benutzer beabsichtigt hat und (b) wie viel der Benutzer über die Technologie versteht.

+0

Saxon EE hat die Funktionalität XML gegen eine XSD zu validieren. Gibt es eine Freeware-Bibliothek, die das gleiche tut? –

Verwandte Themen