45
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 1 Internettechnologien 2. Protokolle und -Formate

Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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

Page 2: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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

Page 3: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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

Page 4: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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)

Page 5: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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)

Page 6: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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)

Page 7: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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)

Page 8: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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)

Page 9: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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)

Page 10: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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)

Page 11: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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)

Page 12: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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)

Page 13: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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)

Page 14: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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)

Page 15: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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

Page 16: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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

Page 17: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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

Page 18: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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

Page 19: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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>

Page 20: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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>

Page 21: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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

Page 22: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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

Page 23: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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

Page 24: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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

Page 25: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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.

Page 26: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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

Page 27: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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.

Page 28: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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{ ….

Page 29: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

Genereller Ansatz:

Peter Sobe 29Internettechnologien

XML-Sprachen (1)

SMGL

XML MathML

XHTML SVG

X3D

spezielle DTD

spezielles XML-Schema spezielles XML-Schemaspezielle DTD

Page 30: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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

Page 31: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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)

Page 32: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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)

Page 33: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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

Page 34: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

Peter Sobe 34Internettechnologien

XML-Sprachen (7)

Transformation zwischen verschiedenen XML-Sprachen, zum Beispiel Dynamische Erzeugung von Webseiten

Erzeugung von Grafiken (SVG)

Page 35: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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

Page 36: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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

Page 37: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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

Page 38: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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)

Page 39: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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

Page 40: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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)

Page 41: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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)

Page 42: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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)

Page 43: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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)

Page 44: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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)

Page 45: Peter Sobe Internettechnologien 1 - HTW Dresdensobe/Internet_2017/Vo/2... · 2017. 4. 5. · Peter Sobe Internettechnologien 2 HTTP (1) IP TCP HTTP Erzeugt Verbindung zwischen Client

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>