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:
- SVG ist eine XML-Anwendung und ist kompatibel mit der "Extensible
Markup Language (XML) 1.0" Recommendation [XML10]
- SVG ist kompatibel zu der Recommendation "Namespaces in XML"
[XML-NS]
- SVG verwendet die "XML Linking Language (XLink)"
[XLINK] für
URI-Verweise und erfordert die Unterstützung der Base URI
Spezifikationen, die in "XML Base" definiert sind
[XML-BASE].
- Die Syntax, mit der SVG auf Element-IDs verweist, ist eine
kompatible Untermenge der ID-Verweissyntax der "XML Pointer Language
(XPointer)" [XPTR].
- SVG-Inhalt kann sowohl mit Hilfe von CSS (siehe "Cascading
Style Sheets (CSS) Level 2"
[CSS2])
als auch mit Hilfe von XSL (siehe "XSL Transformations (XSLT)
Version 1.0" [XSLT]) gestaltet
werden.
(Siehe Gestaltung mit CSS und
Gestaltung mit XSL)
- SVG unterstützt relevante Eigenschaften und Verfahren, die
CSS und XSL gemein sind, sowie ausgewählte Semantik und
Eigenschaften von CSS (siehe
SVG's Style-Eigenschaften und
SVG verwendet Cascading Style Sheets).
- Externe Style Sheets werden nach dem in "Associating Style Sheets
with XML documents Version 1.0"
[XML-SS]
beschriebenen Verfahren referenziert.
- SVG schließt ein komplettes Document Object Model (DOM) ein
und ist konform zu der Recommendation "Document Object Model (DOM)
Level 1" [DOM1].
Das SVG DOM ist im
hohen Maße kompatibel zum HTML DOM, das in der Spezifikation
DOM Level 1 definiert ist. Zusätzlich unterstützt und
enthält das SVG DOM viele der Eigenschaften, die in "Document Object
Model level 2" [DOM2]
beschrieben sind, einschließlich dem CSS Object Model und Event
Handling.
- SVG bezieht einige Eigenschaften und Ziele der "Synchronized
Multimedia Integration Language (SMIL) 1.0 Specification"
[SMIL1] mit ein,
eingeschlossen das Element 'switch'
und das Attribut
systemLanguage.
- SVG´s Animationseigenschaften (siehe
Animation) wurden in Zusammenarbeit mit der
W3C Synchronized Multimedia (SYMM) Working Group entwickelt, den
Entwicklern der Spezifikation "Synchronized Multimedia Integration
Language (SMIL) 1.0"
[SMIL1].
SVG´s Animationseigenschaften unterstützen und erweitern die
normalen XML-Animationseigenschaften, die in der Spezifikation
"SMIL Animation"
[SMILANIM]
beschrieben sind.
- SVG wurde so entworfen, dass zukünftigen Versionen von SMIL
erlaubt wird, animierten oder statischen SVG-Inhalt als Medienkomponenten
zu verwenden.
- SVG versucht eine maximale Kompatibilität sowohl zu HTML 4
[HTML4] als auch zu
XHTML(tm) 1.0 [XHTML]
zu erreichen.
Viele SVG-Eigenschaften sind nach dem Vorbild von HTML geschaffen worden,
eingeschlossen die Verwendung von CSS
[CSS2],
der Umgang mit Event Handling und seinem Document Object
Model [DOM2].
- SVG ist kompatibel zu der Arbeit des W3C in Bezug auf die
Internationalisierung. Die Verweise enthalten (W3C und weitere):
[UNICODE]
und [CHARMOD].
Siehe auch: Unterstützung der
Internationalisierung.
- SVG ist kompatibel zur Arbeit des W3C in Bezug auf die
Zugänglichkeitsrichtlinien für Webinhalte
[WAI].
Siehe auch: Unterstützung der
Zugänglichkeit.
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.