XPointers в SVG
Я пытался заставить работать XPointer URI в SVG-файле, но пока мне не повезло. Попробовав что-то более сложное и потерпевшее неудачу, я упростил это до простой ссылки на ID. Тем не менее, это все еще не удается.
Спецификация кажется довольно ясной об этой реализации:
http://www.w3.org/TR/SVG/struct.html
Я нашел в Интернете пример того, что должно быть рабочей ссылкой XPointer в документе SVG. Вот оригинал. Вот версия, которую я скопировал:
xml version = "1.0" standalone = "no"?>
Это должно отобразить два прямоугольника... один красный и один желтый. Я пробовал рендеринг с Firefox 3.6 и Inkscape 0.47. Нет успеха Только красный прямоугольник показывает.
Что мне не хватает?
Спасибо за любую помощь, которую вы можете предложить
2 ответа
В настоящее время (по состоянию на 10 марта 2016 года, SVG 1.1 Second Edition) поддержка рендеринга XPointers в браузерах отсутствует. W3Schools пишет об этом следующим образом:
Поддержка браузера XPointer
Браузер не поддерживает XPointer. Но XPointer используется в других языках XML.
Это отчасти расстраивает, потому что вся официальная документация не занимается различием между поддерживаемыми браузером (готовыми к Интернету) функциями SVG и технически поддерживаемыми, чисто XML-подобными функциями SVG.
Из раздела ссылок спецификации:
<URI-reference> = [ <absoluteURI> | <relativeURI> ] [ "#" <elementID> ] -or-
<URI-reference> = [ <absoluteURI> | <relativeURI> ] [ "#xpointer(id(" <elementID> "))" ]
Так в чем же преимущество использования синтаксиса xpointer? Все реализации SVG, которые я видел, поддерживают альтернативный (более короткий) синтаксис, показанный выше (#myId). Синтаксис xpointer, похоже, не так хорошо поддерживается.