【发布时间】:2017-01-27 03:13:30
【问题描述】:
我们正在使用 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 参数,不好。我正在为此挖掘源代码。
【问题讨论】:
-
“安全原因,所有 url 都转换为 http”你在开玩笑吧?您只能“转换”您自己控制的 url,如果他们不支持 https,则无法转换其他人的 url。在这种情况下,命名空间 url 只是标识符,不用于检索数据(尽管为了方便起见,与命名空间相关的东西通常托管在 url 上,但不是因为它是必需的)
-
xmlns 属性中的字符串不是真正的 URL。它们实际上只是允许解析器识别 XML 元素的名称空间的预定义常量。你不应该改变它们。
-
(我假设您在第一句话中的意思是“to HTTPS”而不是“to HTTP”?)
标签: java svg xml-namespaces batik