获取保证可以调用我的EntityResolver

时间:2019-02-19 17:15:20

标签: xml jaxp entityresolver

使XMLReader生效的JAXP机制允许通过设置系统属性来配置XMLReader的选择。一种流行的选择(出于充分的理由)是使用Apache ResolvingXMLReader,它使用目录文件来间接引用URI。

无论我在应用程序中使用什么XMLReader,我都希望(在一条特定路径上)能够在EntityResolver上设置自己的XMLReader。问题是Apache ResolvingXMLReader出于自己想要使用自己的理由而默默地忽略了我设置EntityResolver的尝试。

我正在寻找有关如何解决此问题的想法/建议。

首先,检测情况。明确测试我得到的XMLReader是否是Apache ResolvingXMLReader感觉不是很干净的解决方案;其他实现可能有相同的问题。设置EntityResolver并探究它是否真正被调用的感觉很昂贵,而且过于防御。

第二,如果发现情况,该怎么办?我很高兴获得一个我可以信任的XML解析器实例,例如JDK中的实例。假定名称不能保证稳定,是否可以在不知道平台实际名称的情况下获取平台默认XMLReader的实例?

请注意,我在谈论的是一条需要它的专用内部路径。通常,对于用户重定向我的代码以将Apache ResolvingXMLReader用于其他所有内容,我感到非常满意。

有什么想法吗?

0 个答案:

没有答案