如何在 SVG 中存储额外的数据?

How to store additional data in SVG?

我有一个小型编辑器,可以创建带有图表的 .svg 文件(使用 svg.js)。

编辑器以其自己的简单文本格式存储有关文件创建方式的数据,这与 this one.

没有什么不同

我想将源文本直接嵌入到 SVG 文件中,这样我就可以在不丢失用户指定的任何元信息(如评论和格式)的情况下加载它。

正确的做法是什么?我上面链接的编辑器将其数据存储在 <svg> 正下方的 <source> 标签中。这是一种符合标准的好方法吗?

<svg 
  xmlns="http://www.w3.org/2000/svg" 
  width="445" height="319" 
  xmlns:xlink="http://www.w3.org/1999/xlink"
>
  <source><![CDATA[Andrew->China: Says Hello
  Note right of China: China thinks\nabout it
  China-->Andrew: How are you?
  Andrew->>China: I am good thanks!]]></source>
  <!-- SVG content here -->
</svg>

创建 a custom namespace 并在该自定义命名空间的元素下存储您想要的任何内容。如果需要,您可以调用自定义命名空间元素源。

将您的自定义内容包装在 <metadata> 标签中是 recommended in the SVG specification。感谢 Alexander Gladysh 提醒我这一点。