Warnung
Da ich im Moment diese Seite leider nicht mehr aktiv pflegen und auf dem neuesten Stand halten kann, können manche Informationen bereits veraltet sein. Sollten Änderungen von euch bei mir eintreffen, bin ich jedoch gerne bereit diese hier einzupflegen. Auch Leute, die sich um die Seite bzw. deren Inhalt kümmern möchten, sind gerne gesehen.
 Inhaltsverzeichnis  SVG-Aufbau  Der Prolog

3.2Der Prolog

Im Prolog eines SVG-Dokuments werden Definitionen und Einstellungen zur Verarbeitung des Dokuments festgelegt. Der Prolog besteht aus den folgenden beiden Teilen:

Da es sich bei einer SVG-Datei um ein XML-Dokument handelt, muß die XML-Deklaration <?xml version="1.0"?> lauten. Neben der XML-Versionsnummer, die dem Attribut version zugewiesen wird, liefert die Deklaration zwei weitere Informationen an den XML-Prozessor, der das Dokument bearbeiten soll. Zum einen den Zeichensatz, mit dem das Dokument kodiert wurde (z.B. ISO-8859-1, UTF-16, ...), und ein spezielles Flag, welches die Werte yes oder no annehmen kann und angibt, ob externe Datenquellen für die Verarbeitung des Dokuments nötig sind. Der Zeichensatz wird mit dem Attribut encoding festgelegt, das Flag mit standalone. Da die Verwendung beider Attribute optional ist und sie nicht zwingend in der XML-Deklaration stehen müssen, besitzen sie jeweils einen Standardwert. Verzichtet man auf das Attribut encoding, geht der XML-Prozessor von einer UTF-8-Kodierung des Dokuments aus. Fehlt das Attribut standalone, wird der Standardwert no verwendet. standalone findet in der Praxis allerdings selten Anwendung und kann daher im Regelfall weggelassen werden.

Anschließend folgt die Deklaration des Dokument-Typs. Durch sie wird die Grammatik einer Klasse von Dokumenten festgelegt. In der Praxis kann ein Viewer meist auch ohne diese Angabe die SVG-Grafik korrekt anzeigen. Dennoch sollte jedes SVG 1.1-konforme Dokument die Zeile <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> beinhalten. Obwohl in diesem sogenannten Public Identifier immer eine URL angegeben wird, welche in diesem Fall auf die SVG Document Type Definition zeigt, muß keine ständige Verbindung ins Netz vorhanden sein, da es sich hierbei hauptsächlich um einen eindeutigen Bezeichner handelt. Die URL dient eher als Alternativreferenz, sollte der XML-Parser die DTD nicht implementiert haben.

Nach dem Prolog folgt das sogenannte Wurzelelement. Dieses lautet grundsätzlich wie der Name der Dokument-Typ-Deklaration bzw. im Falle von SVG einfach svg. Das <svg>-Element kann natürlich wie jedes andere Element auch selbst einige Attribute, wie z.B. height und width für die Ausdehnung der Grafik oder diverse Ereignisbehandler (siehe  Ereignisbehandlung), enthalten. Eines der wichtigeren Attribute nennt sich xmlns. Es definiert den Namensraum des Dokuments, sprich die Menge von Namen, welche durch eine URI referenziert werden, die in einem XML-Dokument für die Namen von Elementtypen und Attributen verwendet werden können. Namensräume finden Verwendung, wenn in einem Dokument mehrere XML-Sprachen verwendet werden sollen. Beispielsweise gäbe es in einem XML-Dokument, das XHTML- und SVG-Anteile besitzt, Namenskonflikte, da beide Sprachen ein Anker-Element des Namens <a> besitzen. Damit der Parser beim Auftreten des Elements weiß, welcher Sprache es zugeordnet werden soll, erhält jede Sprache einen eigenen Namensraum. Der Namensraum eines validen SVG-Dokuments der Version 1.1 wird mit der URI http://www.w3.org/2000/svg definiert. Wird der Namensraum mittels xmlns="http://www.w3.org/2000/svg" angegeben, wird er auch Standardnamensraum genannt. Das Element, welches das Attribut xmlns beinhaltet, und alle Elemente und Attribute, die sich innerhalb dieses Elements befinden, gehören diesem Namensraum an und können wie gewohnt verwendet werden (z.B. <a href="http://www.selfsvg.info">. In der Regel wird das Attribut xmlns gleich in das Wurzelelement geschrieben. Bei SVG-Grafiken ist es allerdings nicht unbedingt notwendig, da es implizit gesetzt wird, falls es nicht angegeben wurde. Möchte man nun eine zusätzliche Sprache verwenden, muß ein weiterer Namensraum festgelegt werden. SVG selbst verwendet einige Attribute der XML Linking Language (XLink). Darum muß in diesem Fall ein zusätzlicher Namensraum angegeben werden. Dies geschieht durch das Attribut-Wert-Paar xmlns:xlink="http://www.w3.org/1999/xlink", das man ebenfalls im SVG-Wurzelelement eintragen sollte. Möchte man nun ein XLink-Element oder XLink-Attribut verwenden, so muß es mit dem Präfix xlink beginnen. Das <image>-Tag benutzt beispielsweise das Attribut xlink:href, um eine Referenz auf eine Grafik zu setzen. Das folgende Beispiel sollte dies etwas verdeutlichen.

 Anzeigebeispiel

<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg version="1.1"
     xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink">

  <image x="10" y="10" width="100" height="119" xlink:href="tux.png" />

</svg>
Listing 3-1: Unterschiedliche Namensräume innerhalb eines SVG-Dokuments

Tiefgreifendere Informationen zum Thema Namensräume erhält man auf der W3C-Website Namespaces in XML [ W3C05h]

zum vorherigen Kapitel  Das Dokument
zum nächsten Kapitel  Der Definitionsabschnitt
 Inhaltsverzeichnis  SVG-Aufbau  Der Prolog