Phi*_*ger 4 java localization xerces xerces2-j
我想在我的 JAXP 和 Xerces2 中使用特定于语言环境的错误消息。默认情况下,只有英文消息可用。
第一步是检索消息文件并将它们放入包“org/apache/xerces/impl/msg/” - 完成。通过使用Locale.setDefault (Locale.GERMANY)德语消息显示,所以这是有效的。
但我希望在每个实例的基础上对消息进行不同的本地化。所以一个解析器应该返回英语消息,另一个解析器应该返回德语消息。
我用来创建 SAX2 解析器的代码是:
org.xml.sax.XMLReader ret = XMLReaderFactory.createXMLReader ();
Run Code Online (Sandbox Code Playgroud)
对于 DOM,我正在使用 DocumentBuilder 喜欢这个(非常简化):
final DocumentBuilderFactory aDocumentBuilderFactory = DocumentBuilderFactory.newInstance ();
final DocumentBuilder aDocBuilder = aDocBuilderFactory.newDocumentBuilder ();
final Document doc = aDocumentBuilder.parse (aInputSource);
Run Code Online (Sandbox Code Playgroud)
我找到了类似org.apache.xerces.impl.XMLErrorReporter具有setLocale(Locale)方法的类的东西,但我没有找到获取/设置它的方法。
顺便说一下,切换到 SAX1 不是一个选项。
任何帮助表示赞赏!
不是最大的可移植性,但它的工作原理是解析器在 99% 的情况下都是 apache 解析器。
final DocumentBuilderFactory aDocBuilderFactory = DocumentBuilderFactory.newInstance();
aDocBuilderFactory.setAttribute("http://apache.org/xml/properties/locale", Locale.FRANCE);
final DocumentBuilder aDocBuilder = aDocBuilderFactory.newDocumentBuilder();
final Document doc = aDocBuilder.parse (aInputSource);
Run Code Online (Sandbox Code Playgroud)
一个SAXParser saxParser简单的电话saxParser.setProperty("http://apache.org/xml/properties/locale", Locale.FRANCE);
哦,忘了官方来源:http : //xerces.apache.org/xerces2-j/properties.html