[Wissen] Sinnvoller Einsatz von IDs in SVG
  • fZapfZap Juni 2006
    Die Inkscape Entwickler bringen es auf den Punkt: Inkscape ist ein SVG-Editor. Grund genug sich einmal genauer mit der "SVG-Spezifikition":http://www.w3.org/TR/SVG11/ zu beschäftigen. Jedes XML-Element in einer SVG-Datei wird über eine eindeutige ID referenziert.

    !http://www.pixel-pics.de/upload/1149622209.png!

    Die IDs werden generisch erzeugt mit Namen wie id=”path1102″ oder id=”layer1″. Doch was lässt sich mit diese Erkenntnis anfangen?

    Hier einmal die Vorteile schnell aufgezählt:

    * Schnelles Auffinden einzelner Objekte innerhalb des SVG-Dokuments, besonders hilfreich bei gesperrten Objekten.
    * Beim Bitmapexport von Einzelobjekten wird als Name der ID-Name vorgeschlagen.
    * Leichtere Nachvollziehbarkeit von Referenzen innerhalb des SVG-Dokuments von xlink:href Elementen. Damit lässt sich beispielsweise schnell herausfinden welches Objekt auf welche Gradientendefinition linkt.
    * Das Lernen der Vergabe sematischer IDs und dadurch den Aufbau eines gut strukturierten Dokuments.

    Nach dem Malen und Markieren der Objekte, ruft man den Objekteigenschaften-Dialog über die rechte Maustaste oder die Tastenkombination STRG+SHIFT+O auf. Im obersten Feld “ID-Kennung” kann eine neue ID vergeben werden. Wichtig dabei ist die Eindeutigkeit der ID. Eine ID darf nur einmal im Dokument vorkommen. Ich arbeite bevorzugt mit dem "Inkscape-eigenen XML-Editor":http://wiki.inkscape-forum.de/xml-editor , STRG+SHIFT+X, dort lässt sich die Vergabe schneller bewerkstelligen und es ist sofort ersichtlich welche ID-Namen schon vergeben sind. Gruppierete Objekte können auch eine neue IDs bekommen auch wenn die Objekte selbst schon IDs besitzen.

    Der Bezeichner ist ein zusätliche Kennung aus dem inkscape-Namensraum und kann optional ausgefüllt werden, ich verwende den gleichen Namen wie die ID-Kennung allerdings mit vorangestellten “#” (Doppelkreuz).
  • flomarflomar Juni 2006
    danke für diesen exkurs in die "tiefen" des svg-formats ;)

    in der tat muss ich zugeben, dass der XML-editor das von mir am wenigsten genutzte tool in inkscape ist, obwohl es ja sozusagen die absolute quelle der SVG-grafik birgt.

    vielleicht gehts da nicht nur mir so und wir könnten hier ein bisschen näher auf interessante aspekte des editors eingehen. wie gesagt kenn ich mich damit nicht wirklich aus, also verbessert mich wenn ich blödsinn labere, aber ich bin mir sicher es lassen sich mit dem editor dinge bewerkstelligen die mit inkscape im jetzigen 0.44 stadium noch nicht machbar sind, jedoch im bereich der SVG-möglichkeiten liegen.

    bspw. denke ich gerade an den thread von ILL mit ihrem schlagschatten, wo killerwattebäuschen den "blur" effekt mithilfe von XML eingebaut hat. hier kommt man dann wohl ins fahrwasser der skript - jedoch auch hier bin ICH noch nicht sehr bewandert in bezug auf inkscape...obwohl die integration von skripten ja möglich sein müsste...auch hier denke ich könnte man man vielleicht noch einiges abarbeiten.
  • fZapfZap Juni 2006
    SVG-Code ist gleichemaßen geeignet von Maschinen, wie von Menschen gelesen zu werden und die Struktur ist schnell erkennbar. Das ist ja auch ein großer Vorteil XML-basierter Spezifikationen. Im Editor steckt meines Erachtens ein großes Potential für verschiedene Anwendungsfälle, wie Effekte.

    Ich habe die Erfahrung gemacht dass es sinnvoll ist noch einen externen Texteditor zu verwenden, etwa das gängige Linux-Repertoire (VIM, GVIM, KATE) oder entsprechende Windows-Pendants (Notepad++, Scite). Ich verwende zu Validieren zusätzlich xmllint das es auch für Windows gibt => "http://xmlsoft.org":http://xmlsoft.org
  • triple-btriple-b Juni 2006
    h2. Danke für den Hinweis..

    .. fZap, ich hab mich bei meinen nächsten Bild (ein Smily-Set) das von dir Gelernte gleich versucht anzuwenden, habe also bei meinem ersten Grund-Smiliy alle Objekte benannt also z.B auge_links ; auge_rechts ; gruppe_augen usw .. dann wollte ich natürlich den Smily kopieren (Strg+C ; Strg+V) und dann hat Inkscape im kopierten Smily alle Ids wieder umbenannt .. ich weis ja das Inkscape verschiedene IDs benuzem muss, aber kann es dann nicht z.B. aus dem neuen Gruppenamen der Objekte (bei mir sad_smily) ein präfix für die untergeordneten Objekte machen und die Originalnamen behalten .. also z.B. sad_smily_auge_links?

    weil sonst hab ich ganz schön viel Schreibarbeit..

    h3. Schonmal Danke für die Antworten euer Kevin
  • fZapfZap Juni 2006
    Ja das ist klar, dass Inkscape IDs nach Kopieren umbenennt, da eine ID _einzigartig_ ist und nur _einmal_ vorkommen darf. Deshalb ist es bei einem Smiley-Set sinnvoller mit Klonobjekten zu arbeiten. Die Kloneobjekte habe im Namensanteil "'use[num]" und werden auf das Orginalobjekt referenziert. In diesem Fall reicht es das Orginalobjekt zu bennenen, so bleibt es gut auffindbar und wenn das Orginalobjekt verändert wird, dann gleichzeitig alle Klone die sich darauf beziehen. Eigene ID Vergabe ist auch kein Muss sondern nur ein feature, dass man zusätzlich nutzen kann.
  • triple-btriple-b Juni 2006
    Öhm .. wo finde ich das mit den clonen?
  • fZapfZap Juni 2006
    "http://wiki.inkscape-forum.de/klonen":http://wiki.inkscape-forum.de/klonen

    Unter *Berabeiten->Klonen->...* und In der Befehlsleiste gibt es die Klonfunktion. (nebenebei bemerkt: ALT+D macht bei mir Schwierigkeiten)

Hey Fremder!

Sieht so aus als wenn du neu hier bist. Wenn du mitmachen willst, drücke einen dieser Buttons!

In dieser Diskussion