# [SVG]Externe SVG Dateien relativ in SVG Datei einbinden



## hbrauchl (5. Oktober 2006)

*SVG - Externe SVG Dateien relativ in SVG Datei einbinden*

Hallo,

ich habe zwei SVG Dateien und würde gern die eine innerhalb der anderen Datei
einbinden.
Ist dies möglich?

Falls ja, was muss ich beachten, damit die eingebundene Grafik relativ zu
der anderen dargestellt wird? So habe ich in dieser feste
Koodinatenpunkte eingegeben, welche bei einer Einbindung in einer andere
SVG Datei nicht mehr stimmen würden.

Vielen Dank.


Lg,
Hans


----------



## ma-games (30. Mai 2008)

Hallo!

Ich würde gerne was ähnliches machen und habe mich zu diesem Thema die letzten zwei Tage zu tode gegoogelt und recherchiert.

Ich möchte in eine SVG-Datei Teile von eienr anderen einbinden und will das mal anhand von zwei kurzen Dateien demonstrieren:

Zuerst eine komplett eingenständige Datei (1.svg) mit einem Kreis und einer Ellipse wechle mit ids im <defs> Bereich definiert sind und dann mit <use> und dem entsprechnden XLink innerhalb der Datei referenziert sind:


```
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg 
    xmlns="http://www.w3.org/2000/svg"
    xmlns:xlink="http://www.w3.org/1999/xlink"
    viewBox = "0 0 1000 1000" version = "1.1">
    <defs>
        <circle id = "s1" cx = "200" cy = "200" r = "200" fill = "yellow" stroke = "black" stroke-width = "3"/>
        <ellipse id = "s2" cx = "200" cy = "150" rx = "200" ry = "150" fill = "salmon" stroke = "black" stroke-width = "3"/>
    </defs>
    <use x = "100" y = "100" xlink:href = "#s1"/>
    <use x = "100" y = "650" xlink:href = "#s2"/>
</svg>
```
Soweit so gut - funktioniert alles wie gewollt mit diversen Viewern.

Jetzt würde ich gerne aber aus einer zweiten SVG-Datei (2.svg)  den Kreis, der in dem <def>-Bereich der Datei 1.svg deklariert ist mit <use> einbinden:


```
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg    
    xmlns="http://www.w3.org/2000/svg"
    xmlns:xlink="http://www.w3.org/1999/xlink"
    viewBox = "0 0 1000 1000" version = "1.1">
    <defs>        
        <ellipse id = "s2" cx = "200" cy = "150" rx = "200" ry = "150" fill = "salmon" stroke = "black" stroke-width = "3"/>
    </defs>
    <use x = "100" y = "100" xlink:href = "1.svg#s1"/>
    <use x = "100" y = "650" xlink:href = "#s2"/>
</svg>
```
Das funktioniert bei mir allerdings mit keinem Viewer. Daher meine Fragen:

1. Geht das überhaupt?
2. Ist der XLink falsch?
3. Unterstützt noch kein Viewer den svg bzw. XLink Standard?

Das Ganze müsste doch irgendwie gehen..

Siehe auch: http://www.w3.org/TR/SVG11/linking.html#LinksIntoSVG

Vielen Dank!


----------



## ma-games (31. Mai 2008)

Ich hab mittlerweile herausgefunden, dass mit der Preview Version 6 des Adobe SVG Viwers, dass so angezeigt wird, wie ich will. http://www.adobe.com/svg/viewer/install/beta.html
Mich wundert mittlerweile schon etwas wie lange es dauert, dass der SVG 1.1 Standard in Programmen und Viewer umgesetzt wird. Die Beta Version von Adobe ist von 2003! Seit dem scheint ja nicht so viel passiert zu sein. Mozilla unterstützt das zumindest noch nicht.
Inscape will das sicherlich irgendwann unterstüzen, aber in der Roadmap konnte ich konkret zu diesen XLink nichts finden. Wann externe CSS-Dateien unterstüzt von Inksacpe werden ist auch noch nicht abzusehen. Oder weiß jemand näheres zur Entwicklung dieser zwei Punkte?


----------

