SVG:公共doctype与其他名称空间冲突

时间:2015-07-21 15:57:56

标签: svg thymeleaf doctype

我的SVG文件存在(可能是微不足道的)问题:
Eclipse警告我,我的文档没有使用Doctypes,因此我搜索了W3C's site for their doctypes并选择了完整的DTD:
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
问题是我还使用Thymeleaf来修改我的文档,所以我在根目录中声明了我的命名空间(以及更多):

<svg
    xmlns:xlink="http://www.w3.org/1999/xlink"
    xmlns:th="http://www.thymeleaf.org"
    ...
>

当然,现在eclipse抱怨这个事实,即我的Thymeleaf属性并没有为常见的svg元素定义。
现在我的问题是这里的最佳做法是什么? 我应该打开doctype吗? <!DOCTYPE svg>
我也read here SVG 1.2根本不需要DOCTYPE 所有建议都非常赞赏。

1 个答案:

答案 0 :(得分:2)

在使用SVG时,我发现这有助于article关于DON'Ts。 它声明DOCTYPE声明可能会导致问题。这也是SVG 1.2首先省略了doctype的原因 建议将使用过的版本和baseProfile标记为root-element中的属性。 如果您的IDE保持呻吟,请尝试将xml-standalone设置为“yes”;如果没有任何用处,请按照您的建议声明一个空的doctype:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE svg>
<svg
    version="1.1"
    baseProfile="full"
    xmlns:xlink="http://www.w3.org/1999/xlink"
    xmlns:th="http://www.thymeleaf.org"
    //..
>