En aproximadamente la mitad de los ejemplos de svg que veo en Internet, el código está envuelto en <svg></svg>
etiquetas simples y simples .
En la otra mitad, las etiquetas svg tienen muchos atributos complicados como este:
<svg
xmlns="http://www.w3.org/2000/svg"
version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink">
Mi pregunta es: ¿está bien usar las etiquetas svg simples? He intentado jugar con los complicados, y todo funciona bien si no los incluyo.
<!DOCTYPE svg xmlns="www.w3.org/2000/svg">
funciona, pero si quito los xmlns o lo cambio,<!DOCTYPE svg xmlns="www.example.com">
no funciona. ¿Porqué es eso?El
xmlns="http://www.w3.org/2000/svg"
atributo es:<svg>
. 2El
xmlns:xlink="http://www.w3.org/1999/xlink"
atributo es:<svg>
con xlink: atributos. 2El
version="1.1"
atributo es:1 Identificadores de recursos internacionalizados (RFC3987)
2 Desde HTML5
3 Lenguaje de marcado extensible (XML) 1.0
4 Probablemente hasta el lanzamiento de otras versiones principales.
5 SVG 2, Recomendación del candidato del W3C, 07 de agosto de 2018
fuente
version
atributo de la declaración xml (<?xml version...
) con elversion
atributo del<svg>
elemento. El primero trata sobre la versión del lenguaje de marcado XML, mientras que el último especifica la versión de SVG. El autor de esta respuesta cometió ese error al referirse al XML, no a la especificación SVG en ³. Traté de corregirlo, pero algunos idiotas rechazaron la edición.Me gustaría agregar a ambas respuestas, pero no tengo puntos, estoy agregando una nueva respuesta. En pruebas recientes en Chrome (versión 63.0.3239.132 (compilación oficial) (Windows de 64 bits)), descubrí que:
xhr.responseText
yelm.innerHTML
. Esto no requiere los xmlns.xhr.responseXML.documentElement
yelm.appendChild()
oelm.insertBefore()
. Este método de crear el SVG en línea produce resultados a medias sin que se declare el espacio de nombres SVG básico, como enxmlns="http://www.w3.org/2000/svg"
. El <svg> se carga en el HTML, pero las funciones a nivel de documento, como las quegetElementById()
no se reconocen en el elemento <svg>. Supongo que esto se debe a que usa el analizador XML XMLHttpRequest fuera del HTML.fuente
Acerca del atributo de versión SVG que dice el MDN WebDoc
PD: El SVG 2 está lejos de convertirse en un estándar todavía.
fuente