Modul 4: Sprachen im WWW Lernziele The problem with what you see is what you get is that what you see is all you ve got... Brian Kernighan, Guru aus Princeton [W1] Auszeichnungssprachen trennen Inhalt und Darstellung. Wir unterscheiden zwischen Metasprachen (SGML, XML) und abgeleiteten Instanzen (HTML, WML, XHTML,...). XML hat im Internet die größte Bedeutung. Zur dynamischen Seitengestaltung wird DHTML benutzt. Style Sheets (CSS, XSL) dienen zur Formatierung. CGI ist eine Programmierschnittstelle (häufig mit Perl benutzt). Im Web haben außerdem JavaScript, Java Server Pages, Servlets sowie VBScript, ASP, Active X und Flash hohe Bedeutung. Auszeichnungssprachen Scriptsprachen M4: Sprachen im WWW M5: Semantik im WWW M6: Sicherheit im Internet M1: Grundkonzepte des Internets Dynamische Programmiersprachen M2: Internet- Zugänge M3: Internetdienste 163
1 Auszeichnungssprachen 166 1.1 SGML 168 1.2 HTML 171 1.3 XML 175 1.3.1 XML-Dokumentstruktur 176 1.3.2 XML-Syntax 177 1.3.3 Dokumenttyp-Definition (DTD) 178 1.3.4 Wohlgeformtheit und Gültigkeit 178 1.3.5 Parser 179 1.3.6 Parsen von XML-Dokumenten 179 1.3.7 XML-Namensräume 180 1.3.8 XML-Schema 180 1.3.9 Verarbeitung von XML-Dokumenten 181 1.3.10 XML-Anfragesprachen 182 1.3.11 Darstellung von XML-Dokumenten 183 1.3.12 XML Web-Services 184 1.3.13 XML Data-Binding 185 1.3.14 Anwendungsbeispiele 186 1.3.15 Beurteilung von XML 187 1.4 XHTML 188 1.5 WML 189 2 Dynamische Programmiersprachen 191 2.1 DHTML 192 2.2 Style Sheets 193 2.2.1 CSS 193 2.2.2 XSL 194 2.3 CGI (Common Gateway Interface) 194 2.3.1 Perl 197 2.3.2 PHP 199 2.4 ASP 201 3 JavaScript 202 4 Java Server Pages und Servlets 205 4.1 JSP 205 4.2 Java-Servlets 206 4.3 JSP und Java Beans/EJBs 207 5 VBScript 208 6 ActiveX 209 7 Flash und Action Script 210 8 Modulkurzzusammenfassung 213 9 Modulanhang 214 9.1 Literatur 214 9.1.1 Bücher 214 9.1.2 Artikel 216 9.1.3 Books in English 216 9.1.4 Articles in English 217 9.2 Internet-Links 217 9.3 Prüfungsfragen 217 9.4 Übungen 218 9.5 Diskussionsfragen 219 9.6 Timeline: Sprachen 219 9.7 Glossar 221 9.8 Lösungen 224 164
Es existiert eine Fülle verschiedenster Programmiersprachen (siehe Band 2). Viele davon sind sehr universell und damit prinzipiell natürlich auch für Aufgabenstellungen im Internet und WWW geeignet. Einige Sprachen jedoch zeichnen sich ganz besonders aus, die speziellen Anforderungen zu erfüllen, um eine Kommunikation und Interaktion (Bild 4.1) in verteilten Systemen zu ermöglichen. Betrachten wir die typische Architektur von Webanwendungen (vgl. Client- Server-Architektur, Modul 1, Kapitel 2.2), dann wird rasch klar, welche Sprachen wo Bedeutung haben (Bild 4.2): Bild 4.1 Beispiel für eine typische Web-Anwendung Client HTML, XHTML, WML, JScript usw. Protokolle HTTP, HTTPS, WAP, usw. Server ASP, JSP, PHP CGI + Perl Bild 4.2 Sprachen auf der Client-Seite und Sprachen bzw. Interface- Schnittstellen (CGI) auf der Server-Seite verbunden über Protokolle 165
1 Auszeichnungssprachen Textdokumente bestehen hauptsächlich aus vier Komponenten: Bestandteile von Dokumenten Inhalt Darstellung Struktur Metadaten Konzepte der Informatik Zeichen Text Datenstruktur Datei Dokumentenmodellierung mit Auszeichnungssprachen Bild 4.3 Bestandteile von Dokumenten versus Konzepte der Informatik Inhalt enthält die Textdaten des Dokumentes. Struktur ist die Gliederung des Dokumentes in Kapitel und Abschnitte, aber auch z.b. Verweise auf Fußzeilen. Diese strukturellen Elemente werden als Textelemente bezeichnet. Darstellung ist die Präsentation bzw. Formatierung der Textdaten. Sie legt dessen visuelle Erscheinung für jedes Textelement fest (wie z.b. Schriftgröße und Schriftart). Metadaten (siehe Modul 5) schließlich sind Daten über die Textdaten (z.b. Stichwörter (Keywords), Information über die Zielgruppe usw.). Dokumente bestehen aus Inhalt, Struktur, Darstellung und Metadaten. Diesem Aufbau stehen die Informatik-Konzepte Zeichen, Text, Datenstruktur und Datei gegenüber (Bild 4.3). Seitenbeschreibungssprachen (z.b. Postscript) und Auszeichnungssprachen (z.b. HTML, XML) unterscheiden sich von Programmiersprachen vor allem dadurch, dass sie linear bearbeitet werden. Die Anweisungen werden eine nach der anderen ausgeführt. Ist die letzte Anweisung erledigt, dann ist der Bearbeitungsvorgang beendet. Das Dokument liegt in unveränderlicher Form vor. Auszeichnungen (Markups) sind Anweisungen ( Markierungen ) und werden eingeteilt in prozedurales Markup und deskriptives (visuelles) Markup. Bild 4.4 Prozedurales Markup wird auch als specific coding bezeichnet: Die Markups werden als Befehle verstanden, die direkten Einfluss auf die Darstellung haben Prozedurale Auszeichnungen (procedural markup bzw. specific coding (Bild 4.4)) fügen dem Text Informationen über die Formatierung des Dokumentes hinzu. Die Struktur wird dabei nicht explizit hervorgehoben, obwohl bei einigen prozeduralen Auszeichnungssprachen Informationen über die Struktur enthalten sind. Prozedurale Markups sind z.b. Steuercodes und Makros, die direkt in die Textdaten eingefügt werden und eine Formatierung des nachfolgenden Textes bewirken. Beispiele für Auszeichnungssprachen, die prozedurales Markup verwenden, sind PDF, RTF und LaTeX. Folgendes Beispiel zeigt die Auszeichnung einer Überschrift mit Hilfe von LaTeX: \section{dies ist eine Latex-Ueberschrift} Der section-befehl bewirkt, dass bei der Kompilierung des Textes ein Makro aufgerufen wird, das abhängig von der Dokumentklasse die Überschrift mit einer bestimmten Schriftgröße und Schriftart formatiert. Das endgültige Aussehen des Dokumentes wird dabei vollständig durch die im Text enthaltenen Makros bestimmt. 166
Deskriptive Auszeichnungen (descriptive markup bzw. generic coding (Bild 4.5)) fügen dem Text lediglich Informationen über die Struktur des Dokumentes hinzu, sagen jedoch nichts über die Formatierung aus. Beispiele sind SGML, XML, HTML (eingeschränkt). <h1> Überschrift 1 <\h1>. Diese Auszeichnung besagt nur, dass es sich bei dieser Textzeile um eine Überschrift 1 handelt, nicht jedoch, in welcher Schriftgröße und Schriftart sie dargestellt werden soll. Das wird in einem Browser mit einer speziellen Formatierung (browserspezifisch) interpretiert. Im WWW werden allgemein drei Ebenen von Markup-Sprachen unterschieden, die ein vollständiges Web-Dokument ausmachen: Inhalt (festgelegt durch z.b. OIL bzw. OWL; siehe Modul 5), Struktur (festgelegt durch z.b. XML) und Form (festgelegt durch z.b. HTML). Bild 4.5 Descriptives Markup wird auch als generic coding bezeichnet OIL = Ontology Interface Language Inhalt : Struktur : Form = 1 : n : m Die typografische Form (Layout) bzw. die Bildschirmdarstellung einzelner Elemente kann explizit angegeben werden, wird aber meistens doch separat festgelegt oder mit Cascading Style Sheets (CSS, siehe Kapitel 2.3) und wird durch einen Parser überpüft und umgesetzt. Parser (aus engl. to parse grammatisch zergliedern ) sind Programme, die Dokumente nach vorgegebenen Kriterien syntaktisch analysieren und in einzelne Bestandteile gliedern. Anschließend können dann Textteile durch Anweisungen, Code oder andere Elemente ersetzt werden (vgl. z.b. mit Sprachübersetzern). Beispiel für einen Parser, der W3C-Validator: http:// validator.w3.org In der Anfangszeit der elektronischen Datenverarbeitung (EDV) haben sich zahlreiche proprietäre Satz- und Seitenbeschreibungssprachen entwickelt. Diese wurden hauptsächlich von Setzereien zur Steuerung der Satzmaschinen benutzt. Erst 1986 wurde durch die ISO ein Standard normiert, der zur Strukturierung von großen Datenmengen geeignet ist und plattform- und anwendungsunabhängig benutzt werden kann: SGML. Die (heute) wichtigsten Auszeichnungssprachen sind: Standardized Generalized Markup Language (SGML) als Metasprache, Extensible Markup Language (XML) als Metasprache, Hypertext Markup Language (HTML) als Instanz (Anwendung), Wireless Markup Language (WML) als Instanz (Anwendung) und auch Synchronized Multimedia Integration Language (SMIL) als Instanz. Unterscheide: Metasprache und Instanz dieser Metasprache (Anwendung) 167