【发布时间】:2012-09-17 17:44:53
【问题描述】:
我使用了一个名为Fritzing 的程序来绘制一些基本的 Arduino 原理图,然后将输出导出为 SVG。这按预期工作,但后来我注意到 SVG 输出仅在某些浏览器中看起来不错,而在某些版本的 Firefox 中也不错。
由于 Fritzing 是一个开源应用程序,我认为我可以查看代码(也许可以提供一点帮助)。
但是现在回到问题上来,正确的 SVG 应该是什么样子?我可以使用 W3C 的哪个验证器来检查文件?
我尝试使用此页面上的验证器:http://validator.w3.org/dev/tests/
但他们都抱怨很多,尤其是 SVG 版本。验证者似乎喜欢 1.0 和 1.1 版本,但是当我查看此文件的顶部时,似乎正在使用 version 1.2?
这是有问题的文件的前三行(为了可读性而重新格式化):
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!-- Created with Fritzing (http://www.fritzing.org/) -->
<svg width="3.50927in"
x="0in"
version="1.2"
y="0in"
xmlns="http://www.w3.org/2000/svg"
height="2.81713in"
viewBox="0 0 252.667 202.833"
baseProfile="tiny"
xmlns:svg="http://www.w3.org/2000/svg">
我可以使用特定的 SVG 1.2 验证程序吗?
或者我应该尝试验证 SVG,就好像它是一个经典的 XML 文件一样?
(附带说明,Fritzing 似乎使用 Qt,所以如果有一些 QTest 我可以使用它可能会有用。)
【问题讨论】:
-
我问了一个similar question here 应该很感兴趣。
-
所以我必须研究一下名为 RelaxNG 的东西?
-
嗯,不完全是-从该答案中链接的答案中,它说 Tiny 1.2 有一个 RelaxNG 模式,1.1 有一个 DTD。对于完整的 1.2,受访者表示没有官方架构。也许您可以采用上述任一模式并将其修改为涵盖 1.2 - 不过,这不是一项简单的任务,我会认为!
-
但是文件告诉我 version="1.2" 和 baseProfile="tiny",所以应该是 svg 1.2 tini?并且 tini 使用了 RelaxNG 模式。所以现在我很困惑......
-
啊,我在你的问题中错过了那个细节(你在标题中说你使用的是 1.2 版,这对我来说意味着完整版)。我想
baseProfile属性表明您正在使用 Tiny 1.2。这是个好消息,因为另一个问题的受访者表示可以使用 RelaxNG 模式进行验证。