Estoy tratando de unir los marcadores para un conjunto de imágenes SVG. Mi problema es que no puedo hacer referencias externas en definiciones de marcadores. Puede estar conectado a la pregunta How to reference external svg file in svg correctly? pero aún falta un enlace.Los marcadores definidos externamente no aparecen en SVG
hice un pequeño ejemplo para demostrar mi problema:
b.svg (que se hace referencia):
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<defs>
<circle id="b" r="6" stroke="black" fill="green" />
<marker id="b_end"
orient="auto"
style="overflow:visible">
<use xlink:href="#b" />
</marker>
</defs>
</svg>
a.svg (tratando de hacer referencia a b.svg):
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<defs>
<circle id="a" r="6" stroke="black" fill="yellow" />
<marker id="a_end"
orient="auto"
style="overflow:visible">
<use xlink:href="#a" />
</marker>
<marker id="b_end"
orient="auto"
style="overflow:visible">
<use xlink:href="b.svg#b" />
</marker>
</defs>
<path d="m 10,10 20,20" style="marker-end:url(#a_end)" stroke="black" />
<path d="m 40,10 20,20" style="marker-end:url(#b_end)" stroke="black" />
<path d="m 70,10 20,20" style="marker-end:url(b.svg#b_end)" stroke="black" />
</svg>
Como puede ver, hice referencia al marcador de la primera línea a través de una identificación interna (en realidad dos ya que el marcador también tiene una referencia). Esto funciona bien
Utilicé una definición de marcador interno con una ruta externa para la segunda línea. No funciona (La línea está diplayed, el marcador no lo está).
Usé un marcador externo en la tercera línea. Tampoco funciona.
El problema puede ser que el contenido externo no está en el DOM de alojamiento, al menos no cuando se resuelve la referencia en el estilo.
Bien, pero ¿qué puedo hacer al respecto? ¿Cómo puedo hacer referencia a elementos externos para marcadores en SVG?
¿Está tratando de hacer esto en Safari o Chrome porque no creo que apoyen referencias externas todavía. Sin embargo, esto debería funcionar en Firefox y Opera. –
Bien, perdón por perder este detalle. Mi objetivo final es generar un PDF correcto desde DocBook :) Pero probé esto con IE y Firefox también sin suerte. –
¡Y tienes razón, el código exacto que publiqué funciona bien con Opera! No lo he intentado antes. Aun así, carezco de la conclusión. ¿Es correcto mi código svg, simplemente se queda atrás en soporte de renderizadores actuales? –