gpt4 book ai didi

java - SpringIntegration - 禁用 DTD 验证

转载 作者:太空宇宙 更新时间:2023-11-04 14:23:22 25 4
gpt4 key购买 nike

有没有办法通过 XML 配置在 XSLT 转换器中禁用 DTD 验证?

我收到了客户的具体回复,但我不想验证(出于商业原因)

我可以在 Spring Integration 中执行此操作吗?

提前致谢,

卡尔

最佳答案

我找到了这个解决方案:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// stop the network loading of DTD files
factory.setValidating(false);
factory.setNamespaceAware(true);
factory.setFeature("http://xml.org/sax/features/namespaces", false);
factory.setFeature("http://xml.org/sax/features/validation", false);
factory.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false);
factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);

(参见此处 TransformerFactory - avoiding network lookups to verify DTDs )

因为我们知道<int-xml:xslt-transformer>支持source-factoryresult-factory ,只需要为他们提供您的 onw 实现,例如基于现有DomSourceFactoryDomResultFactory ,分别并将该代码注入(inject)到构造函数中。

当然可以注入(inject)DocumentBuilderFactory到那个DomSourceFactoryDomResultFactory ,但你应该写一些自定义的 FactoryBean<DocumentBuilderFactory>初始化DocumentBuilderFactory在其 getObject() .

关于java - SpringIntegration - 禁用 DTD 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26934157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com