Поддерживают ли SVG-документы пользовательские атрибуты данных?

в HTML5 элементы могут иметь произвольные метаданные, хранящиеся в атрибутах XML, имена которых начинаются с data- например <p data-myid="123456">. Это тоже часть спецификации SVG?

на практике этот метод отлично работает для SVG docs во многих местах. Но я хотел бы знать, является ли это частью официальной спецификации SVG или нет, потому что формат достаточно молод, что все еще много несовместимости между браузерами, особенно в мобильном телефоне. Поэтому, прежде чем совершить код, я хотел бы знать, могу ли я ожидайте, что будущие браузеры сойдутся на поддержке этого.

нашел этой из списка рассылки рабочей группы, говоря, что они "ожидают [они] будут" поддерживать его. Это стало официальным?

4 ответов


хотя другие ответы технически правильны, они опускают тот факт, что SVG предоставляет альтернативный механизм для data-*. SVG позволяет любой атрибут и тег для включения, если он не конфликтует с существующими (другими словами: вы должны использовать пространства имен).

чтобы использовать этот (эквивалентный) механизм:

  • использовать mydata:id вместо data-myid, например: <p mydata:id="123456">
  • убедитесь, что вы определяете пространство имен в открытии SVG бирка, как это:<svg xmlns:mydata="http://www.myexample.com/whatever">

на data-* атрибут является частью HTML5. Это не универсальный атрибут XML.

Текущая рекомендация SVG W3C -SVG 1.1 (от 2011-08). Это не позволяет этот атрибут, как вы можете проверить в список атрибутов.

на то же самое на SVG 2 Рабочий проект (от 2012-08). обновление (2015): похоже, что предназначен для поддержки data-* атрибуты SVG 2 (в настоящее время все еще рабочий проект).



есть более общий механизм.

svg поддерживает desc элементы, которые могут содержать произвольный XML из других пространств имен. свяжите экземпляры этих элементов или дочерних узлов из собственного пространства имен с помощью зависимых идентификаторов или атрибутов refid.

это соответствующая часть спецификации (5.4).