Как проверить корректность документа SVG? (версия 1.2)
Я использовал программу под названием Fritzing, чтобы нарисовать некоторые основные схемы Arduino, а затем экспортировать выходные данные в виде SVG. Это работает так, как ожидалось, но потом я заметил, что вывод SVG выглядит только в некоторых браузерах и только в некоторых версиях Firefox.
Поскольку Fritzing - приложение с открытым исходным кодом, я решил, что могу заглянуть в код (и, возможно, немного помочь).
Но теперь на вопрос, на что должен выглядеть правильный SVG? Какой верификатор в W3C можно использовать для проверки файла?
Я попытался использовать верификаторы, найденные на этой странице: http://validator.w3.org/dev/tests/
Но все они очень жаловались, особенно на версию SVG. Верификаторы, похоже, похожи на версии 1.0 и 1.1, но когда я смотрю на вершину этого файла, похоже, используется версия 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 я могу использовать, это может быть полезно.)
Ответы
Ответ 1
Вы можете использовать, например, http://validator.nu. Поскольку ваш файл является автономным, выберите синтаксический анализ xml, вставьте URL-адрес RNG в текстовое поле схемы (URL-адрес схемы, который вы ищете, можно найти в соответствующей спецификации, в этом case SVG 1.2 Tiny: http://www.w3.org/TR/SVGTiny12/relaxng/Tiny-1.2.rng).
Даже ваш трехстрочный фрагмент недействителен SVG 1.2 Крошечный контент (атрибуты x и y не разрешены в элементе <svg> в Tiny). Вы должны добавить ссылку на свой файл где-нибудь, иначе трудно сказать, как это должно выглядеть.