during xml validation against xsd file using jaxb jaxbexceptions in case of invalid xml files. message of exceptions calling event.getmessage(). resulting string in german language.
i'm using jaxb 2.2. java 8 on german system.
what determines language jaxb exception messages , how can change english?
here's code:
schemafactory schemafactory = schemafactory.newinstance(xmlconstants.w3c_xml_schema_ns_uri); try { schema schema = schemafactory.newschema(); jaxbcontext jaxbcontext = jaxbcontext.newinstance("mypackage"); unmarshaller unmarshaller = jaxbcontext.createunmarshaller(); unmarshaller.seteventhandler(new xmlvalidationeventhandler()); unmarshaller.setschema(schema); myclass = (myclass) unmarshaller.unmarshal(new file("myfile.xml")); } catch (saxexception saxe) { system.out.println("sax-exception during creation of schema object!"); saxe.printstacktrace(); } catch (jaxbexception e) {} and event-handler:
public class xmlvalidationeventhandler implements validationeventhandler { @override public boolean handleevent(validationevent event) { system.out.println("xml validation failure in line " + event.getlocator().getlinenumber() + ", column " + event.getlocator().getcolumnnumber() + ": " + event.getmessage()); return true; } here example of output of event handler:
xml validation failure in line 8, column 48: cvc-maxinclusive-valid: wert "10000" ist nicht facet-gültig in bezug auf maxinclusive "8.0e3" für typ "type". xml validation failure in line 17, column 64: ungültiger wert 250 für feld day. xml validation failure in line 17, column 64: cvc-datatype-valid.1.2.1: "2014-02-2501:00:00z" ist kein gültiger wert für "datetime".
ok, found out language used jaxb event messages determined java system property user.language. default language therefore dependent on system runs on.
i changed run configuration of java program adding -duser.language=en. changed language of jaxb event messages english.
Comments
Post a Comment