【问题标题】:How to store additional data in SVG?如何在 SVG 中存储附加数据?
【发布时间】:2015-06-01 15:07:53
【问题描述】:

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

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

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

这样做的正确方法是什么?我上面链接的编辑器将其数据存储在<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>

【问题讨论】:

    标签: svg svg.js


    【解决方案1】:

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

    将您的自定义内容包装在&lt;metadata&gt; 标记中是recommended in the SVG specification。感谢 Alexander Gladysh 提醒我。

    【讨论】:

    • 谢谢!是否有一个标准命名空间可供我重用以满足我的需求?
    • 当然不是,这是你的编辑器和你的元数据格式。例如,Inkscape 使用 sodipodi 是因为它最初是 sodipodi 的一个分支。
    • 我认为,由于我将数据存储为纯文本,因此可能会有一些可重复使用的内容(类似于我在问题使用中链接到的&lt;source&gt; 标签编辑器)。不过好吧,没关系。
    • &lt;metadata&gt; 标签的链接失效了。
    • @RobertLongson 我希望该链接指向 SVG 规范的某些部分,但链接指向的页面显示元数据章节不再是 SVG 规范的一部分。
    猜你喜欢
    • 2013-01-23
    • 1970-01-01
    • 2020-07-29
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    • 2018-08-05
    • 2011-08-26
    • 1970-01-01
    相关资源
    最近更新 更多