1
是否有方法通過XML配置禁用XSLT轉換器中的DTD驗證?SpringIntegration - 禁用DTD驗證
我有,我不想驗證(出於商業原因)
我能做到這一點的Spring集成客戶端的具體迴應?
由於提前,
卡爾
是否有方法通過XML配置禁用XSLT轉換器中的DTD驗證?SpringIntegration - 禁用DTD驗證
我有,我不想驗證(出於商業原因)
我能做到這一點的Spring集成客戶端的具體迴應?
由於提前,
卡爾
我發現這個解決方案:
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-factory
和result-factory
,將有隻需要爲他們提供你的onw實現,例如根據現有的DomSourceFactory
和DomResultFactory
,分別在構造函數中注入那些代碼。
當然你可以注入DocumentBuilderFactory
到DomSourceFactory
和DomResultFactory
,但你應該寫一些自定義的FactoryBean<DocumentBuilderFactory>
在其getObject()
初始化DocumentBuilderFactory
。