java - 请求 : https://www. w3.org/2000/svg 找到 : http://www. w3.org/2000/svg

标签 java svg xml-namespaces batik

<分区>

我们使用 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。这些是以 xmlns 开头的属性,可以选择后跟 : 和更详细的名称。

对于 SVG,命名空间必须是 http://www.w3.org/2000/svg,参见 the specification .

这些 URL 不用于连接,它们只是定义元素的含义(参见 XML Namespaces ),因此您无法通过更改它们来获得任何安全性。相反,您只是让您的 SVG 文件无效。

关于java - 请求 : https://www. w3.org/2000/svg 找到 : http://www. w3.org/2000/svg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39573020/

相关文章:

java - Groovy 正则表达式 : What does a tilde in a character class do?

java - 当只有回车符 [13] 且没有 LF 时如何检测换行符

css - 如何为 SVG 文本设置动画但不是线性的?

xml - 在 C# 中使用 XSLT 将 RVML 转换为 SVG

java - 解析类似结构的 XML 文件的单一实现

java - 使用 ObjectInputStream 计算对象的总和

java - 如何在链表中的给定位置插入项目?

ios - SVG LinearGradient 未在 iOS Ionic/Angular 应用程序中渲染

java - 如何使用完整的本地 namespace 而不是前缀

xml - fatal error : The schemaLocation attribute does not contain pairs of values