Nota xlink:hreffoi descontinuada , basta usar em seu hreflugar, por exemplo
<svg viewBox="0 0 512 512">
<image width="512" height="512" href="external.svg"/>
</svg>
viewBox, widthe os heightvalores (nesta resposta) são apenas para fins ilustrativos, ajuste o layout de acordo ( leia mais ).
Desde <image> ações especificação semelhante como <img>, o que significa que não suporta SVG styling, conforme mencionado na resposta de Christiaan . Por exemplo, se eu tiver a seguinte linha css que define a cor da forma svg para ser igual à cor da fonte,
svg {
fill: currentColor;
}
O estilo acima não se aplicaria se <image>fosse usado. Para isso, você precisa usar <use>, conforme mostrado na resposta de Nick .
Nota id="layer1"e href="OTHERFILE.svg#layer1"valores em sua resposta são obrigatórios .
Significa que você tem que adicionar o idatributo ao arquivo svg externo, então você precisa hospedar o arquivo svg externo (modificado) por você (seu site) ou em outro lugar. O arquivo svg externo resultante tem a seguinte aparência (observe onde coloquei o id):
<svg id="logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path d="..."/>
</svg>
O valor de id pode ser qualquer coisa, eu uso "logo" neste exemplo.
Para incorporar esse svg,
<svg viewBox="0 0 512 512">
<use href="edited-external.svg#logo"/>
</svg>
Se você usar o svg acima como embutido em seu html, você não precisa do atributo xmlns (pelo menos o que eu sei do svgo ).