Programmieren I. Formale Sprachen. www.kit.edu. Institut für Angewandte Informatik



Ähnliche Dokumente
Formale Sprachen Grundlagen und Anwendungen. Dr. Wolfgang Süß

Programmieren I. Formale Sprachen. Institut für Angewandte Informatik

Formale Sprachen und Grammatiken

Programmiersprachen und Übersetzer

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Theorie der Informatik

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

Grundbegriffe der Informatik

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Multimedia Technologie II

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln

... MathML XHTML RDF

Grundbegriffe der Informatik

Grundbegriffe der Informatik

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Theoretische Informatik I

7. Formale Sprachen und Grammatiken

Grammatiken. Einführung

1 Mathematische Grundlagen

Datenaustauschformate. Datenaustauschformate - FLV

Übungsaufgaben zu XML:

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

XML Grundlagen. Andreas Rottmann,Sebastian Riedl. 27. August Quit Full Screen Previous Page Next Page GoTo Page Go Forward Go Back

Mathematische Grundlagen der Informatik 2

Formale Sprachen, reguläre und kontextfreie Grammatiken

Theoretische Grundlagen der Informatik

Was ist ein Compiler?

Kapitel 2. Methoden zur Beschreibung von Syntax

Informatik I Tutorium WS 07/08

2.11 Kontextfreie Grammatiken und Parsebäume

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen

Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt?

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

XML und SOAP Einführung und Grundlagen

Alphabet, formale Sprache

Zeichen bei Zahlen entschlüsseln

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

WEBSEITEN ENTWICKELN MIT ASP.NET

Online-Publishing mit HTML und CSS für Einsteigerinnen

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

XSL Templates. Mit Templates arbeiten. XSL Templates

Theoretische Informatik I

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Einfache kryptographische Verfahren

Primzahlen und RSA-Verschlüsselung

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Formale Sprachen. Der Unterschied zwischen Grammatiken und Sprachen. Rudolf Freund, Marian Kogler

Beuth Hochschule Die erweiterbare Markierungssprache XML WS10/11

IT-Basics 2. DI Gerhard Fließ

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Bevor lineare Gleichungen gelöst werden, ein paar wichtige Begriffe, die im Zusammenhang von linearen Gleichungen oft auftauchen.

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

1 Aussagenlogik und Mengenlehre

Webseiten sind keine Gemälde. Webstandards für ein besseres Web. Webstandards für ein besseres Web

Informationsblatt Induktionsbeweis

Grammatiken in Prolog

Was meinen die Leute eigentlich mit: Grexit?

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:

Semantik von Formeln und Sequenzen

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Einführung in die Algebra

Data Mining: Einige Grundlagen aus der Stochastik

XML-basierte Standards für den Datenaustausch in der Logistikkette

Barrierefreie Webseiten erstellen mit TYPO3

Workflow, Business Process Management, 4.Teil

e LEARNING Kurz-Anleitung zum Erstellen eines Wikis 1. Wiki erstellen

Informatik IC2. Balazs Simon

Webseite in XML Kurzeinführung

Kapitel 3 Frames Seite 1

IT- und Medientechnik

7 Rechnen mit Polynomen

Webdesign-Multimedia HTML und CSS

Kapitalerhöhung - Verbuchung

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

DTD: Syntax-Zusammenfassung

Es gibt situationsabhängig verschiedene Varianten zum Speichern der Dokumente. Word bietet im Menü DATEI unterschiedliche Optionen an.

Grundlagen der Theoretischen Informatik, SoSe 2008

SWE1 / Übung 2 ( )

Terme stehen für Namen von Objekten des Diskursbereichs (Subjekte, Objekte des natürlichsprachlichen Satzes)

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Kapiteltests zum Leitprogramm Binäre Suchbäume

Übungsblatt 3: Algorithmen in Java & Grammatiken

Übungen zur Softwaretechnik

IT-Zertifikat: Daten- und Metadatenstandards

Binärdarstellung von Fliesskommazahlen

Ursprung des Internets und WWW

Motivation. Inhalt. URI-Schemata (1) URI-Schemata (2)

HTML Programmierung. Aufgaben

Rundung und Casting von Zahlen

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Dokumenten- und Content Management

Java Kurs für Anfänger Einheit 5 Methoden

Format- oder Stilvorlagen

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Wurzeln als Potenzen mit gebrochenen Exponenten. Vorkurs, Mathematik

Präsentation zum Thema XML Datenaustausch und Integration

Grundbegriffe der Informatik

Sprachen sind durch folgenden Aufbau gekennzeichnet:

Transkript:

Programmieren I Formale Sprachen KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Formale Sprachen: Motivation Sprachen werden eingeteilt in: Natürliche Sprachen oder Umgangssprachen (werden gesprochen und dienen der Kommunikation) Künstliche oder Formale Sprachen (werden benutzt, um Sachverhalte möglichst genau aufzuschreiben, z.b. in der Mathematik, Logik und Informatik) Eine Formale Sprache ist eine Menge von Symbolanordnungen, die vorgegebenen Regeln entsprechen Formale Sprachen definieren welche Ausdrücke erlaubt sind (Syntax) nicht die Bedeutung (Semantik) von Ausdrücken 2 W. Süß, T. Schlachter

Formale Sprachen: Motivation Beispiele Datenaustausch: Sender und Empfänger müssen sich auf gemeinsames Format einigen Spezialfall Programmiersprachen 1 : Was sind korrekte Ausdrücke? class EinfacheKlasse {int datum;} ist ein korrekter Java-Ausdruck class EinfacheKlasse (int datum) ist kein korrekter Java-Ausdruck 1) Sender ist der Programmierer, Empfänger ist der Übersetzer (Compiler) 3 W. Süß, T. Schlachter

Anwendung: Datenaustausch Sender Beispiele: Empfänger Dokumente im Internet: Datenaustauschformate HTML, XML, PDF Austausch zwischen betrieblichen Informationssystemen Elektronischer Datenaustausch zwischen Unternehmen Zum elektronischen Datenaustausch müssen sich Sender und Empfänger auf ein Austauschformat einigen. Der Empfänger muss erkennen, ob Daten(format) korrekt sind/ist was sie bedeuten Kunde Rechnung Bestellung Lieferant 4 W. Süß, T. Schlachter

Syntax, Semantik und Pragmatik einer Sprache Syntax (Sprachliche Form): Legt fest, welche Ausdrücke erlaubt sind Java: Nach dem Wort class folgt ein Wort und anschließend eine in geschweifte Klammern eingeschlossene Zeichenfolge Semantik (Bedeutung): Legt die Bedeutung eines Ausdrucks der Sprache fest Java: das Schlüsselwort class leitet eine Klassendefinition ein; das Wort direkt nach class ist der Name der Klasse Deutsch: Der Baum blüht. und Der Baum spaziert. sind nach der gleichen Regel aufgebaute, syntaktisch korrekte Sätze mit unterschiedlicher (mehr oder weniger sinnvoller) Bedeutung. Pragmatik: Regelt die Einbettung der Bedeutung in den Kontext 5 W. Süß, T. Schlachter

Beispiel für Syntax, Semantik und Pragmatik Satz: Wie spät ist es? Die Syntax regelt den grammatikalischen Aufbau der Frage. Wie spät ist es! wäre syntaktisch falsch. Die Semantik zeigt, dass eine Frage nach einer Uhrzeit zum Zeitpunkt des Aussprechens gemeint ist. Die Pragmatik zeigt, dass der Sprechende eine Aufforderung an den Hörer hat und dass eine Reaktion von diesem zu recht erwartet werden kann. Der Hörer steht mit der Annahme der Frage in der Pflicht der Frage bzw. Bitte um Antwort nachzukommen. Pragmatisch falsch wäre die Reaktion: Es ist nie zu spät, ein guter Mensch zu werden [I. Kant], obwohl dies inhaltlich (semantisch) sinnvoll wäre. 6 W. Süß, T. Schlachter

Formale Sprachen Formale Sprache definiert, welche Ausdrücke erlaubt sind Zulässige Zeichen Regeln für die Zusammensetzung der Zeichen Sender und Empfänger befolgen die gleichen Regeln Sprache ist eindeutig beschrieben Korrektheit eines Ausdrucks ist nachprüfbar Formale Sprachen haben folgende Eigenschaften Alle Zeichen sind explizit definiert Alle syntaktischen Regeln sind explizit definiert Alle semantischen Regeln sind explizit definiert oder vollständig weggelassen Es gibt keine Pragmatik 7 W. Süß, T. Schlachter

Alphabet Gegeben sei A Alphabet: eine Menge von Zeichen (auch Zeichenvorrat genannt) Dann ist A* die Menge aller Zeichenketten, die man aus A bilden kann, einschließlich der leeren Kette "" Für die leere Kette schrieben wir auch den griechischen Buchstaben (sprich: Lambda ) A+ Die Menge aller Zeichen, die man bilden kann ohne die leere Kette Beispiele: A = {"a", "b", "c"} A* = {, "a", "b", "c", "aa", "ab", "ac", "ba", "bb", "bc", "ca", "cb", "cc", "aaa", "aab", "aac", "aba", "abb",...} 8 W. Süß, T. Schlachter

Sprache Eine Teilmenge L A* nennt man Sprache über dem Alphabet A. Die Elemente von L heißen Wörter der Sprache L (oder auch Ketten der Sprache L). Beispiel: Gegeben sei das Alphabet A = {"a", "b", "c"}. L 1 sei die Sprache über A, in der alle Wörter mit "a" beginnen und aufhören. Dann sind folgende Ketten Wörter von L 1 "a", "aa", "aaa", "aba", "aca", "aaaa", "aaba", "accca",... Keine Wörter von L 1 sind dagegen: "", "b", "c", "ab", "ca", "bcc",... 9 W. Süß, T. Schlachter

Grammatik Grammatik: Lehre von der Wortbildung und -flexion (Morphologie) sowie von der Verwendung der Wörter im Satz (Syntax) Die meisten Sprachen sind unendlich, so dass man durch Aufzählung der Wörter die Sprache nicht definieren kann Eine Grammatik ist eine allgemeine, eindeutige Beschreibung der Syntax einer Sprache Eine Grammatik soll eine endliche Beschreibung haben 10 W. Süß, T. Schlachter

Grammatik Eine Grammatik G=(T,N,P,S) besteht aus 4 Teilen: T N P S die Menge der Terminalsymbole, aus denen die Wörter der Sprache gebildet werden. Terminalsymbole sind Zeichen des zugrunde liegenden Alphabets. die Menge der Nichtterminalsymbole (Hilfssymbole); sie treten in der Sprache nicht auf, sondern müssen durch Terminalsymbole ersetzt werden. die Menge der Produktionen (auch Produktionsregeln oder Regeln genannt). Eine Regel X Y besagt, dass ein Teilwort X durch ein Teilwort Y ersetzt werden kann, wobei X und Y aus Terminal- und Nichtterminalsymbolen bestehen können. das Startsymbol (ein spezielles Element aus N), von dem ausgehend die Produktionen angewandt werden. 11 W. Süß, T. Schlachter

Beispiel: Grammatik für L 1 Die folgende Grammatik beschreibt die Menge aller Wörter über dem Alphabet {"a", "b", "c"}, die mit "a" beginnen und enden: T = { "a", "b", "c"} N = { Wort, Buchstabe, Teilwort } P = { Wort "a" Teilwort "a", Wort "a", Teilwort Buchstabe Teilwort, Teilwort, Buchstabe "a", Buchstabe "b", Buchstabe "c" } S = Wort 12 W. Süß, T. Schlachter

Backus-Naur-Form (BNF) In der Informatik hat eine besondere Form zur Beschreibung einer Grammatik weite Verbreitung gefunden: Die Backus-Naur-Form (BNF) Die BNF wird vor allem für die Definition von Programmiersprachen verwendet Die linke Seite jeder Regel besteht aus genau einem Nichtterminalsymbol (die BNF ist eine Darstellung für kontextfreie Grammatiken) Die rechte Seite einer Regel besteht aus beliebig langen Ketten, die Terminal- und Nichtterminalsymbole enthalten kann die rechte Seite ist also ein Element aus (T N)* die leere rechte Seite ( ) ist erlaubt Linke und rechte Seite einer Regel werden durch das Zeichen ::= voneinander getrennt 13 W. Süß, T. Schlachter

Beispiel: Grammatik für L 1 in BNF T = { "a", "b", "c" } N = { Wort, Buchstabe, Teilwort } P = { Wort "a" Teilwort "a", (1) Wort "a", (2) Teilwort Buchstabe Teilwort, (3) Teilwort, (4) Buchstabe "a", (5) Buchstabe "b", (6) Buchstabe "c" (7) } S = Wort 14 W. Süß, T. Schlachter

Erweiterte Backus-Naur-Form (EBNF) Weil BNF-Grammatiken unübersichtlich werden können, wurde die BNF um einige Abkürzungsmöglichkeiten erweitert. Dies führt zur erweiterten Backus-Naur-Form (EBNF) Es gibt verschiedene Varianten der EBNF Eine gebräuchliche sieht folgende Abkürzungsmöglichkeiten vor: der senkrechte Strich trennt Alternativen [ ] eckige Klammern enthalten optionale Bestandteile { } geschweifte Klammern enthalten Bestandteile, die null, ein oder mehrfach wiederholt werden dürfen { }+ geschweifte Klammern mit + enthalten Elemente, die ein oder mehrfach wiederholt werden können 15 W. Süß, T. Schlachter

Beispiel: Grammatik für L 1 in EBNF T = { "a", "b", "c" } N = { Wort, Buchstabe, Teilwort } P = { Wort "a" Teilwort "a" a, (1+2) Teilwort Buchstabe Teilwort, (3+4) Buchstabe "a" "b" "c" (5-7) } S = Wort 16 W. Süß, T. Schlachter

Sprache einer Grammatik Eine Sprache L einer Grammatik G ist die Menge aller Wörter, die durch die Grammatik abgeleitet werden können, d.h. die Wörter die aus S durch Anwendung von Produktionsregeln erzeugt werden kann, wobei alle Nichtterminalsymbole durch Terminalsymbole ersetzt worden sind. Mathematische Definition: Sei G=(T,N,P,S) eine Grammatik. Dann heißt L(G) = {w T* S w} die von G erzeugte formale Sprache. Eine Sprache entsteht also als Menge von Zeichenketten durch Anwendung von Produktionen einer Grammatik. 17 W. Süß, T. Schlachter

Herleitung eines Wortes aus einer BNF-Grammatik Herleitung eines Wortes lässt sich als Baum darstellen Beispiel: "abca" ist eine Wort der Sprache L 1 : Wort (1) "a" Teilwort "a" (3) Buchstabe Teilwort (6) (3) "b" Buchstabe Teilwort (7) (4) "c" Die fett gedruckten Zeichen bilden das erzeugte Wort. 18 W. Süß, T. Schlachter

Erkennen von gültigen Ausdrücken einer Sprache Eine wichtige Anwendung einer Grammatik ist zu erkennen, ob eine Zeichenkette zu einer Sprache gehört Beispiel: Analysephase beim Compilieren Für die Erkennung von Zeichenketten werden die Regeln rückwärts angewendet Erkennung der Korrektheit von Ausdrücken Zuordnung von Ausdrücken zu semantischen Einheiten Dieser Vorgang heißt parsen (engl. to parse - analysieren) Parser sind Bestandteile von Compilern aber auch z.b. von WWW-Browsern (um HTML-Code zu erkennen) 19 W. Süß, T. Schlachter

Sprache - ein zweites Beispiel Gegeben sei das Alphabet A = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "+", "-", "*", "/", "(", ")"} Die Menge L A der arithmetischen Ausdrücke ist eine Sprache über A, z.b. 122+4 8*(4+177/3-(11*(18+7))) 13 Die folgenden Wörter sollen nicht zu L A gehören: 28(18 ++/-5 20 W. Süß, T. Schlachter

Beispiel: EBNF-Grammatik für die Sprache L A der arithmetischen Ausdrücke T = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "+", " ", "*", "/", "(", ")" } N = { Ausdruck, Term, Faktor, Zahl, Ziffer } P = { Ausdruck ::= Term Term "+" Term Term " " Term Term ::= Faktor Faktor "*" Faktor Faktor "/" Faktor Faktor ::= Zahl "(" Ausdruck ")" Zahl ::= {Ziffer}+ Ziffer ::= "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" } S = Ausdruck 21 W. Süß, T. Schlachter

Kontextfreie Grammatiken Im Allgemeinen können rechte und linke Seite von Produktionen aus beliebigen Kombinationen von Terminalund Nichtterminalsymbolen bestehen Die für die Informatik wichtigste Kategorie von Grammatiken sind diejenigen, deren Mengen N, T, und P nicht leer und endlich sind und deren Produktionen auf der linken Seite aus genau einem Nichtterminalsymbol bestehen Diese Grammatiken heißen kontextfrei Die Anwendung von Produktionen einer kontextfreien Grammatik führt zu einer hierarchischen Verfeinerung Wörter einer kontextfreien Sprache können einfach generiert und erkannt werden (E)BNF-Grammatiken sind kontextfrei 22 W. Süß, T. Schlachter

Syntaxdiagramme Eine mit BNF eng verwandte Form von Grammatik sind die Syntaxdiagramme. Ein Syntaxdiagramm entspricht einer EBNF-Regel (bzw. mehreren BNF-Regeln, welche die gleiche linke Seiten haben). Das Hilfssymbol auf der linken Seite entspricht dem Titel des Diagramms. Hilfssymbole der rechten Seite werden durch Rechtecke, Terminalsymbole durch Kreise dargestellt 23 W. Süß, T. Schlachter

Beispiel: Syntaxdiagramme für die Sprache L A der arithmetischen Ausdrücke Ausdruck Faktor Term Term + Zahl Ausdruck ( ) Term Zahl Faktor Faktor * / Ziffer Ziffer 0 1 2 3 4 5 6 7 8 9 24 W. Süß, T. Schlachter

Metasprachen BNF und EBNF sind formale Sprachen, die dazu da sind, über formale Sprachen etwas zu sagen (nämlich ihre Syntax zu definieren) Eine Sprache, in der man über eine andere Sprache spricht, nennt man Metasprache Die Zeichen dieser Sprachen, die nicht Terminal- oder Hilfssymbole sind, heißen Metasymbole In BNF sind " und ::= Metasymbole In EBNF sind ", ::=,, [, ], { und } Metasymbole 25 W. Süß, T. Schlachter

Anwendungen von Grammatiken Es gibt viele Anwendungen für Grammatiken nicht nur in den Definitionen der Programmiersprachen, z.b. Aufbau von Kommandos (Shell, COMMAND.COM) Beschreibung von Protokollen (TCP, IP, HTTP, SOAP) Aufbau von Mustern (Pattern-Matching), z.b. für Shell oder Editoren (substitute-kommando) Reguläre Ausdrücke Aufbau von SQL-Kommandos Aufbau von URI/URL (Web-Adressen) Aufbau von Dokumenten (HTML, XML) 26 W. Süß, T. Schlachter

Formale Sprachen im Internet: Anwendungen HTML (HyperText Markup Language) XML (extensible Markup Language) 1997 XML 1992 HTML WWW 1986 SGML 1960 Generalized Markup Internet 27 W. Süß, T. Schlachter

Aufbau einer HTML Seite Document Type Definition (DTD) HEAD-Bereich Dokumentinformation/Metadaten (Titel, Autor, Zeichensatz, Keywords, etc.) Body-Bereich Eigentliches Dokument, (Nutz-)Inhalt 28 W. Süß, T. Schlachter

Beispiel einer einfachen HTML-Seite <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/tr/html4/strict.dtd"> <html> <head> <title>vorlesung Programmieren</title> </head> <body> <h1>formale Sprachen</h1> <p>viel Spaß bei der Vorlesung!</p> </body> </html> 29 W. Süß, T. Schlachter

(Eingeschränkte) Grammatik für HTML-Dokumente T = { "A",.., "Z", "a",..,"z", "0", "1",..,"9", " ", " ; ", " &",".",": ","!", "<html>", "</html>", "<head>", "</head>", "<body>", "</body>", "<title>", "</title>", "<p>", "</p>", "<h1>", "</h1> } N = { HTML-Dokument, Dokumentinhalt, Kopf, Rumpf, Überschrift, Absatz, Text } P = { HTML-Dokument ::= <html>dokumentinhalt</html> Dokumentinhalt ::= <head>kopf</head><body>rumpf</body> Kopf ::= <title>text</title> Rumpf ::= {Überschrift Absatz}* Überschrift ::= <h1>text</h1> Absatz ::= <p>text</p> Text ::= {"A" "B".. "Z" "a" "b".. "z" "0".. "9" " " "; " "&" ". " ":" "! "}* } S = HTML-Dokument 30 W. Süß, T. Schlachter

HTML HyperText Markup Language Vorteile Weite Verbreitung ( Sprache des WWW ) Einfachheit Unterstützung durch gängige Software (Web-Browser) Standardisiert Nachteile Nicht erweiterbar Keine Trennung zwischen Semantik und Darstellung Ansätze zur Trennung bestehen: Cascading Stylesheets (CSS) Document Style Semantics and Specification Language (DSSSL) 31 W. Süß, T. Schlachter

XML extensible Markup Language Konsequente Trennung zwischen Darstellung und Repräsentation Erweiterbar, eigene Tags können definiert werden Maschinen les- und prüfbar Kein Ersatz für HTML, aber Ergänzung in vielen Bereichen Für normales Homepage-Design ist XML relativ uninteressant. HTML und CSS sind dafür längst zu leistungsfähig und angesichts ihrer Verbreitung kaum noch zu verdrängen 32 W. Süß, T. Schlachter

XML: Trennung Inhalt, Struktur, Format Inhalt XML Struktur DTD, XML-Schema Format CSS, XSL, XSLT XML extensible Markup Language DTD Document Type Definition CSS - Cascading StyleSheet XSL extensible Style Language XSLT XSL Transformation 33 W. Süß, T. Schlachter

XML: Formale Sprache und Grammatik Formale Sprache Inhalt XML Struktur DTD, XML-Schema Format CSS, XSL, XSLT Grammatik Layout 34 W. Süß, T. Schlachter

Gültigkeit von XML-Dokumenten Formale Sprache XML Grammatik DTD oder XML-Schema PARSER XML Validiertes Dokument 35 W. Süß, T. Schlachter

Eigenschaften von XML-Dokumenten Wohlgeformtheit (wellformed) Dokument syntaktisch korrekt? Passender Aufbau des XML-Dokumentes Korrekte Verschachtelung von Tags Attribute in " " Keine offenen Tags Gültigkeit (valid) Wohlgeformtheit und Entspricht einer DTD 36 W. Süß, T. Schlachter

XML-Dokumente und DTD XML-Dokument <hotel id="h0001"> <name> Strand Hotel Hübner </name> <kategorie>4</kategorie> </hotel> DTD <!ELEMENT hotel (name, kategorie)> <!ATTLIST hotel id ID #REQUIRED> <!ELEMENT name (#PCDATA)> <!ELEMENT kategorie (#PCDATA)> 37 W. Süß, T. Schlachter

Strukturdefinition für XML-Dokumente DTDs einfach kompakt gut lesbar keine XML-Syntax XML-Schema wesentlich mehr Darstellungsmöglichkeiten Datentypen XML-Syntax 38 W. Süß, T. Schlachter

XML-Dokumente und XSL Stylesheets PDF XSL Stylesheet Layout: Drucker XSL Stylesheet HTML XML Validiertes Dokument XSL Stylesheet Layout: Browser WML XSL Stylesheet XML Layout: Handy Layout: Externe Anwendung 39 W. Süß, T. Schlachter

XML-Anwendungen Datenaustausch SOAP (Simple Object Access Protocol) *.docx, *.odt Naturwissenschaft MathML Mathematische Formelsprache CML Chemical Markup Language BSML Bioinformatic Sequence Markup Language BioML Biopolymer Markup Language SVG Scalable Vector Graphics XHTML XML-konforme Neudefinition von HTML Allgemein: Strukturierte Informationen 40 W. Süß, T. Schlachter