Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Inhalt: HTTP, allgemeiner syntaktischer Aufbau Methoden des HTTP-Protokolls Aufbau von Web-Applikationen unter Nutzung von HTTP,
HTML, DOM XML, XML-DTD und XML-Schema Darstellung von XML-Dokumenten mittels CSS Beispiele für XML-basierte Sprachen
Peter Sobe 1Internettechnologien
2. Protokolle und -Formate
HTTP: Hypertext Transport ProtocolRoy Fielding, Tim Berners-Lee ab 1989Protokoll zum Transport von Web-Inhalten, insbes. HTML-Seiten
Der syntaktische Aufbau der HTTP-Nachrichten wird hier durch die Erweiterte Backus-Naur-Form beschrieben. Diese Form beschreibt den Aufbau von Nachrichten durch Sequenz, Alternativen, optionalen Elementen, sich wiederholenden Elementen und entsprechende Schachtelungen. Elemente, die nicht weiter aufgelöst werden, sind s.g. Terminalsymbole, die durch Großschreibung oder Angabe in Anführungszeichen gekennzeichnet werden.Peter Sobe 2Internettechnologien
HTTP (1)
IP
TCP
HTTP
Erzeugt Verbindung zwischen Client und Server
Bestimmt, was angefragt wird und welche Daten zurückgesendet werden
Ermöglicht Adressierung, Paket-Transfer
Sequenz: Hintereinanderschreiben der Elementee3 ꞊ e1 e2Alternative: Hintereinander mit Trennstriche3 ꞊ e1 | e2Optionales Element in Sequenz: mit “[“ “]“ eingefasste3 ꞊ [ e1 ] e2Wiederholung, ein- oder mehrfach: “+“ Zeichene4 ꞊ ( e1 e2)+ e3Optionale Wiederholung, kein-, ein- oder mehrfach: “*“ Zeichene4 ꞊ ( e1 e2)* e3Gruppierung: runde KlammernBeispiel… e5 ꞊ (( e1 | e2) (e3 | e4))+Terminalsymbole: Hochkommaschreibweise, oder Großbuchstaben Beispiele (ohne tieferen Sinn)…e1 ꞊ “0“ |“1“ | “2“ e2 ꞊ ZEILENUMBRUCH e3 ꞊ LEERZEICHEN
Peter Sobe 3Internettechnologien
Einschub: Erweiterte Backus Naur Form
Eine HTTP- Nachricht ist immer wie folgt aufgebaut:
generic-message ꞊ start-line(message-header CRLF)*CRLF
[ message-body ]
start-line ꞊ Request-Line | Status-Line
Die Nachricht beginnt immer mit einer Startzeile. Schickt der Nutzer eine Anforderung (Request), ist es eine Request-Zeile. Antwortet der Server (Response), dann ist es eine Status-Zeile. Danach werden mehrere so genannte Nachrichten-Header übertragen. Der Stern bedeutet optionale Wiederholung und schließt auch die Möglichkeit ein, dass keine Nachrichten-Header vorhanden sind. Das Terminalsymbol CLRF ist der Zeilenumbruch (Carriage Return Line Feed)
Peter Sobe 4Internettechnologien
HTTP (2)
Die Folge der Header muss durch ein CRLF-Zeichen abgeschlossen sein. Dann folgt unbedingt eine Leerzeile, repräsentiert durch ein einzelnstehendes CRLF. Danach kann optional ein Nachrichten-Körper (body) folgen.
Aufbau einer Anforderung (Request)Diese beginnt mit der Anforderungszeile. Danach können im Header-Teil allgemeine Header, Anforderungs-Header oder Entity-Header vorhanden sein.
Request ꞊ Request-Line ( ( general-header | request-header | entity-header )CRLF )*
CRLF[ message-body ]
Peter Sobe 5Internettechnologien
HTTP (3)
Die Anforderungszeile (Request-Line) besteht aus drei Teilen, die durch Leerzeichen (SP) getrennt sind. Der erste Teil ist die Methode (z.B. GET), der zweite Teil die Anforderungs-URI (z.B. /beispiel.html, und der dritte Teil die HTTP-Version.
Request-Line ꞊ Method SP Request-URI SP HTTP-Version CRLF
Method ꞊ "OPTIONS" | "GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "TRACE" | "CONNECT"
Request-URI ꞊ "*" | absoluteURI | abs_path | authority
HTTP-Version ꞊ "HTTP/1.0" | "HTTP/1.1"
Beispiele: GET /beispiel.html HTTP/1.0OPTIONS * HTTP/1.0
Peter Sobe 6Internettechnologien
HTTP (4)
Beispiele: GET /beispiel.html HTTP/1.0OPTIONS * HTTP/1.0
Der Stern "*" als Request-URI heißt, dass sich die Anforderung nicht auf eine bestimmte Ressource bezieht. Mit OPTIONS werden vom Server die unterstützten Methoden erfragt, ohne sich auf ein gespeichertes Dokument zu beziehen. Die GET-Methode dagegen fordert ein Dokument an, zum Beispiel beispiel.html. Das /-Zeichen bezeichnet das Wurzelverzeichnis des Webservers. Die Angabe der Methode muss in Großbuchstaben erfolgen. Es können noch verschiedene Header folgen. Möglicherweise werden noch Daten in einem Body-Teil übertragen.
Peter Sobe 7Internettechnologien
HTTP (5)
Aufbau einer Antwort (Response)Der Aufbau ist analog zur Anforderung. Nur ist die erste Zeile jetzt eine Status-Zeile und im Header-Teil stehen statt den Anforderungs-Headern die Antwort-Header.Response ꞊ Status-Line
( ( general-header | response-header | entity-header ) CRLF )*
CRLF[ message-body ]
Die Status-Zeile (Status -Line) besteht aus drei Teilen, die durch Leerzeichen (SP) getrennt sind. Der erste Teil ist die unterstützte http-Version, der zweite Teil enthält den Status-Code (z.B. 200), und der dritte Teil die Texterklärung zum Code (z.B. OK).
Status-Line ꞊ HTTP-Version SP Status-Code SP Reason-Phrase CRLF
Peter Sobe 8Internettechnologien
HTTP (6)
Das WWW-Konsortium hat im HTTP-Standard festgelegt, dass die drei Methoden OPTIONS, GET und HEAD auf jeden Fall durch einen Webserver zu unterstützen sind, aber auch künftige Erweiterungen der Methoden möglich sind.
Typischerweise ist die Methode POST zur Übertragung von Eingabedaten (zum Beispiel aus HTML-Formularen) auf Webseiten zugelassen.
Es sind auch einige Methoden, wie SEARCH, LOCK usw. vorhanden, die nicht im Standard aufgeführt sind.
Im Standard enthalten, aber oft nicht implementiert oder abgeschaltet: PUT und DELETE
Peter Sobe 9Internettechnologien
HTTP (7)
GET- MethodeDie GET-Methode ist die am häufigsten eingesetzte Methode bei einer Client-Anforderung. Damit wird ein Dokument beim Webserver zum Herunterladen angefordert. Der Name des Dokumentes und eventuell sein Pfad müssen in der Request-URI angegeben sein. Beispiel: GET /beispiel.html HTTP/1.0
Das /-Zeichen steht für die Wurzel des Publikationsverzeichnisses des Webservers. Im Wurzelverzeichnis wird die Datei beispiel.html angefordert.
Peter Sobe 10Internettechnologien
HTTP (8)
GET- Methode, Antwort:
Nach der Leerzeile ist der Inhalt des Body zu sehen, d.h. der Inhalt des angeforderten Dokumentesin HTML.
Allgemeiner Header: Date
Response-Header: Server, Accept-Ranges und ETag. Entity-Header: Content-Type, Content-Length und Last-Modified. Sie beziehen sich auf das gesendete Dokument. ETag enthält einen serverseitig eindeutigen Identifizierer für das Dokument.
Peter Sobe 11Internettechnologien
HTTP (9)
HEAD- MethodeDie HEAD-Methode arbeitet fast identisch zur GET-Methode, nur dass das angeforderte Dokument vom Server nicht gesendet wird. Die Header werden wie bei GET in der Antwort gesetzt und erlauben damit eine Identifikation des Dokumentes.Beispiel:HEAD /xml1.xml HTTP/1.0.
Ergebnis siehe Bild.
Im Content-Type-Header ist text/xml angegeben. Peter Sobe 12Internettechnologien
HTTP (10)
OPTIONS- und TRACE-MethodenDie OPTIONS-Methode dient zur Anzeige der durch den Webserver unterstützten Methoden. Beispiel: OPTIONS * HTTP/1.0.
Die TRACE-Methode dient nur zur Feststellung, ob der Webserver arbeitet und ansprechbar ist. Seine Antwort ist das Zurücksenden der Anforderung im Body. Es werden einige wichtige Header gesetzt. Das Bild unten zeigt die Server-Antwort auf die Anforderung
Beispiel:TRACE / HTTP/1.0.
Peter Sobe 13Internettechnologien
HTTP (11)
POST-, PUT- und DELETE-MethodenPOST-Methode - Übertragung von Datenpaketen vom Client zum Server. Hauptsächlich wird sie eingesetzt, wenn ein angefordertes HTML-Dokument Formularelemente für Nutzereingaben enthält. Die eingegebenen Daten werden dann an ein serverseitig vorhandenes Programm (Script) zur Weiterverarbeitung gesendet (serverseitiges Scripting).PUT-Methode - Übertragung von kompletten Dokumenten vom Client zum Server. Diese werden unter dem angegebenen Namen durch den Webserver im angegebenen Verzeichnis abgelegt. Es muss ein authentifizierter Zugriff erfolgen und Kennwort und Passwort mit übermittelt werden. Die hochzuladende Datei muss im Body angeben werden. DELETE-Methode löscht die angegebene Datei aus dem Verzeichnis; authentifizierter Zugriff wird vorausgesetzt.
Peter Sobe 14Internettechnologien
HTTP (12)
HTTP überträgt auch XML!Durch die XML-Unterstützung der Browser wird die XML-Datei so dargestellt, dass die Elementhierarchie des Dokumentes sichtbar wird(siehe Bild rechts).
Beeinflussung der Darstellung: Das XML-Dokument kann über
CSS (Cascading Style Sheets) bereits Formatierungshinweise zur Darstellung im Browser enthalten.
Ist in die XML-Datei eine XSL-Datei eingebunden, wird diese auch ausgeführt, sodass man das transformierte Dokument sieht.
Peter Sobe 15Internettechnologien
HTTP und Darstellung von XML-Dokumenten
Peter Sobe 16Internettechnologien
Web-Anwendungen unter Nutzung von HTTP
Web-Browser
Web-Server
HTTP, HTML-Dokumente
Javascript
CGI
XML
ExterneSkripte und Daten PHP
Ajax-Engine
Kodierungssprache für Webseiten, aus SGML entworfen. HTML-Dokument wird im Message-Body durch HTTP
übertragen
Beispiel:<HTML><HEAD><TITLE>DOM</TITLE></HEAD><BODY BGCOLOR="yellow"><H2>Demonstration DOM</H2><P><IMG SRC="Comp2.gif" /> Bild 4.1</P><P><I>Ende</I></P>
</BODY></HTML>
Peter Sobe 17Internettechnologien
HTML
Elemente: <TITLE>DOM</TITLE>
Attribute: <IMG SRC="Comp2.gif" />
Kombination Element mit Attributen:<BODY BGCOLOR="yellow"> … </BODY>
Die Elemente werden durch Tags eingefasst. und werden hierarchisch ineinander gesetzt
Darstellung als Baum mit Elementen auf gleicher Ebene und unter/übergeordneten Elementen möglich.→ DOM: Document Object Model eines HTML-Dokuments
Peter Sobe 18Internettechnologien
HTML
Element-Beziehungen im letzten Beispiel:
Peter Sobe 19Internettechnologien
DOM (1)
HTML
HEAD BODY
TITLE
DOM
H2 P P
DemonstrationDOM
IMGBild 4.1
BGCOLOR
SRC
Comp2.gif
I
Ende
Elementknoten (Tag)
Attributknoten
Elementwert (Text-Knoten)
Attributwert
<HTML><HEAD><TITLE>DOM</TITLE></HEAD>
<BODY BGCOLOR="yellow"><H2>Demonstration DOM</H2><P><IMG SRC="Comp2.gif" /> Bild 4.1
</P><P><I>Ende</I></P>
</BODY></HTML>
DOM dient z.B. in JavaScript zum Zugriff auf Elemente der dargestellten Webseite.
Beispiel aus jspage.html (siehe Material zum ersten Praktikum):
Im Skript: Im HTML-Dokument:
Peter Sobe 20Internettechnologien
DOM (2)
<script type="text/javascript"><!—function primzahl() {var zahl =
document.Formular.Eingabe.value;…
--></script>…
<body> …<form name="Formular" action=""> <input type="text„
name="Eingabe"="3"> …</form> </body>
21
XML (Extensible Markup Language) Meta-Sprache, um Auszeichnungssprachen für Dokumente zu erzeugen
• Textuell lesbares Speicherformat • Tags, um Bedeutung von Daten zu kennzeichnen, z.B.<Datum>19.12.1979</Datum> , Schachtelung der Tag-Strukturen
• XML ist maschinenlesbar und transformierbar• Ideen von XML bereits alt, jedoch jetzt erst mit Tool-Unterstützung(XML-Editoren, XML-Transformatoren)
XML-konforme Untermengen:• (X)HTML: Nachbau von HTML durch XML• Grafikformat SVG (Scalable Vector Graphics)
und weitere
XML (1)
InternettechnologienPeter Sobe
22
Beispiel “Vorlesung“:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE Vorlesung SYSTEM "C:\usr\Vorlesung.dtd"><Vorlesung>
<Titel lang="de">Internettechnologien</Titel><Titel lang="en">Internet Technology</Titel><Termin Semester-Id="SS14">
<Ort>S527</Ort><Wochentag>Montag</Wochentag><Uhrzeit>11:10</Uhrzeit>
</Termin></Vorlesung>
Ein XML-Dokument ist wohlgeformt, wenn es der grundlegenden Syntax mit öffnendem und schließendem Tag, Attributen in doppelten Ausführungszeichen und einer hierarchischen Ordnung entspricht.
XML (2)
InternettechnologienPeter Sobe
23
Die formale Struktur der Dokumente wird durch die DTD (Document Type Definition) bestimmt. XML Dokumente sind gültig (engl. valide), wenn sie dieser Struktur genügen. Gültigkeit setzt Wohlgeformtheit voraus.
DTD – Document Type Definition, Angabe im Prolog des XML-Dokuments (Verweis auf DTD-Datei oder URL)
<?xml version="1.0" encoding="UTF-8"?><!ELEMENT Vorlesung (Titel+,Termin)><!ELEMENT Titel (#PCDATA)><!ELEMENT Termin (Ort,Wochentag,Uhrzeit)><!ELEMENT Ort (#PCDATA)><!ELEMENT Wochentag (#PCDATA)><!ELEMENT Uhrzeit (#PCDATA)>
<!ATTLIST Titel lang ID #REQUIRED
><!ATTLIST Termin
Semester-Id ID #REQUIRED>
Vorlesung
Titel Titel... Termin
Ort Wochen-tag
Uhrzeit
XML (3)
InternettechnologienPeter Sobe
24
Andere Variante zur Beschreibung der Struktur eines XML-Dokuments: XML-Schema als Ersatz für DTD
Beispiel:
<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" ... ><xs:element name="vorlesung" type="VorlesungType"><xs:annotation>
<xs:documentation>Top Level Element</xs:documentation></xs:annotation></xs:element><xs:complexType name="VorlesungType">
<xs:sequence ><xs:element name="Titel" type="TitelTyp" minOccurs="1"
maxOccurs="unbounded"/><xs:element name="Termin" type="TerminTyp"/></xs:sequence>
</xs:complexType>
Beispiel Fortsetzung:
<xs:complexType name="TitelTyp"><xs:sequence ><xs:element name="Titel" type="xs:string"/></xs:sequence><xs:attribute name="lang" type="xs:string"/>
</xs:complexType><xs:complexType name="TerminTyp">
<xs:sequence ><xs:element name="Ort" type="xs:string"/><xs:element name="Wochentag" type="xs:string"/><xs:element name="Uhrzeit" type="xs:string"/></xs:sequence><xs:attribute name="Semester-Id" type="xs:string"/>
</xs:complexType></xs:schema>
XML (4)
Mehr zu XML-Schema folgt später auf Folie 34.
InternettechnologienPeter Sobe
Ein XML-Dokument:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE musiksammlung SYSTEM "musiksammlung.dtd"><musiksammlung eigentuemer="Max Meier"><album><interpret>Kraftwerk</interpret><albumtitel>Electric Cafe</albumtitel><songs> <song>Boing Boom Tschak</song><song>Techno Pop</song> <song>Musique Non-Stop</song>
<song>Der Telefon-Anruf</song> <song>Sex Objekt</song><song>Electric Cafe</song> </songs>
</album><album><saenger>Helge Schneider</saenger><albumtitel>Guten Tach</albumtitel><songs >
<song>Ansage </song><song>Ladiladiho</song> <song>Der viereckige Hai</song>
</songs></album>
</musiksammlung>
Peter Sobe25Internettechnologien
XML-Beispiel “Musiksammlung“
Das Dokument zeigt deutlich den hierarchischen Aufbau ausgehend vom Wurzel-Element MUSIKSAMMLUNG und den vorhandenen Subelementen.
DTD (Document Type Desciption) für das Beispiel „Musiksammlung“:
<?xml version="1.0" encoding="UTF-8"?><!ELEMENT musiksammlung (album)*><!ATTLIST musiksammlung
eigentuemer CDATA #REQUIRED><!ELEMENT album ((interpret|saenger|saengerin|band), albumtitel, songs) ><!ELEMENT songs (song)* ><!ELEMENT interpret (#PCDATA) ><!ELEMENT saenger (#PCDATA) ><!ELEMENT saengerin (#PCDATA) ><!ELEMENT band (#PCDATA) ><!ELEMENT albumtitel (#PCDATA) ><!ELEMENT song (#PCDATA) >
Peter Sobe 26Internettechnologien
XML-Beispiel “Musiksammlung“ : DTD
für das Beispiel „Musiksammlung“:
Peter Sobe 27Internettechnologien
XML Daten – Formatierte Anzeige im Browser (1)
Browser zeigen typischerweise die Struktur des XML-Dokuments durch Einrückungen an!
Eine grafisch formatierte Darstellung ist durch CSS Formatierung möglich.
für das Beispiel „Musiksammlung“ mit CSS-Formatierung:
Peter Sobe 28Internettechnologien
XML Daten – Formatierte Anzeige im Browser (2)
Inhalt von ‘musiksammlung.css‘musiksammlung{position:absolute;top:10px;left:10px;font-family:Tahoma,Arial,Helvetica,sans-serif;font-size:14px;background-color:#FFECFF;padding:0px;}
album{position:relative;top:10px;left:20px;font-family:Tahoma,Arial,Helvetica,sans-serif;font-size:14px;background-color:#FFECEF;padding:15px;
}albumtitel{ ….
Genereller Ansatz:
Peter Sobe 29Internettechnologien
XML-Sprachen (1)
SMGL
XML MathML
XHTML SVG
X3D
spezielle DTD
spezielles XML-Schema spezielles XML-Schemaspezielle DTD
Dokumente müssen XML-konform sein (Wohlgeformtheit), und zusätzlich die Einschränkungen und Regeln des speziellen Dokumentformats einhalten (Gültigkeit)
Peter Sobe 30Internettechnologien
XML-Sprachen (2)
XMLSpeziellesDokumentformat,z.B. WetterMLals DTD oder Schema
Spezielles Dokument
wohlgeformt
gültig
Durch die ständige Weiterentwicklung der XML-Technologien sind bereits für viele verschiedene Anwendungsgebiete neue wichtige XML-Sprachen definiert worden. Voice Extensible Markup Language (VoiceXML):
Auszeichnungssprache für akustische Ausgabeplattformen.
Mathematical Markup Language (MathML): Darstellung mathematischer Ausdrücke, Strukturierung des Dokumentes
Die Synchronized Multimedia Integration Language (SMIL) Vokabular für Multimediapräsentationen im WWW.
Scalable Vector Graphics (SVG): Vokabular für die Präsentation von zweidimensionalen Vektorgraphiken, in die auch Rastergraphiken eingebunden werden können.Peter Sobe 31Internettechnologien
XML-Sprachen (4)
Fortsetzung:
XML-Schema (XS): anstelle einer DTD wird eine XML-basierte Beschreibung der Dokumentstruktur einer XML-Syntax beschrieben (siehe Beispiel zu Musiksammlung)
Geography Markup Language (GML): zum Austausch raumbezogener Objekte im Bereich der Geodaten
WSDL, SOAP: XML-basierte Beschreibungen und Schnittstellen; werden für Webservices benutzt
Peter Sobe 32Internettechnologien
XML-Sprachen (5)
33
XSLT ist eine Sprache, mit der beschrieben wird, wie ein XML-Dokument in ein anderes XML-Dokument umgewandelt werden soll.
XML-Quelldatei und ein XSLT-Stylesheet (Regeln für dieTransformation)
Das Programm, das die XSLT-Steueranweisungen verstehtwird XSLT-Prozessor genannt
XML-Sprachen (6)
Internettechnologien
XML-Datei
XSLT-Style-sheet
XML-Datei
XSLT-Prozessor
Peter Sobe 34Internettechnologien
XML-Sprachen (7)
Transformation zwischen verschiedenen XML-Sprachen, zum Beispiel Dynamische Erzeugung von Webseiten
Erzeugung von Grafiken (SVG)
Ein XML-Schema kann anstelle einer DTD benutzt werden und ist selbst ein XML-Dokument.
Beispiel zur Musiksammlung:<?xml version="1.0" encoding="utf-8"?><xs:schema … xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="musiksammlung"><xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded"><xs:element ref="album" />
</xs:sequence><xs:attribute name="eigentuemer" type="xs:string" use="required" />
</xs:complexType></xs:element>
Dieser Teil beschreibt, dass eine Musiksammlung aus mehreren Alben (0 bis unbegrenzt) besteht.
Peter Sobe 35Internettechnologien
XML-Schema (1)
musiksammlungalbum
Beispiel zur Musiksammlung (Fortsetzung):<xs:element name="album">
<xs:complexType><xs:sequence>
<xs:choice><xs:element ref="interpret" /> <xs:element ref="saenger" /><xs:element ref="saengerin" /> <xs:element ref="band" />
</xs:choice><xs:element ref="albumtitel" /><xs:element ref="songs" />
</xs:sequence></xs:complexType>
</xs:element>…
Peter Sobe 36Internettechnologien
XML-Schema (2)
album
interpret
saenger
band
albumtitel songs
saengerin
Beispiel zur Musiksammlung (Fortsetzung):<xs:element name="songs">
<xs:complexType><xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="song" /></xs:sequence>
</xs:complexType></xs:element><xs:element name="interpret" type="xs:string" /><xs:element name="saenger" type="xs:string" /><xs:element name="saengerin" type="xs:string" /><xs:element name="band" type="xs:string" /><xs:element name="albumtitel" type="xs:string" /><xs:element name="song" type="xs:string" />
</xs:schema>
Peter Sobe 37Internettechnologien
XML-Schema (3)
songs
song
SVG (Scalable Vector Graphics) ist ein offener Grafikstandard, der es erlaubt, zweidimensionale Grafikobjekte mit Hilfe von XML zu notieren (W3C 2003a)
SVG ist XML-basiert und unterstützt Vektordaten und zusätzlich die Einbettung von Rasterbildern, Audio- und Videodaten.
Eigenschaften: Auszeichnung für zweidimensionale Geometrieobjekte (Elemente
mit geometriespezifischen Attributen) Operationen wie Transformationen, Gruppierung,
Clipping und Filterung Formatierung der Elemente über CSS (Cascading Style Sheets) Ereignisbehandlung über Skripte mit Zugriff auf DOM.
Peter Sobe 38Internettechnologien
SVG (1)
39
Weitere Eigenschaften:
SVG-Grafiken sind im Browser skalierbar, ohne Qualitätsverlust (vgl. Bitmap-Grafiken)
Interaktionen über Attribute, z.B. Einblendzeiten von Grafikobjekten
Attribute können mit JavaScript gesetzt werden.Beispiel: Attribut visible=“true“ oder “false“ zeitgesteuert setzen
SVG kann in XHTML eingebettet werden. Über DOM kann dann z.B. ein JavaScript über das Document die Elemente der SVG Grafik adressieren. Damit können SVG-Grafiken durch clientseitiges Scripting dynamisch verändert werden
(… das wird in der Übung gemacht!)
SVG (2)
InternettechnologienPeter Sobe
Eine SVG-Grafik ist ein XML-Dokument, dessen Syntax gemäß eines XML-Schemas www.w3.org/2000/svgaufgebaut ist.
Struktur:<svg xmlns="http://www.w3.org/2000/svg" width="444" height="666"><title>Ein Bild</title><desc>Hier eine Beschreibung zum Bild</desc><!-- hier folgen die Grafikelemente --></svg>
Ein SVG-Bild kann als externe Referenz in eine Webseite aufgenommen werden, oder auch in die Webseite eingebettet werden.
Peter Sobe 40Internettechnologien
SVG (3)
Elemente beschreiben grafische Primitive, wie z.B.
Linie: <line x1="90" y1="150" x2="310" y2="150" style="stroke:black; stroke-width:2px;" />
Kreis:<circle cx="50" cy="50" r="15" fill="yellow" stroke="black" />
Ellipse: <ellipse cx="200" cy="50" rx="20" ry="40" style="fill:green;" />
Rechteck: <rect x="0" y="0" width="100" height="100" style="fill:blue;" />
Text: <text x="100" y="50">Guten Morgen</text>
Für die Attribute sind verschiedene Maßeinheiten möglich: px – Pixel (default), cm – Zentimeter, mm – Millimeter, …
Peter Sobe 41Internettechnologien
SVG (4)
Elemente (Fortsetzung):
Polyline und Polygon:<polyline fill="lightgray" stroke="red" stroke-width=„2px"points=" 176 10, 26 160, 326 160, 176 10" />
<polygon fill="darkblue" points="176 10, 26 160, 326 160" />…beide Elemente beschreiben ein Dreieck
Verschachtelung:<svg …><rect x="0" y="0" width="200" height="200" style="fill:red;" /><svg x=„20" y=„20" width="160" height="160">
<rect x="0" y="0" width="100" height="100" style="fill:blue;" /></svg>
</svg>Peter Sobe 42Internettechnologien
SVG (5)
Ein Beispiel mit Verschachtelung:<svg xmlns="http://www.w3.org/2000/svg" width="400" height="400"><title>Beispielbild</title><desc>Ein einfaches SVG Bild</desc><rect x="50" y="50" width="300" height="300" style="fill:red;" />
<svg x="50" y="50" width="300" height="300"><circle cx="150" cy="150" r="100"
style="fill:blue;" /></svg>
</svg>
Peter Sobe 43Internettechnologien
SVG (6)
SVG wird durch eine Reihe Vektorzeichenprogramme unterstützt, d.h. zum Erstellen von Grafiken ist primär keine Kenntnis des XML-Formats nötig.
SVG-XML-Struktur dann wichtig
wenn grafische Inhalte automatisiert erzeugt werden sollen, z.B. bei der Programmierung einer SVG-Ausgabe
Wenn auf SVG-Inhalte durch Skripte zugegriffen werden soll Bei der Transformation von anderen XML-Daten in SVG, z.B.
Anzeige von Geodaten
Peter Sobe 44Internettechnologien
SVG (7)
Durch MathML wird das äußere Erscheinungsbild mathematischer Ausdrücke kodiert (presentation).Zusätzlich kann die Bedeutung eines Ausdrucks kodiert werden (content).
Beispiel: (x+2)3
Peter Sobe 45Internettechnologien
MathML
Presentation markup:<math><msup>
<mrow><mo>(</mo><mrow>
<mi>x</mi> <mo>+</mo><mn>2</mn></mrow>
<mo>)</mo></mrow><mn>3</mn>
</msup></math>
Content markup:<math><apply><power/><apply><plus/><ci>x</ci><cn>2</cn>
</apply><cn>3</cn></apply>
</math>