Поддерживает ли SVG-документы пользовательские атрибуты данных?
В HTML5 элементы могут иметь произвольные метаданные, хранящиеся в атрибутах XML, имена которых начинаются с data-
, таких как <p data-myid="123456">
. Является ли эта часть спецификации SVG?
На практике этот метод отлично работает для документов SVG во многих местах. Но я хотел бы знать, является ли это частью официальной спецификации SVG или нет, потому что формат достаточно молод, что по-прежнему существует много несовместимости между браузерами, особенно на мобильных устройствах. Поэтому, прежде чем совершать код, я бы хотел знать, могу ли я ожидать, что будущие браузеры будут сходиться, поддерживая это.
Я нашел это сообщение из списка рассылки рабочей группы, в котором говорится, что они "ожидают [они] будут" поддерживать" это. Это стало официальным?
Ответы
Ответ 1
В то время как другие ответы технически правильны, они опускают тот факт, что SVG предоставляет альтернативный механизм для data-*
. SVG позволяет включать любой атрибут и тег, если он не конфликтует с существующими (другими словами: вы должны использовать пространства имен),
Чтобы использовать этот (эквивалентный) механизм:
- используйте
mydata:id
вместо data-myid
, например: <p mydata:id="123456">
- убедитесь, что вы определяете пространство имен в теге открытия SVG, например:
<svg xmlns:mydata="http://www.myexample.com/whatever">
Ответ 2
Атрибут data-*
является частью HTML5. Это не общий атрибут XML.
Текущая Рекомендация SVG W3C SVG 1.1 (с 2011-08 гг.). Он не позволяет этот атрибут, так как вы можете проверить список атрибутов.
тот же применим для Рабочего проекта SVG 2 (с 2012-08 гг.). Обновление (2015). Кажется, что предназначено для поддержки атрибутов data-*
в SVG 2 (в настоящее время еще рабочий проект).
Ответ 3
data-*
атрибуты элементов SVG официально поддерживаются в текущем проекте SVG2. См:
Ответ 4
существует более общий механизм.
svg поддерживает desc
элементы, которые могут содержать произвольный xml из других пространств имен. связывать экземпляры этих элементов или дочерних узлов из собственного пространства имен с помощью зависимых идентификаторов или атрибутов refid.
это важная часть спецификации (5.4).