在 SVG 中可以将 <!-- comment --> 作为第一行吗?

Jak*_*son 6 html xml standards svg comments

能否将 XML 注释作为 SVG 文件的第一行?例如:

<!-- Timestamp 1434061994 -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
  <svg...
Run Code Online (Sandbox Code Playgroud)

这违反 SVG 规范吗?或者它是否会验证失败,或者这会导致我在网站中实现此功能时没有看到的任何问题?

kjh*_*hes 6

是的,可以在 SVG 文件的第一行添加注释,但前提是没有 XML 声明 ( <?xml version="1.0" encoding="UTF-8"?>)。

XML 文件中XML 声明之前不能出现任何内容。一个文件中最多可以出现一个XML声明,如果使用XML声明,那么它必须位于文件的最顶部。XML 声明之前的任何内容(包括注释)都会妨碍 XML 的格式正确,并且会导致错误,例如Xerces-J 的以下诊断

不允许与“[xX][mM][lL]”匹配的处理指令目标。

如果注释出现在 XML 声明之前,则 XML 格式不正确,如果 XML 格式不正确,则 SVG不符合

最后注意: XML 声明是可选的。 除非您想要指定 1.0 以外的版本或 UTF-8 以外的编码,否则不必在 XML(或 SVG)文件中包含 XML 声明。