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