Java 找不到 XML 资源包

Java could not find XML resource bundle

src/java
src/resource/foo/messages.xml
                 messages_fr.xml

ResourceBundle bundle = ResourceBundle.getBundle("foo.messages", Locale.ENGLISH);

错误:

Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name foo.messages, locale en
    at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1581)
    at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1396)
    at java.util.ResourceBundle.getBundle(ResourceBundle.java:854)

如果它们是 *.properties,没问题。

如何加载XML个资源包?

默认情况下,Java SE ResourceBundle.getBundle(...) 仅理解作为 Java 类 或“.properties”文件实现的资源包的加载。

如果您想从 XML 文件加载 ResourceBundle,您需要提供一个自定义 ResourceBundle.Control 实现来实现资源搜索和加载策略。

ResourceBundle.Controljavadocs中有例子;寻找“示例 2”。


我简单地搜索了 XML ResourceBundle 提供商的第 3 方实现,但我找不到任何通用的东西。

(反正求推荐就是off-topic。)