XPointers в SVG

Я пытался заставить работать XPointer URI в SVG-файле, но пока мне не повезло. Попробовав что-то более сложное и потерпевшее неудачу, я упростил это до простой ссылки на ID. Тем не менее, это все еще не удается.

Спецификация кажется довольно ясной об этой реализации:

http://www.w3.org/TR/SVG/struct.html

Я нашел в Интернете пример того, что должно быть рабочей ссылкой XPointer в документе SVG. Вот оригинал. Вот версия, которую я скопировал:




    
        
    
    <используйте xlink: href = "# simpleRect" 
        x = "50" y = "50" style = "fill: red" />
    <используйте xlink: href = "# xpointer (id ('simpleRect'))" 
        x = "250" y = "50" style = "fill: yellow" />

Это должно отобразить два прямоугольника... один красный и один желтый. Я пробовал рендеринг с 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, похоже, не так хорошо поддерживается.

Другие вопросы по тегам