首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何验证SVG文档的正确性?(版本1.2)

如何验证SVG文档的正确性?(版本1.2)
EN

Stack Overflow用户
提问于 2012-09-18 01:44:53
回答 3查看 46.2K关注 0票数 34

我使用一个名为Fritzing的程序绘制了一些基本的Arduino原理图,然后将输出导出为SVG。这就像预期的那样工作,但是我注意到SVG输出只在某些浏览器中看起来正常,在Firefox的某些版本中才正常。

由于Fritzing是一个开源应用程序,我想我可以研究一下代码(也许能帮上一点忙)。

但现在转到问题,一个正确的应该是什么样子?我可以使用W3C上的哪个验证器来检查文件?

我尝试使用这个页面上的验证器:http://validator.w3.org/dev/tests/

但他们都抱怨了很多,特别是关于SVG版本。验证器似乎喜欢1.0和1.1版本,但当我查看此文件的顶部时,它似乎使用了version 1.2

这是问题文件的前三行(重新格式化以提高可读性):

代码语言:javascript
复制
<?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,它可能会很有用。)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-24 16:24:15

你可以使用例如http://validator.nu。因为您的文件是独立的,所以选择xml parsing,将RNG url粘贴到schema文本字段中(您正在查找的schema url可以在相关的specification中找到,在本例中为svg1.2iny:http://www.w3.org/TR/SVGTiny12/relaxng/Tiny-1.2.rng )。

即使您的三行代码片段也不是有效的SVG 1.2 Tiny内容(Tiny中的元素不允许使用x和y属性)。你应该在文件的某个地方添加一个链接,否则很难说它应该是什么样子。

票数 24
EN

Stack Overflow用户

发布于 2020-09-04 16:00:46

终端svgcheck中有一个python实用程序,它声称目标是draft-7996-bis中定义的版本1.2。一个很有前途的实用工具,IMHO。

SVG检查程序。

代码语言:javascript
复制
pip install svgcheck
代码语言:javascript
复制
svgcheck ~/path/to/mysvgfile.svg

具有适当标准的svg文件将提供如下内容:

代码语言:javascript
复制
$ svgcheck alert-circle.svg
Parsing file alert-circle.svg
INFO: File conforms to SVG requirements.

  • 确保已安装pip并正确配置了python
票数 3
EN

Stack Overflow用户

发布于 2021-09-27 12:07:07

有关子集SVG Tiny 1.2 Portable/Secure (SVG P/S),例如在Brand Indicators for Message Identification (BIMI)中使用,请参见Using the RNC Schema to Validate BIMI SVG Images。它展示了如何在命令行上执行Relax NG Compact (RNC schema )验证。

代码语言:javascript
复制
pip3 install jingtrang
wget 'https://bimigroup.org/resources/SVG_PS-latest.rnc.txt'
pyjing -c SVG_PS-latest.rnc.txt my-image.svg

对于我的用例,使用png2svg将PNG标识类型转换为SVG Tiny 1.2,这是输出。

代码语言:javascript
复制
my-image.svg:1:159: error: value of attribute "baseProfile" is invalid; must be equal to "tiny-ps"
my-image.svg:1:174: error: element "g" not allowed yet; missing required element "title"

通过编辑baseProfile值并添加<title>A very nice image title</title>,可以轻松修复错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12464533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档