如何验证SVG文档是否正确? (版本1.2)

时间:2012-09-17 17:44:53

标签: qt svg

我使用了一个名为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我可以使用它可能会有用。)

2 个答案:

答案 0 :(得分:20)

您可以使用例如http://validator.nu。由于您的文件是独立的,请选择xml解析,将RNG网址粘贴到架构文本字段中(您正在查找的架构网址可以在相关的specification中找到,在本例中为SVG 1.2 Tiny:http://www.w3.org/TR/SVGTiny12/relaxng/Tiny-1.2.rng )。

即使您的三行代码段也无效SVG 1.2 Tiny内容(在Tiny中&lt; svg&gt;元素上不允许使用x和y属性)。你应该在某处添加一个链接到你的文件,否则很难说它应该是什么样的。

答案 1 :(得分:1)

终端svgcheck中有一个python实用程序,该实用程序声称目标版本为1.2(如7996-bis草稿中所定义)。很有前途的实用程序,恕我直言。

SVG检查步骤。

pip install svgcheck
svgcheck ~/path/to/mysvgfile.svg

具有适当标准的svg文件将显示以下内容:

$ svgcheck alert-circle.svg
Parsing file alert-circle.svg
INFO: File conforms to SVG requirements.
  • 确保已安装pip并正确配置了python