insertar - ¿Los documentos SVG admiten atributos de datos personalizados?
svg path (4)
En HTML5, los elementos pueden tener metadatos arbitrarios almacenados en atributos XML cuyos nombres comiencen con data-
, como <p data-myid="123456">
. ¿Es esto parte de la especificación de SVG también?
En la práctica, esta técnica funciona bien para documentos SVG en muchos lugares. Pero me gustaría saber si es parte de la especificación oficial de SVG o no, porque el formato es lo suficientemente joven como para que exista mucha incompatibilidad entre navegadores, especialmente en dispositivos móviles. Entonces, antes de comprometerme con el código, me gustaría saber si puedo esperar que futuros navegadores converjan para apoyar esto.
Encontré este mensaje de la lista de correo del grupo de trabajo diciendo que "esperan que [ellos] lo respalden". ¿Esto se hizo oficial?
El atributo data-*
es parte de HTML5. No es un atributo XML genérico.
La actual Recomendación SVG W3C es SVG 1.1 (desde 2011-08). No permite este atributo, ya que puede verificar en la lista de atributos .
Lo same es el caso del borrador de trabajo SVG 2 (desde 2012-08). Actualización (2015) : parece que está destinado a admitir atributos data-*
en SVG 2 (actualmente todavía es un Borrador de Trabajo).
Si bien otras respuestas son técnicamente correctas, omiten el hecho de que SVG proporciona un mecanismo alternativo para data-*
. SVG permite incluir cualquier atributo y etiqueta , siempre que no entre en conflicto con los existentes (en otras palabras, debe usar espacios de nombres).
Para usar este mecanismo (equivalente):
- use
mydata:id
lugar dedata-myid
, así:<p mydata:id="123456">
- asegúrese de definir el espacio de nombres en la etiqueta de apertura de SVG, como esta:
<svg xmlns:mydata="http://www.myexample.com/whatever">
hay un mecanismo más general.
svg admite elementos desc
que pueden contener xml arbitrario de otros espacios de nombres. vincular instancias de estos elementos o nodos secundarios de su propio espacio de nombres por ids dependientes o atributos refid.
data-*
atributos data-*
en los elementos SVG son oficialmente compatibles en el borrador actual de SVG2. Ver:
-
w3c/svgwg
commit1cb4ee9
: Se agregóSVGElement.dataset
y se permitieron los atributosdata-*
en todos los elementos SVG. - ACTION-3694: Agregue notas de atributos "data- *" a la especificación. (Creado en: 15 de enero de 2015)
- RESOLUCIÓN: reservaremos los atributos "data- *" para usarlos en el contenido SVG. La API para manejarlos está en Element. (de SVG WG Telecon el 15 de enero de 2015)
- https://lists.w3.org/Archives/Public/www-svg/2014Dec/0022.html