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

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

На практике эта техника отлично работает для SVG-документов во многих местах. Но я хотел бы знать, является ли это частью официальной спецификации 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).

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