在使用 JAXB 对 XSD 文件进行 XML 验证期间,我会收到JAXBExceptions无效的 XML 文件。我通过调用获取异常消息event.getMessage()。结果字符串是德语。
我正在使用 JAXB 2.2。在德国系统上使用 java 8。
什么决定了 JAXB 异常消息的语言以及如何将其更改为英语?
这是代码:
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) {}
Run Code Online (Sandbox Code Playgroud)
这是事件处理程序:
public class XMLValidationEventHandler implements ValidationEventHandler {
@Override
public boolean handleEvent(ValidationEvent event) {
System.out.println("XML validation …Run Code Online (Sandbox Code Playgroud) 我知道Files.newDirectoryStream(directory).use { ... }一旦大括号中的函数完成,就会自动关闭流。
.forEach { ... }如果我使用而不是,流也会关闭吗.use { ... }?