我们正在使用Apache Batik来渲染SVG文件。出于安全原因,所有URL都将转换为HTTP。
现在,当我们渲染SVG文件时,我们遇到了这个问题。
原始SVG是:
svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"
转换后的SVG是:
svg xmlns=\"https://www.w3.org/2000/svg\" xmlns:xlink=\"https://www.w3.org/1999/xlink\"
所以,我尝试使用Java中的Dhttps.protocols
参数,没有用。我正在为此挖掘源代码。
答案 0 :(得分:12)
请勿更改名称空间定义的URL。这些是以xmlns
开头的属性,可选地后跟:
和更详细的名称。
对于SVG,名称空间必须为http://www.w3.org/2000/svg
,请参阅the specification。
这些网址不用于连接,它们只是定义元素的含义(请参阅XML Namespaces),因此您无法通过更改它们获得任何安全性。相反,你只是让你的SVG文件无效。