繁体   English   中英

SAXParseException已本地化

[英]SAXParseException localized

我提供的服务可以使用人类读取和理解的XML。并使用exception.getMessage()生成带有解析器错误列表的报告(精确地为SAXParseException exception.getMessage()exception.getLocalizedMessage()返回相同的结果)。 如何用英语以外的其他语言本地化此异常消息?

我找到了解决方案。 首先需要从Apache Xerces获取XMLSchemaMessages.properties 我从http://xerces.apache.org/下载了Xerces-J-src.2.11.0.tar.gz ,解压缩并从以下位置获取此文件: ...\\src\\org\\apache\\xerces\\impl\\msg

现在,将此文件重命名为XMLSchemaMessages_pl.properties或本地化,您需要将其放置在类路径中。 我在Maven中有项目,因此我将此文件放入: src\\main\\resources\\com\\sun\\org\\apache\\xerces\\internal\\impl\\msg

就这样。 对该文件的更改将在异常消息中可见。

根据Java文档 ,您需要扩展SAXParseException并覆盖getLocalizedMessage ,默认实现返回与getMessage相同的结果。

编辑:您可以为每种语言使用单独的属性文件,并且在每种语言中可以包含codelocal message 当根据locale和一些code引发SAXParseException ,将返回适当的message

MySAXParseException ex = new MySAXParseException(<code>);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM