19. Juli 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, Abschneiden 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 für SVG 1.0:
PUBLIC "-//W3C//DTD SVG 1.0//EN"
System Identifier für SVG 1.0:
http://www.w3.org/TR/2001/PR-SVG-20010719/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/PR-SVG-20010719/DTD/svg10.dtd">

1.4 Kompatibilität mit anderen Standards

SVG verträgt sich mit anderen W3C-Spezifikationen und aufkommenden 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 Authoren 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 des 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 Kindelemente haben kann. Im Einzelnen: 'svg', 'g', 'defs' 'symbol', 'clipPath', 'mask', 'pattern', 'marker', 'a' und 'switch'.
current innermost SVG document fragment
Der Unterbaum eines XML-Dokuments, der mit dem nächst höheren 'svg'-Element (Vorfahre) eines gegebenen SVG-Elements beginnt.
current SVG document fragment
Der Unterbaum eines XML-Dokuments, der mit dem am weitesten außen liegenden 'svg'-Element (Vorfahre) eines gegebenen SVG-Elements, mit der Anforderung, das alle Container-Elemente zwischen dem am weitesten außen liegenden 'svg' und dieses Element alle Elemente der SVG-Sprache sind.
current transformation matrix (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 Coordinate System". Siehe Koordinatensystem-Transformationen.
fill
Die Operation, das Innere einer Form oder das Innere eines Zeichens in einem Text auszumalen.
font
Ein Font repräsentiert eine organisierte Zusammenstellung von "Glyphs" in denen die verschiedenen Glyph-Repräsentation ein gemeinsames Aussehen oder Syling in dem Sinne teilen, dass, wenn eine Zeichenkette gerendert wird, das Ergebnis höchst leserlich ist, einen besonderen artistischen Stil hat und eine einheitliche Anordnung der Zeichen untereinander bereitstellt.
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.
graphics element
Einer der Elementtypen, welche die Zeichnung von Grafiken auf dem Ziel-Canvas auslösen können. Im Einzelnen: 'path', 'text', 'rect', 'circle', 'ellipse', 'line', 'polyline', 'polygon', 'image' und 'use'.
graphics referencing element
Ein Grafikelement, das einen Verweis zu einem anderen Dokument oder Element als Quelle seines grafischen Inhalts nutzt. Im Einzelnen: 'use' und 'image'.
local URI reference
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 enthalten, die als eine semi-transparente Maske für die Erstellung von Vordergrundobjekten im aktuellen Hintergrund verwendet werden können. Siehe Masken.
non-local URI reference
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.
presentation attribute
Ein XML-Attribut zu einem SVG-Element, das einen Wert für eine gegebene Eigenschaft dieses Elements angibt. Siehe Styling.
property
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 zu malen oder die Außenlinie von Zeichen-Glyphen in einer Zeichenkette.
SVG canvas
Der canvas, auf den der SVG-Inhalt gerendert wird. Siehe die Diskussion um SVG canvas im Kapitel Koordinatensysteme, Transformationen und Einheiten.
SVG document fragment
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.
text content element
Eines der SVG-Elemente, die eine Zeichenkette definieren können, die auf dem Canvas gerendert werden soll. SVG´s text content elements 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.
transformation matrix
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 current transformation matrix (CTM) und Koordinatensystem-Transformationen.
URI Reference
Ein Uniform Resource Identifier [URI], der als Verweis zu einer Datei oder einem Element in einer Datei dient. Siehe Verweise und das Element 'defs'.
user agent
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.
user coordinate system
Im Allgemeinen definiert ein Koordinatensystem die Orte und Entfernungen auf dem aktuellen canvas. Das aktuelle user coordinate system 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 user coordinate system.
user units
Ein Koordinatenwert oder eine Länge, ausgedrückt in Benutzereinheiten (user units) repräsentiert eine Koordinatenwert oder eine Länge im aktuellen user coordinate system. 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 coordinate system
Im Allgemeinen definiert ein Koordinatensystem die Orte und Entfernungen auf dem aktuellen canvas. Das viewport coordinate system 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 coordinate system die gleiche Ausrichtung und Länge haben wie in CSS, mit dem Ursprung an der oberen linken Ecke des viewports. Siehe The initial viewport und Establishing a new viewport.
viewport space
Ein Synonym für viewport coordinate system.
viewport units
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.