04. September 2001

1 Einleitung


Inhalt


 

1.1 Über SVG

Diese Spezifikation definiert die Eigenschaften und die Syntax für Scalable Vector Graphics (SVG).

SVG ist eine Sprache, um zweidimensionale Grafiken in XML [XML10] zu beschreiben. SVG erlaubt drei verschiedene Grafikobjektarten: Vektorgrafikformen (z.B. Wege, die aus geraden Linien und Kurven bestehen), Bilder und Text. Grafische Objekte können gruppiert, gestaltet, transformiert und zusammengesetzt werden in zuvor gerenderte Objekte. Die Palette der Eigenschaften schließt verschachtelte Transformationen, Ausschneiden von Pfaden, Alpha-Masken, Filtereffekte und Vorlageobjekte ein.

SVG-Zeichnungen können interaktiv und dynamisch sein. Animationen können entweder deklarativ (z.B. durch die Einbindung eines SVG-Animationselements in den SVG-Inhalt) definiert und ausgelöst werden oder über Skripte.

Hoch entwickelte SVG-Anwendungen sind mit Hilfe einer ergänzenden Skript-Sprache möglich, die Zugriff auf das SVG Document Object Model (DOM) von SVG hat und vollen Zugang zu allen Elementen, Attributen und Eigenschaften. Eine Vielzahl der Event Handler, wie onmouseover und onclick, können jedem SVG-Grafikobjekt zugeordnet werden. Auf Grund seiner Kompatiblität und dem Einfluß auf andere Web-Standards, können Dinge wie Skripting gleichzeitig auf XHTML- und SVG-Elemente innerhalb der gleichen Webseite angewendet werden.

SVG ist eine Sprache für mannigfaltigen Grafikinhalt. Sofern ein originales Quelldokument existiert, das höherwertige Strukturen und Semantik besitzt, wird aus Zugänglichkeitsgründen empfohlen, dass die höherwertige Information verfügbar gemacht wird, entweder dadurch, dass das originale Quelldokument zur Verfügung gestellt wird, oder dadurch, dass eine alternative Version zur Verfügung gestellt wird, in einem alternativen Format, das die höherwertigen Information übermittelt, oder durch die Möglichkeiten von SVG, die höherwertigen Informationen im SVG-Inhalt einzubetten. Vorgeschlagene Techniken, um eine bessere Zugänglichkeit zu erreichen, finden Sie unter Zugänglichkeit.


1.2 SVG MIME-Typ , Dateinamenerweiterung und Macintosh-Dateityp

Der MIME-Typ für SVG ist "image/svg+xml" (siehe [RFC3023]). Das W3C wird diesen MIME-Typ um dem Zeitpunkt herum registrieren, wenn SVG als W3C Recommendation anerkannt wird.

Es wird empfohlen, dass SVG-Dateien plattformübergreifend die Erweiterung ".svg" verwenden (alles klein geschrieben). Es wird empfohlen, dass alle gzip-komprimierten SVG-Dateien plattformübergreifend die Erweiterung ".svgz" verwenden (alles klein geschrieben).

Es wird empfohlen, dass SVG-Dateien, die im Macintosh HFS-Dateisystem gespeichert werden, der Dateityp "svg " zugewiesen wird (alles klein geschrieben, das vierte Zeichen ist ein Leerzeichen). Es wird empfohlen, dass alle gzip-komprimierten SVG-Dateien, die im Macintosh HFS-Dateisystem gespeichert werden, die Erweiterung ".svgz" verwenden (alles klein geschrieben).

1.3 SVG-Namensraum , Public Identifier und System Identifier

Das Folgende sind der SVG 1.0 Namensraum, der Public Identifier und der System Identifier:

SVG Namespace:
http://www.w3.org/2000/svg
Public Identifier for SVG 1.0:
PUBLIC "-//W3C//DTD SVG 1.0//EN"
System Identifier for SVG 1.0:
http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd

Das Folgende ist das Beispiel einer Document Type Declaration für ein SVG-Dokument:

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" 
              "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">

1.4 Kompatibilität mit anderen Standards

SVG orientiert sich an anderen Spezifikationen und integriert sich in andere W3C-Spezifikationen und aufkommende Standards. Weil SVG sich an anderen Standards orientiert und konform zu ihnen ist, wird SVG kraftvoller werden und es Benutzern einfacher machen, zu lernen, wie es in ihre Webseiten eingebunden werden kann.

Das Folgende beschreibt einige Wege, wie SVG Kompatibilität erreicht, sich an Standards orientiert oder sich in andere W3C-Anforderungen integriert:

In Umgebungen, die [DOM2] auch für andere XML-Grammatiken (z.B., XHTML [XHTML]) unterstützen, und die ebenso SVG und das SVG DOM unterstützen, kann ein einzelnes Script gleichzeitig sowohl für das XML-Dokument als auch für die SVG-Grafik verwendet werden. In diesem Fall werden interaktive und dynamische Effekte in vielen XML-Namensräumen möglich, in denen die gleichen Scripte verwendet werden.


1.5 Terminologie

Innerhalb dieser Spezifikation sind die Schlüsselworte "MÜSSEN", "NICHT DÜEFREN", "ERFORDERLICH", "SOLLTEN", "SOLLTEN NICHT", "EMPFOHLEN", "KÖNNEN", und "OPTIONAL" so zu interpretieren wie in RFC 2119 (siehe [RFC2119]) beschrieben. Jedoch erscheinen diese Worte aus Lesbarkeitsgründen in dieser Spezifikation nicht in Großbuchstaben.

Manchmal empfiehlt diese Spezifikation eine gute Vorgehensweise für Autoren und Benutzerschnittstellen. Diese Empfehlungen sind nicht normativ und die Konformität zu dieser Spezifikation hängt nicht von deren Umsetzung ab. Diese Empfehlungen enthalten Ausdrücke wie "Wir empfehlen ...", "Diese Spezifikation empfiehlt ..." oder ähnliche Worte.


1.6 Definitionen

grundlegende Formen
Standardformen, die zur Annehmlichkeit in SVG für gewöhnliche grafische Operationen vordefiniert sind. Im Einzelnen: 'rect', 'circle', 'ellipse', 'line', 'polyline', 'polygon'.
Canvas
Eine Oberfläche, auf der grafische Elemente gezeichnet werden, die ein reales physikalisches Medium sein kann wie ein Display oder ein Pager oder eine abstrakte Oberfläche, wie ein zugewiesener Bereich eines Computerspeichers. Siehe Diskussion um den SVG Canvas im Kapitel Koordinatensysteme, Transformationen und Einheiten.
Clipping Path
Eine Kombination aus 'path', 'text' und grundlegenden Formen, die als Außenlinie (in Abwesenheit von alti-aliasing) einer 1-bit Maske dient. Alles innerhalb dieser Außenlinie darf angezeigt werden, alles außerhalb wird ausmaskiert. Siehe Clipping Paths.
Container-Element
Ein Element, das grafische Elemente oder andere Container-Elemente als Kind-Elemente haben kann. Im Einzelnen: 'svg', 'g', 'defs' 'symbol', 'clipPath', 'mask', 'pattern', 'marker', 'a' und 'switch'.
aktuell innerstes SVG-Dokumentfragment
Der Unterbaum eines XML-Dokuments, der mit dem nächst höheren 'svg'-Element (Vorfahre) eines gegebenen SVG-Elements beginnt.
aktuelles SVG-Dokumentfragment
Der Unterbaum eines XML-Dokuments, der mit dem ganz außen liegenden 'svg'-Element (Vorfahre) eines gegebenen SVG-Elements beginnt; mit der Anforderung, dass alle Container-Elemente, die zwischen dem ganz außen liegenden 'svg'-Element und diesem Element liegen, Elemente der SVG-Sprache sind.
aktuelle Transformationsmatrix (CTM)
Transformations-Matrizes definieren das mathematische Übertragen von einem Koordinatensystem in ein anderes mit Hilfe einer 3x3 Matrix mit der Gleichung [x' y' 1] = [x y 1] * Matrix. Die current transformation matrix (CTM) definiert die Umsetzung vom Benutzerkoordinatensystem zum Viewport-Koordinatensystem. Siehe Koordinatensystem-Transformationen.
fill
Die Operation, das Innere einer Form oder das Innere eines Zeichens (Glyph) in einem Text auszumalen.
font
Ein Font repräsentiert eine organisierte Zusammenstellung von "Glyphs", in denen die verschiedenen Glyph-Repräsentationen ein gemeinsames Aussehen oder Syling in dem Sinne teilen, dass, wenn eine Zeichenkette gerendert wird, das Ergebnis höchst leserlich ist, einen besonderen künstlerischen Stil hat und eine einheitliche Anordnung der Zeichen untereinander besteht.
Glyph
Ein Glyph repräsentiert eine gerenderte Einheit innerhalb eines Fonts. Oft gibt es eine eins-zu-eins Übereinstimmung zwischen den Zeichen, die gezeichnet werden sollen und den korrespondierenden Glyphs (z.B. wird das Zeichen "A" oft unter Verwendung eines einzigen Glyphs gerendert), aber andererseits werden oft viele Glyphs verwendet, um ein einzelnes Zeichen zu rendern (z.B. die Verwendung von Tonzeichen) oder ein einzelner Glyph kann verwendet werden, um mehrere Zeichen zu rendern (z.B. Ligatur). Typischerweise wird ein Glyph durch eine oder mehrere shapes definiert wie z.B. durch einen path. Eventuell kommen zusätzliche Informationen wie Render-Hinweise hinzu, die einer Anwendung helfen, lesbaren Text in kleinen Größen zu erzeugen.
Grafikelement
Einer der Elementtypen, welche das Zeichnen von Grafiken auf dem Ziel-Canvas auslösen können. Im Einzelnen: 'path', 'text', 'rect', 'circle', 'ellipse', 'line', 'polyline', 'polygon', 'image' und 'use'.
Grafikverweis-Element
Ein Grafikelement, das einen Verweis zu einem anderen Dokument oder Element als Quelle seines grafischen Inhalts nutzt. Im Einzelnen: 'use' und 'image'.
lokale URI-Verweise
Ein Uniform Resource Identifier [URI], der keinen <absoluteURI> oder <relativeURI> enthält und somit einen Verweis zu einem Element innerhalb des aktuellen Dokuments darstellt. Siehe Verweise und das Element 'defs'.
mask
Ein Containerelement, das grafische Elemente oder andere Containerelemente enthalten kann, die eine Zusammenstellung von Grafiken definieren. Diese Zusammenstellung kann als semi-transparente Maske für die Erstellung von Vordergrundobjekten im aktuellen Hintergrund verwendet werden. Siehe Masken.
nicht lokale URI-Verweise
Ein Uniform Resource Identifier [URI], der einen <absoluteURI> oder <relativeURI> enthält und so (normalerweise) einen Verweis zu einem anderen Dokument oder einem Element in einem anderen Dokument darstellt. Siehe Verweise und das Element 'defs'.
paint
Ein paint stellt eine Möglichkeit zur Verfügung, Farbwerte auf einen Canvas zu bringen. Ein paint kann sowohl aus Farbwerten als auch aus den zugehörigen Alpha-Werten bestehen, die Kontrolle über das Mischen der Farben mit existierenden Farbwerten auf dem Canvas haben. SVG unterstützt drei eingebaute Arten von paint: color, gradients und patterns.
Präsentationsattribut
Ein XML-Attribut zu einem SVG-Element, das einen Wert für eine gegebene Eigenschaft dieses Elements angibt. Siehe Styling.
Eigenschaft
Ein Parameter, der hilft anzugeben, wie ein Dokument gerendert werden soll. Eine komplette Liste der SVG-Eigenschaften kann im Eigenschaften Index gefunden werden. Eigenschaften werden Elementen entweder durch Präsentationsattribute in Elementen der SVG-Sprache zugewiesen oder durch die Verwendung einer Styling-Sprache wie CSS [CSS2]. Siehe Styling.
shape
Ein grafisches Element, das durch eine Kombination von geraden Linien und Kurven definiert ist. Im Einzelnen: 'path', 'rect', 'circle', 'ellipse', 'line', 'polyline', 'polygon'.
stroke
Die Operation eine Außenlinie eines shape oder die Außenlinie von Zeichen-Glyphen in einer Zeichenkette zu malen.
SVG-Canvas
Der canvas, auf den der SVG-Inhalt gerendert wird. Siehe die Diskussion um SVG-Canvas im Kapitel Koordinatensysteme, Transformationen und Einheiten.
SVG-Dokumentfragment
Der Unterbaum eines XML-Dokuments, der mit einem 'svg'-Element beginnt. Ein SVG-Dokumentfragment kann aus einem alleinstehenden SVG-Dokument oder einem Fragment eines XML-Elterndokuments bestehen, eingeschlossen durch ein 'svg'-Element. Wenn ein 'svg'-Element ein Nachfahre eines anderen 'svg'-Elements ist, gibt es zwei SVG-Dokumentfragmente, eines für jedes 'svg'-Element. (Ein SVG-Dokumentfragment ist in einem anderen SVG-Dokumentfragment enthalten.)
SVG-Viewport
Der Viewport innerhalb des SVG-Canvas, der den rechteckigen Bereich definiert, in dem der SVG-Inhalt gerendert wird. Siehe die Diskussion des SVG-Viewports im Kapitel Koordinatensysteme, Transformationen und Einheiten.
Textinhalt-Element
Eines der SVG-Elemente, die eine Zeichenkette definieren können, die auf dem Canvas gerendert werden soll. SVG´s Textinhalt-Elemente sind die Folgenden: 'text', 'tspan', 'tref', 'textPath' und 'altGlyph'.
Transformation
Eine Änderung der current transformation matrix (CTM) durch die Ergänzung einer Transformation in Form einfacher Transformationen (wie Größenveränderung, Rotation oder Translation) und/oder einer oder mehrerer Transformationsmatrizes. Siehe Koordinatensystem-Transformationen.
Transformationsmatrix
Transformations-Matrizes definieren das mathematische Übertragen von einem Koordinatensystem in ein anderes mit Hilfe einer 3x3 Matrix mit der Gleichung [x' y' 1] = [x y 1] * Matrix. Siehe aktuelle Transformationsmatrix (CTM) und Koordinatensystem-Transformationen.
URI-Verweis
Ein Uniform Resource Identifier [URI], der als Verweis zu einer Datei oder einem Element in einer Datei dient. Siehe Verweise und das Element 'defs'.
Benutzerschnittstelle
Die allgemeine Definition eines User Agents (Benutzerschnittstelle) ist eine Anwendung, die Web-Inhalte empfängt und rendert, eingeschlossen Text, Grafiken, Klänge, Videos, Bilder und andere Typen, die Inhalte vorsehen. Ein User Agent kann zusätzliche User Agents fordern, die einige Typen verarbeiten können. Zum Beispiel kann ein Browser ein separates Programm oder Plug-In verwenden, um Klänge oder Videos wiederzugeben. Benutzerschnittstellen sind grafische Desktopbrowser, Multimedia Player, Textbrowser, Sprachbrowser und unterstützende Technologien wie Bildschirmlesegeräte, Bildschirmvergrößerer, Sprachsynthesizer, Bildschirmtastaturen und Spracheingabesoftware.

Ein "User Agent" kann die Fähigkeit haben, SVG-Inhalt zu empfangen und zu rendern, muss es aber nicht; ein "SVG User Agent" hingegen empfängt und rendert SVG-Inhalt.
Benutzerkoordinatensystem
Im Allgemeinen definiert ein Koordinatensystem die Orte und Entfernungen auf dem aktuellen Canvas. Das aktuelle Benutzerkoordinatensystem ist das Koordinatensystem, das gerade aktiv ist und welches dazu verwendet wird, zu definieren, wie Koordinaten und Längen auf dem aktuellen Canvas lokalisiert und verarbeitet werden. Siehe initial user coordinate system und Koordinatensystem-Transformationen.
User Space
Ein Synonym für Benutzerkoordinatensystem.
Benutzereinheiten
Ein Koordinatenwert oder eine Länge, ausgedrückt in Benutzereinheiten (user units) repräsentiert eine Koordinatenwert oder eine Länge im aktuellen Benutzerkoordinatensystem. So repräsentieren 10 Benutzereinheiten eine Länge von 10 Einheiten im aktuellen Benutzerkoordinatensystem.
Viewport
Ein rechteckiger Bereich im aktuellen canvas, auf dem grafische Elemente gerendert werden müssen. Siehe die Diskussion um SVG-Viewport im Kapitel Koordinatensysteme, Transformationen und Einheiten.
Viewport-Koordinatensystem
Im Allgemeinen definiert ein Koordinatensystem die Orte und Entfernungen auf dem aktuellen Canvas. Das Viewport-Koordinatensystem ist das Koordinatensystem, das zu Beginn der Verarbeitung eines 'svg'-Elements aktiv ist, bevor das optionale Attribut viewBox verarbeitet wird. Wird ein SVG-Dokumentfragment in ein Elterndokument eingebettet, das CSS verwendet, um sein Layout zu bestimmen, wird das Viewport-Koordinatensystem die gleiche Ausrichtung und Länge haben wie in CSS, mit dem Ursprung an der oberen linken Ecke des Viewports. Siehe Der Anfangs-Viewport und Einführen eines neuen Viewports.
Viewport Space
Ein Synonym für Viewport-Koordinatensystem.
Viewport-Einheiten
Ein Koordinatenwert oder eine Länge, ausgedrückt in viewport units repräsentiert einen Koordinatenwert oder eine Länge im viewport coordinate system. So repräsentieren 10 Viewport-Einheiten eine Länge von 10 Einheiten im Viewport-Koordinatensystem.