Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung - mit XML - Klaus Becker 2009.

Slides:



Advertisements
Ähnliche Präsentationen
Anzahl der ausgefüllten und eingesandten Fragebögen: 211
Advertisements

Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Kritische Betrachtung
Telefonnummer.
Anmerkungen zu XML Im September 2000 Entwicklung/Anspruch von XML
1 JIM-Studie 2010 Jugend, Information, (Multi-)Media Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Hands On – Einführung in XML
IMS Universität Stuttgart 1 Einführung in XML Hannah Kermes HS: Elektronische Wörterbücher Do,
HTML - Einführung Richard Göbel.
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Java: Grundlagen der Sprache
DOM (Document Object Model)
XML-Schema HKI Proseminar Wintersemester 2010/11 Dozentin: Frau Kurz von Jan Kohl und Christian Lütticke.
HTML - Eine erste Annäherung
Rechneraufbau & Rechnerstrukturen, Folie 2.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 2.
XHTML 1.1 C. Nimz Abstrakte Module XHTML 1.1 C. Nimz Was ist ein abstraktes Modul? Definition eines XHTML-Moduls in spezieller leichter.
Einführung XML XML Einführung Andreas Leicht.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Christian Schindelhauer
Christian Schindelhauer
Differentielles Paar UIN rds gm UIN
Prof. Dr. Bernhard Wasmayr
DVG Klassen und Objekte
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
1 Grundlagen und Anwendung der Extensible Markup Language (XML ) Peter Buxmann Institut für Wirtschaftsinformatik Johann Wolfgang Goethe-Universität Frankfurt.
Prof. Dr. Bernhard Wasmayr VWL 2. Semester
Teil 4 Formatierung mit CSS.
AWA 2007 Natur und Umwelt Natürlich Leben
FH-Hof 1 XML-Parser Richard Göbel. FH-Hof 2 XML-Parser- DOM Object Tree Parser Objekt der Klasse 'DocumentBuilderFactory' mit 'newInstance()' erzeugen.
Prof. Dr. Günter Gerhardinger Soziale Arbeit mit Einzelnen und Familien Übersicht über die Lehrveranstaltung Grundlegende Bestimmungsfaktoren der Praxis.
Vortrag HTML, XHTML, DHTML
20:00.
Zusatzfolien zu B-Bäumen
Formale Sprachen und Automaten
JavaScript.
Eine Einführung in die CD-ROM
Dokumentation der Umfrage
Kinder- und Jugenddorf Klinge Qualitätsentwicklung Januar 2005 Auswertung der Fragebögen für die Fachkräfte in den Jugendämtern.
Syntaxanalyse Bottom-Up und LR(0)
Wird ganz am Anfang der HTML-Datei geschrieben Doctype html public bedeutet, dass man sich auf die Öffentlichkeit der html-dtd bezieht Html ist die meist.
Java für Fortgeschrittene
Wohlgeformtheit und Gültigkeit Grundlagen der Datenmodellierung Anke Jackschina.
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Geometrische Aufgaben
Oliver Spritzendorfer Thomas Fekete
Szenisches Lernen Wie Theaterelemente den Unterricht bereichern
Zahlentheorie und Zahlenspiele Hartmut Menzer, Ingo Althöfer ISBN: © 2014 Oldenbourg Wissenschaftsverlag GmbH Abbildungsübersicht / List.
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
Folie Beispiel für eine Einzelauswertung der Gemeindedaten (fiktive Daten)
Unternehmensbewertung Thomas Hering ISBN: © 2014 Oldenbourg Wissenschaftsverlag GmbH Abbildungsübersicht / List of Figures Tabellenübersicht.
Forschungsprojekt Statistik 2013 „Jugend zählt“ – Folie 1 Statistik 2013 „Jugend zählt“: Daten zur Arbeit mit Kindern und Jugendlichen.
CSS Cascading Style Sheets
Folie Einzelauswertung der Gemeindedaten
HTML Hypertext Markup Language
Datum:17. Dezember 2014 Thema:IFRS Update zum Jahresende – die Neuerungen im Überblick Referent:Eberhard Grötzner, EMA ® Anlass:12. Arbeitskreis Internationale.
7. Formale Sprachen und Grammatiken
Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema XML, DTDs und XML-Schema - Stefan Kurz, 25. April 2003.
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
- Warum: Das HTML-Dilemma
Peter Brezany Institut für Softwarewissenschaften Universität Wien
Geoinformation3 Geoinformation III XML Grundlagen und Dokumentspezifikation Vorlesung 12b.
13.Dezember 2006–1Elektronisches Publizieren: Schemasprachen — Relax NG Schemasprachen für XML — Relax NG — Anne Brüggemann-Klein TU München.
 Präsentation transkript:

Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung - mit XML - Klaus Becker 2009

XML <?xml version="1.0" encoding="ISO-8859-1"?> <Fortbildung> <Titel>Informationsdarstellung mit XML</Titel> <Inhalte> <Inhalt>Information und ihre Darstellung</Inhalt> <Inhalt>XML-Dokumente</Inhalt> <Inhalt>XML-Dokumenttypen</Inhalt> <Inhalt>Festlegung von Sprachen</Inhalt> <Inhalt>XML-basierte Sprachen</Inhalt> <Inhalt>XML-Dokumente und das Document Object Model</Inhalt> <Inhalt>Verarbeitung von Sprachen</Inhalt> <Inhalt>XML im Informatikunterricht</Inhalt> </Inhalte> </Fortbildung>

Information und ihre Darstellung Teil 1 Information und ihre Darstellung

Einstieg - Telefon Bedienungsanleitung: Entwurfsmodellierung: benutzt die Alltagssprache und eine bildliche Darstellung von Information Entwurfsmodellierung: benutzt eine Diagrammsprache (Zustandsdiagramm) zur Darstellung von Information Zustandsdiagramm

Werkzeug Charon z. Erzeugung von Zustandsd. Einstieg - Telefon Speicherformat: benutzt eine spezielle "Daten-Sprache" zur Darstellung von Information Quelltext [Main] Anzahl der Zustände=4 Existiert Start=1 Anzahl Alphabet=4 Zeichen1=Zifferblock Zeichen2=Abheben Zeichen3=Abheben lang Zeichen4=Auflegen [Config] ... [Color] [Zustand1] Name=Ruhezustand Nummer=1 x-Koord=77 y-Koord=249 Typ=0 Typname=Start Kommentar1= AkENTRY1= AkDO1= Werkzeug Charon z. Erzeugung von Zustandsd.

Einstieg - Telefon <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!--Created with JFLAP 6.4.--> <structure> <type>fa</type> <automaton> <!--The list of states.--> <state id="0" name="q0"> <x>64.0</x> <y>100.0</y> <label>Ruhezustand</label> <initial/> </state> <state id="1" name="q1"> <x>230.0</x> <y>-15.0</y> <label>Rufnummer eingeben</label> <state id="2" name="q2"> <x>389.0</x> <label>Einwählen</label> ... Werkzeug JFlap Quelltext

Fachkonzept - Datenformat Ein Datenformat ist eine Daten-Sprache, die zur computergerechten Darstellung von Information benutzt wird. [Main] Anzahl der Zustände=4 Existiert Start=1 Anzahl Alphabet=4 Zeichen1=Zifferblock Zeichen2=Abheben Zeichen3=Abheben lang Zeichen4=Auflegen [Config] ... [Color] [Zustand1] Name=Ruhezustand Nummer=1 x-Koord=77 y-Koord=249 Typ=0 Typname=Start Kommentar1= AkENTRY1= AkDO1= Datenformat

Fachkonzept - Datenformat Viele Software-Entwickler erfinden eine eigene - also proprietäre - Sprache, in der die zu verwaltenden Daten beschrieben und gespeichert werden. Die Entwicklung geht heute eher dahin, Standards bei der Konzeption von Datenformaten zu nutzen. Standards erleichtern den Austausch von Daten. Auch bei der Entwicklung selbst ergeben sich oft viele Vorteile: Für Standards betreffende Aufgaben gibt es oft schon fertige Lösungen, die man direkt übernehmen kann. [Main] Anzahl der Zustände=4 Existiert Start=1 Anzahl Alphabet=4 Zeichen1=Zifferblock Zeichen2=Abheben Zeichen3=Abheben lang Zeichen4=Auflegen [Config] ... [Color] [Zustand1] Name=Ruhezustand Nummer=1 x-Koord=77 y-Koord=249 Typ=0 Typname=Start Kommentar1= AkENTRY1= AkDO1= <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!--Created with JFLAP 6.4.--> <structure> <type>fa</type> <automaton> <!--The list of states.--> <state id="0" name="q0"> <x>64.0</x> <y>100.0</y> <label>Ruhezustand</label> <initial/> </state> ... proprietäres Datenformat Standard-basiertes Datenformat

Fachkonzept - XML als Standard XML steht für Extensible Markup Language und ist eine Sprache zur Festlegung von Auszeichnungssprachen (Das sind Sprachen um Information strukturiert in Form von Daten und einer Auszeichnung von Daten darzustellen. Auszeichnungen geben dabei Hinweise, wie die Daten zu verarbeiten sind.). XML ist also eine Meta-Sprache, mit deren Hilfe neue Sprachen entwickelt werden können. XML wird inzwischen so viel genutzt, dass es als Standard bei der Entwicklung neuer Datenformate angesehen werden kann. <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!--Created with JFLAP 6.4.--> <structure> <type>fa</type> <automaton> <!--The list of states.--> <state id="0" name="q0"> <x>64.0</x> <y>100.0</y> <label>Ruhezustand</label> <initial/> </state> ... Daten Auszeichnung mit Tags

Übungen (siehe www.inf-schule.de) Bearbeiten Sie eine Aufgabe des Abschnitt "Darstellung von Information - Übungen".

Teil 2 XML-Dokumente

Einstieg - The Beatles The Beatles were a rock and pop band from Liverpool, England that formed in 1960. During their career, the group primarily consisted of John Lennon (rhythm guitar, vocals), Paul McCartney (bass guitar, vocals), George Harrison (lead guitar, vocals) and Ringo Starr (drums, vocals). Although their initial musical style was rooted in 1950s rock and roll and skiffle, the group worked with different musical genres, ranging from Tin Pan Alley to psychedelic rock. Their clothes, style and statements made them trend-setters, while their growing social awareness saw their influence extend into the social and cultural revolutions of the 1960s. After the band broke up in 1970, all four members embarked upon successful solo careers. Quelle: http://en.wikipedia.org/wiki/The_Beatles

Einstieg - The Beatles <?xml version="1.0" encoding="iso-8859-1"?> <band> <name>Beatles</name> <gründung>1960</gründung> <auflösung>1970</auflösung> <!--Liste der Mitglieder.--> <mitglieder> <mitglied> <name>Lennon</name> <vorname>John</vorname> <instrumente> <instrument>Gesang</instrument> <instrument>Rhytmusgitarre</instrument> <instrument>Tasteninstrumente</instrument> <instrument>Mundharmonika</instrument> </instrumente> </mitglied> <name>McCartney</name> <vorname>Paul</vorname> <sir/> ... </mitglieder> </band> Analysieren Sie das folgende XML-Dokument zur Beschreibung einer Band - hier der Beatles. Welche Information wird hier dargestellt? Wie ist das XML-Dokument zur Darstellung der Information aufgebaut?

Exkurs - XML-Dokumente <?xml version="1.0" encoding="iso-8859-1"?> <band> <name>Beatles</name> <gründung>1960</gründung> <auflösung>1970</auflösung> <!--Liste der Mitglieder.--> <mitglieder> <mitglied> <name>Lennon</name> <vorname>John</vorname> <instrumente> <instrument>Gesang</instrument> <instrument>Rhytmusgitarre</instrument> <instrument>Tasteninstrumente</instrument> <instrument>Mundharmonika</instrument> </instrumente> </mitglied> <name>McCartney</name> <vorname>Paul</vorname> <sir/> ... </mitglieder> </band> XML-Dokumente werden benutzt, um Information strukturiert darzustellen. The Beatles were a rock and pop band from Liverpool, England that formed in 1960. During their career, the group primarily consisted of John Lennon (rhythm guitar, vocals), Paul McCartney (bass guitar, vocals), George Harrison (lead guitar, vocals) and Ringo Starr (drums, vocals). Although their initial musical style was rooted in 1950s rock and roll and skiffle, the group worked with different musical genres, ranging from Tin Pan Alley to psychedelic rock. Their clothes, style and statements made them trend-setters, while their growing social awareness saw their influence extend into the social and cultural revolutions of the 1960s. After the band broke up in 1970, all four members embarked upon successful solo careers. Quelle: http://en.wikipedia.org/wiki/The_Beatles

Exkurs - XML-Dokumente Die Strukturierung erfolgt in Form eines Baumes. <?xml version="1.0" encoding="iso-8859-1"?> <band> <name>Beatles</name> <gründung>1960</gründung> <auflösung>1970</auflösung> <!--Liste der Mitglieder.--> <mitglieder> <mitglied> <name>Lennon</name> <vorname>John</vorname> <instrumente> <instrument>Gesang</instrument> <instrument>Rhytmusgitarre</instrument> <instrument>Tasteninstrumente</instrument> <instrument>Mundharmonika</instrument> </instrumente> </mitglied> <name>McCartney</name> <vorname>Paul</vorname> <sir/> ... </mitglieder> </band> Darstellung im Editor Anzeige mit einem Browser

Exkurs - XML-Dokumente Grundbausteine eines XML-Dokuments sind die XML-Elemente. Ein (XML-) Element wird mit Hilfe von Tags (Anfangs- und Endtag) markiert. Ein Element kann selbst wieder Elemente enthalten (Container) oder nur noch Zeichen (eigentliche Daten) oder beides (gemischter Inhalt) oder auch gar nichts (leeres Element). Das erste Element eines XML-Dokuments ist das Wurzelelement, das alle anderen Elemente in sich einschließt. Wurzelelement Element als Container Element mit Zeicheninhalt leeres Element

Exkurs - XML-Dokumente Mit Hilfe von Tags werden die verschiedenen Elemente begrenzt. Verschiedene Tags markieren dabei unterschiedliche Elementtypen. Tags werden (wie bei HTML) mit spitzen Klammern gebildet. Die Tag-Namen sind (fast) frei wählbar. Anfangs- und Endtag müssen immer exakt zueinander passen. Dabei wird auf Groß- und Kleinschreibung geachtet. Tags müssen korrekte geschachtelt werden. Bei einem leeren Element wird i. d. Regel eine verkürzte Tag-Schreibweise benutzt. Anfangstag Endtag <sir></sir>

Exkurs - XML-Dokumente Elemente können mit Hilfe von Attributen näher beschrieben werden. Attribute können dabei zusätzliche Informationen über den Inhalt eines Elements liefern, ohne selbst Teil des Inhalts zu sein. Jedem Attribut muss ein bestimmter Wert zugewiesen werden, der in Anführungszeichen geschrieben wird. Attribut Attributwert

Exkurs - XML-Dokumente Ein XML-Dokument beginnt in der Regel mit dem Prolog <?xml ... ?>. Der Prolog kennzeichnet das Dokument als XML-Dokument. <?xml version="1.0" encoding="iso-8859-1"?> <band> <name>Beatles</name> <gründung>1960</gründung> <auflösung>1970</auflösung> <!--Liste der Mitglieder.--> <mitglieder> <mitglied> <name>Lennon</name> <vorname>John</vorname> <instrumente> <instrument>Gesang</instrument> <instrument>Rhytmusgitarre</instrument> <instrument>Tasteninstrumente</instrument> <instrument>Mundharmonika</instrument> </instrumente> </mitglied> <name>McCartney</name> <vorname>Paul</vorname> <sir/> ... </mitglieder> </band> Im Prolog kann der Zeichensatz festgelegt werden, der zur Kodierung benutzt wird. Fehlt die Angabe des Zeichensatzes, so wird utf-8 als Vorgabe benutzt. Wenn deutsche Umlaute korrekt dargestellt werden sollen, sollte man den Zeichensatz iso-8859-1 verwenden. Kommentar Kommentare erleichtern das Verständnis und werden vom Browser mit angezeigt.

Übungen (siehe www.inf-schule.de) Bearbeiten Sie Aufgabe 1 und eine der Aufgaben 2, 3, 4 des Abschnitt "XML-Dokumente - Übungen".

Teil 3 XML-Dokumenttypen

Einstieg - Fehler im XML-Dokument <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!--Created with JFLAP 6.4.--> <structure> <type>fa</type> <automaton> <!--The list of states.--> <state id="0" name="q0"> <x>64.0</x> <y>100.0</y> <label>Ruhezustand</label> <initial/> </state> <state id="1" name="q1"> <x>230.0</x> <y>-15.0</y> <label>Rufnummer eingeben</label> <state> <state id="2" name="q2"> <x>389.0</x> <label>Einwählen</label> <state id="3" name="q3"> <x>235.0</x> <y>227.0</y> <label>Wählen</label> <!--The list of transitions.--> ... </automaton> </structure> <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!--Created with JFLAP 6.4.--> <structure> <type>fa</type> <automaton> <!--The list of states.--> <state id="0" name="q0"> <x>64.0</x> <y>100.0</y> <label>Ruhezustand</label> <initial/> </state> ... <!--The list of transitions.--> <transition> <von>2</von> <nach>0</nach> <read>Auflegen</read> </transition> <from>3</from> <to>0</to> <from>0</from> </automaton> </structure>

Exkurs - wohlgeformte XML-Dokumente Ein XML-Dokument, das alle syntaktischen Bedingungen von XML erfüllt, heißt wohlgeformt. <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!--Created with JFLAP 6.4.--> <structure> <type>fa</type> <automaton> <!--The list of states.--> <state id="0" name="q0"> <x>64.0</x> <y>100.0</y> <label>Ruhezustand</label> <initial/> </state> <state id="1" name="q1"> <x>230.0</x> <y>-15.0</y> <label>Rufnummer eingeben</label> <state> <state id="2" name="q2"> <x>389.0</x> <label>Einwählen</label> <state id="3" name="q3"> ... <!--The list of transitions.--> </automaton> </structure> <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!--Created with JFLAP 6.4.--> <structure> <type>fa</type> <automaton> <!--The list of states.--> <state id="0" name="q0"> <x>64.0</x> <y>100.0</y> <label>Ruhezustand</label> <initial/> </state> ... <!--The list of transitions.--> <transition> <von>2</von> <nach>0</nach> <read>Auflegen</read> </transition> <from>3</from> <to>0</to> </automaton> </structure> nicht wohlgeformt wohlgeformt Anfangstag Endtag?

Exkurs - gültige XML-Dokumente JFlap kann das XML-Dokument nicht verarbeiten, da es nicht die erforderliche Struktur hat. <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!--Created with JFLAP 6.4.--> <structure> <type>fa</type> <automaton> <!--The list of states.--> <state id="0" name="q0"> <x>64.0</x> <y>100.0</y> <label>Ruhezustand</label> <initial/> </state> ... <!--The list of transitions.--> <transition> <von>2</von> <nach>0</nach> <read>Auflegen</read> </transition> <from>3</from> <to>0</to> </automaton> </structure> wohlgeformt keine gültige Tag-Struktur

Exkurs - gültige XML-Dokumente Eine Dokumenttypdefinition (kurz DTD) legt einen Dokumenttyp präzise fest. <!ELEMENT structure (type, automaton)> <!ELEMENT automaton (state*, transition*)> <!ELEMENT type (#PCDATA)> <!ELEMENT state (x, y, label?, initial?)> <!ATTLIST state id CDATA #REQUIRED name CDATA #REQUIRED > <!ELEMENT transition (from, to, read)> <!ELEMENT x (#PCDATA)> <!ELEMENT y (#PCDATA)> <!ELEMENT label (#PCDATA)> <!ELEMENT initial EMPTY> <!ELEMENT from (#PCDATA)> <!ELEMENT to (#PCDATA)> <!ELEMENT read (#PCDATA)> <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE structure SYSTEM "automat.dtd"> <!--Created with JFLAP 6.4.--> <structure> <type>fa</type> <automaton> <!--The list of states.--> <state id="0" name="q0"> <x>64.0</x> <y>100.0</y> <label>Ruhezustand</label> <initial/> </state> ... <!--The list of transitions.--> <transition> <von>2</von> <nach>0</nach> <read>Auflegen</read> </transition> <from>3</from> <to>0</to> </automaton> </structure> wohlgeformt DTD in automat.dtd keine gültige Tag-Struktur

Exkurs - gültige XML-Dokumente Ein XML-Dokument, das alle Festlegungen einer DTD erfüllt, heißt gültig bzw. valide bzgl. dieser DTD. <!ELEMENT structure (type, automaton)> <!ELEMENT automaton (state*, transition*)> <!ELEMENT type (#PCDATA)> <!ELEMENT state (x, y, label?, initial?)> <!ATTLIST state id CDATA #REQUIRED name CDATA #REQUIRED > <!ELEMENT transition (from, to, read)> <!ELEMENT x (#PCDATA)> <!ELEMENT y (#PCDATA)> <!ELEMENT label (#PCDATA)> <!ELEMENT initial EMPTY> <!ELEMENT from (#PCDATA)> <!ELEMENT to (#PCDATA)> <!ELEMENT read (#PCDATA)> <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE structure SYSTEM "automat.dtd"> <!--Created with JFLAP 6.4.--> <structure> <type>fa</type> <automaton> <!--The list of states.--> <state id="0" name="q0"> <x>64.0</x> <y>100.0</y> <label>Ruhezustand</label> <initial/> </state> ... <!--The list of transitions.--> <transition> <from>2</from> <to>0</to> <read>Auflegen</read> </transition> </automaton> </structure> gültig / valide DTD in automat.dtd

Exkurs - gültige XML-Dokumente Man kann die Gültigkeit eines XML-Dokuments mit Hilfe spezieller Validierer überprüfen lassen. Ein XML-Validierer / XML-Parser ist ein Programm, das überprüft, ob das XML-Dokument die von der angegebenen DTD geforderte Struktur hat.

Exkurs - Dokumenttypdefinitionen Eine Dokumenttypdefinition beschreibt den Aufbau eines XML-Dokuments aus Elementen sowie die Attributstruktur der Elemente. <!ELEMENT structure (type, automaton)> <!ELEMENT type (#PCDATA)> <!ELEMENT automaton (state*, transition*)> <!ELEMENT state (x, y, label?, initial?)> <!ATTLIST state id CDATA #REQUIRED name CDATA #REQUIRED > <!ELEMENT transition (from, to, read)> <!ELEMENT x (#PCDATA)> <!ELEMENT y (#PCDATA)> <!ELEMENT label (#PCDATA)> <!ELEMENT initial EMPTY> <!ELEMENT from (#PCDATA)> <!ELEMENT to (#PCDATA)> <!ELEMENT read (#PCDATA)> Das Wurzelelement hat den Namen "structure". Ein Element vom Typ "structure" besteht aus einem Element vom Typ "type" gefolgt von einem Element vom Typ "automaton". Ein Element vom Typ "type" besteht aus Zeichen (parsed character data). Ein Element vom Typ "automaton" besteht aus beliebig vielen Elementen vom Typ "state" gefolgt von beliebig vielen Elementen vom Typ "transition". Ein Element vom Typ "state" besteht aus einem Element vom Typ "x" gefolgt von einem Element vom Typ "y" gefolgt von optionalen Elementen vom Typ "label" und "initial". Ein Element vom Typ "state" hat die Attribute "id" und "name", die beide nicht weggelassen werden können und deren Werte Zeichenketten sind. Ein Element vom Typ "transition" besteht aus einem Element vom Typ "from" gefolgt von einem Element vom Typ "to" gefolgt von einem Elementen vom Typ "read". ... Ein Element vom Typ "initial" ist ein leeres Element. DTD in automat.dtd

Exkurs - Dokumenttypdefinitionen Operator Bedeutung () Bildung von Elementgruppen , Trennzeichen innerhalb einer Sequenz von Elementen | Trennzeichen zwischen sich ausschließenden Alternativen * Element(gruppe) kann beliebig oft (auch gar nicht) vorkommen + Element(gruppe) muss mindestens einmal, kann mehrfach vorkommen ? Element(gruppe) kann einmal oder kein mal vorkommen <!ELEMENT Name Inhaltsmodell> <!ELEMENT structure (type, automaton)> <!ELEMENT type (#PCDATA)> <!ELEMENT automaton (state*, transition*)> <!ELEMENT state (x, y, label?, initial?)> <!ATTLIST state id CDATA #REQUIRED name CDATA #REQUIRED > <!ELEMENT transition (from, to, read)> <!ELEMENT x (#PCDATA)> <!ELEMENT y (#PCDATA)> <!ELEMENT label (#PCDATA)> <!ELEMENT initial EMPTY> <!ELEMENT from (#PCDATA)> <!ELEMENT to (#PCDATA)> <!ELEMENT read (#PCDATA)> Elementtyp-Deklaration

Exkurs - Dokumenttypdefinitionen Inhaltsmodell Beschreibung Elementinhalt Das Element enthält ausschließlich Unterelemente. <!ELEMENT transition (from, to, read)> <transiotion><from>...</from><to>...</to><read>...</read></transition> #PCDATA Das Element enthält nur Zeichendaten. <!ELEMENT type (#PCDATA)> <type>fa</type> gemischter Inhalt Das Element kann Zeichendaten und Unterelemente enthalten <!ELEMENT anrede (#PCDATA?, vormame, name)> <anrede>Frau<vorname>Christiane</vorname><name>Meier</name></anrede> EMPTY Das Element hat keinen Inhalt. <!ELEMENT initial EMPTY> <initial/> ANY Das Element kann beliebige Inhalte haben.

Exkurs - Dokumenttypdefinitionen <!ATTLIST Elementname Attributname Attributtyp Vorgabewert Attributname Attributtyp Vorgabewert Attributname Attributtyp Vorgabewert ... > <!ATTLIST state id CDATA #REQUIRED name CDATA #REQUIRED > <!ATTLIST lehrer geschlecht CDATA #REQUIRED amtsbez CDATA #IMPLIED > Attributlisten-Deklaration CDATA: nur einfache Zeichenketten erlaubt, keine Tags ... #REQUIRED: Attributwert muss in jeder Elementinstanz vorkommen #IMPLIED: Attributwert kann optional in einer Elementinstanz vorkommen

Einbindung einer DTD Eine Dokumenttypdefinition kann direkt in das XML-Dokument nach dem XML-Prolog eingebunden werden (interne DTD). Eine Dokumenttypdefinition kann auch über eine Referenz auf eine Datei mit dem XML-Dokument verbunden werden (externe DTD). Mit dem Schlüsselwort PUBLIC wird auf eine veröffentlichte DTD verwiesen. Als Name der DTD wird der Name d. Wurzelelement benutzt. <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE structure [ ... ]> <structure> ... </structure> interne DTD <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE structure SYSTEM "automat.dtd"> <structure> ... </structure> externe DTD <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> ... </html> externe DTD <!DOCTYPE Name [...]>

Übungen (siehe www.inf-schule.de) Bearbeiten Sie Aufgabe 1 und eine der Aufgaben 2, 3, 4 des Abschnitt "XML-Dokumenttypen - Übungen".

Miniprojekt: MyXHTML Ziel ist es, eine DTD für eine vereinfachte Version von XHTML - kurz MyXHTML - selbst zu entwickeln. Das folgende XHTML-Dokument soll dabei als gültig bzgl. dieser DTD validiert werden. Da es sich hier um eine komplexere Aufgabe handelt, sollte man schrittweise vorgehen. <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html SYSTEM "myxhtml.dtd"> <html> <head> <title>Steckbrief von Bailey</title> </head> <body> <h1>Steckbrief</h1> <p><img src="bailey1.jpg" alt="Foto von Bailey"/></p> <p>Ich heiße <em>Bailey</em>. Ich lebe in der Nähe von Kaiserslautern.</p> <p>Ich interessiere mich für Agility-Sport. Meine Lieblingsdisziplinen sind:</p> <ul> <li>Sprung durch einen Reifen</li> <li>Lauf über eine Wippe</li> <li>Slalomlauf zwischen Stangen</li> </ul> <p> Ich gehe jedes Wochenende zur <a href="www.welpenschule-kl.de/index.html">Welpenschule</a> . </p> </body> </html>

Miniprojekt: MyXHTML Schritt 1: Zuerst soll nur die Grundstruktur eines XHTML-Dokuments betrachtet werden. <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html SYSTEM "myxhtml.dtd"> <html> <head> <title>Steckbrief von Bailey</title> </head> <body> <h1>Steckbrief</h1> </body> </html> <!ELEMENT html (head, body)> <!ELEMENT head (title)> <!ELEMENT title (#PCDATA)> <!ELEMENT body (h1)> <!ELEMENT h1 (#PCDATA)*>

Miniprojekt: MyXHTML Schritt 2: Ein XHTML-Dokument kann mehrere Überschriften 1. Ordnung enthalten. Innerhalb einer Überschrift können bestimmte Zeichenketten auch hervorgehoben werden. <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html SYSTEM "myxhtml.dtd"> <html> <head> <title>Steckbrief von Bailey</title> </head> <body> <h1>Steckbrief</h1> </body> </html> <!ELEMENT html (head, body)> <!ELEMENT head (title)> <!ELEMENT title (#PCDATA)> <!ELEMENT body (h1)*> <!ELEMENT h1 (#PCDATA | em)*> <!ELEMENT em (#PCDATA)> Führen Sie die gezeigten Schritte durch. Wenn alles soweit geklappt hat, dann erweitern Sie Schritt für Schritt das XML-Dokument und die zugehörige DTD.

Strukturbeschreibung mit einer DTD Ausblick: XML-Schema Schach-Spielzustand - Version 1: Strukturbeschreibung mit einer DTD <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE Schach-Spielzustand SYSTEM "schach1.dtd"> <Schach-Spielzustand> <schwarz> <Bauer>b7</Bauer> <Bauer>e7</Bauer> <Bauer>d6</Bauer> <Bauer>b5</Bauer> <Bauer>f4</Bauer> <Springer>c6</Springer> <Läufer>e5</Läufer> <Dame>c4</Dame> <König>d7</König> </schwarz> <weiss> <Bauer>h5</Bauer> <Bauer>f2</Bauer> <Bauer>g2</Bauer> <Läufer>f5</Läufer> <Turm>f1</Turm> <Dame>f7</Dame> <König>g1</König> <amZug/> </weiss> </Schach-Spielzustand> <!ELEMENT Schach-Spielzustand (schwarz, weiss)> <!ELEMENT schwarz (Bauer*, Turm*, Springer*, Läufer*, Dame*, König, amZug?)> <!ELEMENT weiss (Bauer*, Turm*, Springer*, Läufer*, Dame*, König, amZug?)> <!ELEMENT Bauer (#PCDATA)> <!ELEMENT Turm (#PCDATA)> <!ELEMENT Springer (#PCDATA)> <!ELEMENT Läufer (#PCDATA)> <!ELEMENT Dame (#PCDATA)> <!ELEMENT König (#PCDATA)> <!ELEMENT amZug EMPTY>

Ausblick: XML-Schema Nachteile von DTD: zu unflexibel Strukturbeschreibung mit einer DTD <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE Schach-Spielzustand SYSTEM "schach1.dtd"> <Schach-Spielzustand> <schwarz> <Bauer>b7</Bauer> <Bauer>e7</Bauer> <Bauer>d6</Bauer> <Bauer>b5</Bauer> <Bauer>f4</Bauer> <Springer>c6</Springer> <Läufer>e5</Läufer> <Dame>c4</Dame> <König>d7</König> </schwarz> <weiss> <Bauer>h5</Bauer> <Bauer>f2</Bauer> <Bauer>g2</Bauer> <Läufer>f5</Läufer> <Turm>f1</Turm> <Dame>f7</Dame> <König>g1</König> <amZug/> </weiss> </Schach-Spielzustand> nur bestimmte Feldbezeichner erlaubt mögliche Anzahl der Bauern: 0..8 <!ELEMENT Schach-Spielzustand (schwarz, weiss)> <!ELEMENT schwarz (Bauer*, Turm*, Springer*, Läufer*, Dame*, König, amZug?)> <!ELEMENT weiss (Bauer*, Turm*, Springer*, Läufer*, Dame*, König, amZug?)> <!ELEMENT Bauer (#PCDATA)> <!ELEMENT Turm (#PCDATA)> <!ELEMENT Springer (#PCDATA)> <!ELEMENT Läufer (#PCDATA)> <!ELEMENT Dame (#PCDATA)> <!ELEMENT König (#PCDATA)> <!ELEMENT amZug EMPTY>

Ausblick: XML-Schema Schach-Spielzustand - Version 2: Strukturbeschreibung mit einem XML-Schema <?xml version="1.0" encoding="iso-8859-1"?> <Schach-Spielzustand xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schach.xsd"> <schwarz> <Bauer>b7</Bauer> <Bauer>e7</Bauer> <Bauer>d6</Bauer> <Bauer>b5</Bauer> <Bauer>f4</Bauer> <Springer>c6</Springer> <Läufer>e5</Läufer> <Dame>c4</Dame> <König>d7</König> </schwarz> <weiss> <Bauer>h5</Bauer> <Bauer>f2</Bauer> <Bauer>g2</Bauer> <Turm>f1</Turm> <Läufer>f5</Läufer> <Dame>f7</Dame> <König>g1</König> <amZug/> </weiss> </Schach-Spielzustand> xsi: XML-schema-instance

Schema-Definition mit e. XML-basierten Sprache Ausblick: XML-Schema Schach-Spielzustand - Version 2: Schema-Definition mit e. XML-basierten Sprache <?xml version="1.0" encoding="iso-8859-1"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="Schach-Spielzustand"> <xs:annotation> <xs:documentation>Spielbrett während eines Schachspiels</xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="schwarz" minOccurs="1" maxOccurs="1"> <xs:element name="Bauer" minOccurs="0" maxOccurs="8"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-h][1-8]"></xs:pattern> </xs:restriction> </xs:simpleType> </xs:element> ... </xs:sequence> </xs:complexType> <xs:element name="weiss" minOccurs="1" maxOccurs="1">...</xs:element> </xs:schema>

Ausblick: XML-Schema Validierung: z. B. mit http://www.xmlvalidation.com/

Ausblick: XML-Schema "XML Schema ist eine Empfehlung des W3C zum Definieren von XML-Dokumentstrukturen. Anders als bei den klassischen XML-DTDs wird die Struktur in Form eines XML-Dokuments beschrieben. Darüber hinaus wird eine große Anzahl von Datentypen unterstützt. XML Schema ist eine komplexe Schemasprache zur Beschreibung eines XML-Typsystems. Dieses XML-Typsystem umfasst die Spezifikation neuer XML-Elemente, deren Attribute, sowie deren Kindelemente. Im Gegensatz zu DTDs kann bei Verwendung von XML Schema zwischen dem Namen des XML-Typs und dem in der Instanz verwendeten XML-Tagnamen unterschieden werden. Vermutlich werden DTDs irgendwann vollständig von XML-Schemata abgelöst. Allerdings sind XML-Schemata durch ihre erweiterten Möglichkeiten wesentlich komplexer und nicht so einfach ohne Hilfsmittel auszuwerten. ... Ein konkretes XML-Schema wird auch als eine XSD (XML-Schema-Definition) bezeichnet und hat üblicherweise die Dateiendung ".xsd"." Quelle: http://de.wikipedia.org/wiki/XML_Schema

Festlegung von Sprachen Teil 4 Festlegung von Sprachen

Einstieg - Probleme mit der Bedeutung <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE kr [ <!ELEMENT kr (mi, ra)> <!ELEMENT mi (x, y)> <!ELEMENT x (#PCDATA)> <!ELEMENT y (#PCDATA)> <!ELEMENT ra (#PCDATA)> ]> <kr> <mi> <x>267</x> <y>214</y> </mi> <ra>44</ra> </kr> Was beschreiben XML-Dokumente, die gültig bzgl. der DTD kr sind? <!ELEMENT hundeschule (windhund*, dackel*, bernhardiner*)> <!ELEMENT windhund (#PCDATA)> <!ELEMENT dackel (#PCDATA)> <!ELEMENT bernhardiner (#PCDATA)> Was beschreiben XML-Dokumente, die gültig bzgl. der DTD hundeschule sind?

Einstieg - Probleme mit der Bedeutung <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html SYSTEM "myxhtml.dtd"> <html> <head> <title>Steckbrief von Bailey</title> </head> <body> <h1>Steckbrief</h1> <p><img src="bailey1.jpg" alt="Foto von Bailey"/></p> <p>Ich heiße <em>Bailey</em>. Ich ...</p> ... </body> </html> Was beschreiben XML-Dokumente, die gültig bzgl. der DTD html in "myxhtml.dtd" sind? <!ELEMENT html (head, body)> <!ELEMENT head (title)> <!ELEMENT title (#PCDATA)> <!ELEMENT body (h1 | p | ul)+> <!ELEMENT h1 (#PCDATA | a | em)*> <!ELEMENT ul (li)*> <!ELEMENT p (#PCDATA | img | a | em)*> <!ELEMENT img EMPTY> <!ATTLIST img src CDATA #REQUIRED alt CDATA #REQUIRED> <!ELEMENT a (#PCDATA)> <!ATTLIST a href CDATA #REQUIRED > <!ELEMENT li (#PCDATA | img | a | em | ul)*> <!ELEMENT em (#PCDATA)>

Fachkonzept - Sprache Die Lexik einer Sprache beschreibt den Wortschatz einer Sprache, d.h. die Gesamtheit der Wörter der Sprache, die als Grundbausteine zur Verfügung stehen. Die Syntax einer Sprache beschreibt den Satzbau einer Sprache, d.h. wie aus Wörtern Sätze gebildet werden können. Üblicherweise wird sie durch eine Grammatik festgelegt. Die Semantik einer Sprache beschreibt die Beziehung zwischen Sprachelementen und ihrer Bedeutung. Pia fährt Rad. Paul hört Musik. Pia fährt Rad Paul hört Musik Pia Musik Paul. hört Paul fährt. Pia fährt Musik. Rad hört Paul.

Fachkonzept - Sprache Lexik <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE kr [ <!ELEMENT kr (mi, ra)> <!ELEMENT mi (x, y)> <!ELEMENT x (#PCDATA)> <!ELEMENT y (#PCDATA)> <!ELEMENT ra (#PCDATA)> ]> <kr> <mi> <x>267</x> <y>214</y> </mi> <ra>44</ra> </kr> XML-Elemente: <kr>...</kr>, <mi>...</mi>, ... gültige XML-Dokumente bzgl. DTD, z.B.: <?xml version="1.0" encoding="iso-8859-1"?> <kr> <mi> <x>267</x> <y>214</y> </mi> <ra>44</ra> </kr> Syntax Semantik? XML erlaubt es, neue Sprachen für bestimmte Problembereiche zu entwickeln. Eine XML-Dokumenttypdefinition legt die Lexik und Syntax einer Sprache fest. Die Sprache zu eine Dokumenttypdefinition besteht aus allen XML-Dokumenten, die gültig bzgl. der Dokumenttypdefinition sind.

Fachkonzept - Sprache <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html SYSTEM "myxhtml.dtd"> <html> <head> <title>Steckbrief von Bailey</title> </head> <body> <h1>Steckbrief</h1> <p><img src="bailey1.jpg" alt="Foto von Bailey"/></p> <p>Ich heiße <em>Bailey</em>. Ich ...</p> ... </body> </html> Die Elemente der Sprache MyXHTML heißen zwar genau so wie die der Sprache XHTML, die Bedeutung überträgt sich damit aber nicht automatisch. Für den Browser handelt es sich also nicht um ein interpretierbares XHTML-Dokument (das als Webseite dargestellt wird), sondern um ein XML-Dokument ohne spezielle Bedeutung. Eine XML-Dokumenttypdefinition legt also nicht die Semantik der Sprache fest. Diese muss zusätzlich festgelegt werden, z.B. durch ein Anwendungsprogramm.

XML-basierte Sprachen Teil 5 XML-basierte Sprachen

Einstieg - SVG Pixelgrafik Vektorgrafik PPM SVG P3 130 160 255 255 255 0 ... <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > <svg xmlns="http://www.w3.org/2000/svg" width="130" height="160"> <rect x="0" y="0" width="130" height="160" fill="yellow"></rect> <polygon points="100 0 0 60 30 90 20 110 60 100 70 130 60 140 110 160 130 120 110 70 90 80 90 70 110 50" fill="orange"> </polygon> <circle cx="80" cy="50" r="5" fill="red"></circle> <circle cx="35" cy="100" r="5" fill="red"></circle> <circle cx="80" cy="110" r="5" fill="red"></circle> <circle cx="105" cy="80" r="5" fill="red"></circle> <text x="2" y="10" font-size="10px" fill="blue">Informatikstudium in RLP</text> <text x="2" y="158" font-size="10px" fill="blue">KL - KO - MZ - TR</text> </svg> PPM SVG

Fachkonzept - Vektorgrafik Objekte bilden die Grundlage von Vektorgrafiken. Eine Vektorgrafik setzt sich aus geometrischen Objekten zusammen. Objektdiagramm

Fachkonzept - Vektorgrafik SVG steht für Scalable Vector Graphics. SVG ist eine Sprache, mit der man die Objekte einer Vektorgrafik beschreiben kann. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > <svg xmlns="http://www.w3.org/2000/svg" width="130" height="160"> <rect x="0" y="0" width="130" height="160" fill="yellow"></rect> <polygon points="100 0 0 60 30 90 20 110 60 100 70 130 60 140 110 160 130 120 110 70 90 80 90 70 110 50" fill="orange"> </polygon> <circle cx="80" cy="50" r="5" fill="red"></circle> <circle cx="35" cy="100" r="5" fill="red"></circle> <circle cx="80" cy="110" r="5" fill="red"></circle> <circle cx="105" cy="80" r="5" fill="red"></circle> <text x="2" y="10" font-size="10px" fill="blue">Informatikstudium in RLP</text> <text x="2" y="158" font-size="10px" fill="blue">KL - KO - MZ - TR</text> </svg> SVG-Quelltext

Fachkonzept - Vektorgrafik Ein SVG-Dokument kann mit einem Texteditor erstellt und dann von einem neueren Browser angezeigt werden. Man muss hierzu nur das SVG-Dokument in einer Datei mit der Erweiterung .svg abspeichern und diese Datei mit dem Browser laden. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > <svg xmlns="http://www.w3.org/2000/svg" width="130" height="160"> <rect x="0" y="0" width="130" height="160" fill="yellow"></rect> <polygon points="100 0 0 60 30 90 20 110 60 100 70 130 60 140 110 160 130 120 110 70 90 80 90 70 110 50" fill="orange"> </polygon> <circle cx="80" cy="50" r="5" fill="red"></circle> <circle cx="35" cy="100" r="5" fill="red"></circle> <circle cx="80" cy="110" r="5" fill="red"></circle> <circle cx="105" cy="80" r="5" fill="red"></circle> <text x="2" y="10" font-size="10px" fill="blue">Informatikstudium in RLP</text> <text x="2" y="158" font-size="10px" fill="blue">KL - KO - MZ - TR</text> </svg> SVG-Quelltext Einfacher geht es mit speziellen Vektorgrafikprogrammen wie Inkscape . Diese können SVG-Dokumente nicht nur anzeigen, sondern auch automatisch erstellen. SVG: siehe auch www.inf-schule.de

Einstieg - WML Hausaufgaben ... ... auf dem Handy! <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="start" title="Startseite"> <p> Hausaufgaben in<br/> <a href="#mathematik">Mathematik</a><br/> <a href="#deutsch">Deutsch</a><br/> <a href="#englisch">Englisch</a><br/> </p> </card> <card id="mathematik" title="Mathematik"> Seite 45 Aufgabe 3<br/> <a href="#start">Zurück zur Startseite</a> <card id="deutsch" title="Deutsch"> heute keine<br/> ... </wml>

Fachkonzept - Emulator Ein Emulator ist ein System, das ein anderes System simuliert. Es weist dasselbe Verhalten auf, kann aber dieses Verhalten mit völlig anderen Mitteln erzeugen. Zum Testen von WML-Seiten ist es günstig, Programme zu benutzen, die die Anzeige auf einem Handy-Display simulieren. Man nennt solche Programme WML-Browser-Emulatoren. http://www.winwap.com/products_2_3.php

Exkurs - WML "Wireless Markup Language (WML) ist eine XML-basierte Seitenbeschreibungssprache, die eine stark reduzierte Fassung von XHTML darstellt. Sie ist Teil des Wireless Application Protocol (WAP) und zur Darstellung veränderlicher Inhalte auf Mobiltelefonen entwickelt worden." (wikipedia) <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="start" title="Startseite"> <p> Hausaufgaben in<br/> <a href="#mathematik">Mathematik</a><br/> <a href="#deutsch">Deutsch</a><br/> <a href="#englisch">Englisch</a><br/> </p> </card> <card id="mathematik" title="Mathematik"> Seite 45 Aufgabe 3<br/> <a href="#start">Zurück zur Startseite</a> <card id="deutsch" title="Deutsch"> heute keine<br/> ... </wml> WML: siehe auch www.inf-schule.de

Exkurs - MathML MathML steht für Mathematical Markup Language. MathML ist eine Sprache, mit der man mathematische Ausdrücke beschreiben kann. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd"> <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> <row> <msup> <mi>a</mi> <mn>2</mn> </msup> <mo>+</mo> <mi>b</mi> </row> <mo>=</mo> <mi>c</mi> </mrow> </math>

Einstieg - XHTML+MathML+SVG <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Pythagoras</title> </head> <body> <h1>Satz des Pythagoras</h1> <p>In einem rechtwinkligen Dreieck mit den Katheten a und b sowie der Hypothenuse c gilt:</p> <p> <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> ... </mrow> </math> </p> <p>Die folgende Zeichnung verdeutlicht diesen Zusammenhang.</p> <svg width="160" height="160" xmlns="http://www.w3.org/2000/svg"> <rect x="40" y="80" width="40" height="40" fill="red"></rect> <rect x="80" y="50" width="30" height="30" fill="red"></rect> <polygon points="40 80 80 50 50 10 10 40 " fill="red"> </polygon> </svg> </body> </html> Webseite mit integrierten XML-Sprachen

Einstieg - XHTML+MathML+SVG <?xml version="1.0" encoding="ISO-8859-1"?> <seite xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:svg="http://www.w3.org/2000/svg"> <xhtml:body> <xhtml:h1>Satz des Pythagoras</xhtml:h1> <xhtml:p>In einem rechtwinkligen Dreieck mit den Katheten a und b sowie der Hypothenuse c gilt:</xhtml:p> <xhtml:p> <math:math> <math:mrow> ... </math:mrow> </math:math> </xhtml:p> <xhtml:p>Die folgende Zeichnung verdeutlicht diesen Zusammenhang.</xhtml:p> <svg:svg width="160" height="160"> <svg:rect x="40" y="80" width="40" height="40" fill="red"></svg:rect> <svg:rect x="80" y="50" width="30" height="30" fill="red"></svg:rect> <svg:polygon points="40 80 80 50 50 10 10 40 " fill="red"> </svg:polygon> </svg:svg> </xhtml:body> </seite> Mischung aus XML-Sprachen

Exkurs - Namensraum <?xml version="1.0" encoding="ISO-8859-1"?> <seite xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:svg="http://www.w3.org/2000/svg"> <xhtml:body> <xhtml:h1>Satz des Pythagoras</xhtml:h1> <xhtml:p>In einem rechtwinkligen Dreieck mit den Katheten a und b sowie der Hypothenuse c gilt:</xhtml:p> <xhtml:p> <math:math> <math:mrow> ... </math:mrow> </math:math> </xhtml:p> <xhtml:p>Die folgende Zeichnung verdeutlicht diesen Zusammenhang.</xhtml:p> <svg:svg width="160" height="160"> <svg:rect x="40" y="80" width="40" height="40" fill="red"></svg:rect> <svg:rect x="80" y="50" width="30" height="30" fill="red"></svg:rect> <svg:polygon points="40 80 80 50 50 10 10 40 " fill="red"> </svg:polygon> </svg:svg> </xhtml:body> </seite> Ein Namensraum ist eine Ansammlung von Namen für Elemente und Attribute. Ein veröffentlichter Namensraum muss mit einem weltweit eindeutigen Namen versehen werden. Dieser Identifikator wird in einer Namensraumdeklaration angegeben. Namensräume

XML-Dokumente und das Document Object Model Teil 6 XML-Dokumente und das Document Object Model

Einstieg - Erkundung des DOM-Baumes <?xml version="1.0" encoding="iso-8859-1"?> <kr><mi><x>210</x><y>267</y></mi><ra>44</ra></kr> DOM-Baum DOM-Baum

Einstieg - Erkundung des DOM-Baumes <?xml version="1.0" encoding="iso-8859-1"?> <kr><mi><x>210</x><y>267</y></mi><ra>44</ra></kr> DOM-Baum Erkunden Sie mit dem Python-Programm "dombaum.pyw" die Baumstruktur eines XML-Dokuments. Versuchen Sie, alle Knoten des Baumes mit Hilfe der die Operationen parentNode, previousSibling, nextSibling, firstChild, lastChild zu besuchen.

Einstieg - Erkundung des DOM-Baumes <?xml version="1.0" encoding="iso-8859-1"?> <kr><mi><x>210</x><y>267</y></mi><ra>44</ra></kr> # -*- coding: iso-8859-1 -*- from xml.dom.minidom import * # Quelltext in einen DOM-Baum umwandeln xml_quelltext = """<?xml version="1.0" encoding="iso-8859-1"?> <kr><mi><x>210</x><y>267</y></mi><ra>44</ra></kr>""" document = parseString(xml_quelltext) # Navigation im DOM-Baum aktuellerKnoten = document print aktuellerKnoten.nodeName aktuellerKnoten = aktuellerKnoten.firstChild aktuellerKnoten = aktuellerKnoten.nextSibling # ... DOM-Baum Das Python-Programm zeigt, wie man aus einem XML-Quelltext einen DOM-Baum erzeugt und wie man mit Hilfe von Operationen im DOM-Baum navigiert. Testen und ergänzen Sie das Python-Programm.

Einstieg - Erkundung des DOM-Baumes # -*- coding: iso-8859-1 -*- from xml.dom.minidom import * # Quelltext in einen DOM-Baum umwandeln xml_quelltext = """<?xml version="1.0" encoding="iso-8859-1"?> <kr><mi><x>210</x><y>267</y></mi><ra>44</ra></kr>""" document = parseString(xml_quelltext) # Verarbeitung eines DOM-Baumes def mittelpunkt(doc): k = doc k = k.firstChild # kr k = k.firstChild # mi k = k.firstChild # x k = k.firstChild # #text x = int(k.nodeValue) k = k.parentNode # x k = k.nextSibling # y y = int(k.nodeValue) return (x, y) # Test print mittelpunkt(document) Das folgende Python-Programm zeigt, wie man einen DOM-Baum verarbeitet. Testen Sie das Python-Programm. Was berechnet die Funktion mittelpunkt? Entwickeln Sie analog eine Funktion radius. DOM-Baum

Einstieg - Erkundung des DOM-Baumes # -*- coding: iso-8859-1 -*- from xml.dom.minidom import * # Quelltext in einen DOM-Baum umwandeln xml_quelltext = """<?xml version="1.0" encoding="iso-8859-1"?> <kr> <mi> <x>210</x> <y>267</y> </mi> <ra>44</ra> </kr>""" document = parseString(xml_quelltext) # Verarbeitung eines DOM-Baumes def mittelpunkt(doc): # ... wie bisher ... return (x, y) # Test print mittelpunkt(document) Wir ändern den XML-Quelltext geringfügig ab, indem wir Zeilenumbrüche und Leerzeichen integrieren. Wie wirkt sich dies auf den DOM-Baum aus? Welche Konsequenzen ergeben sich für die Funktion mittelpunkt? DOM-Baum

Einstieg - Erkundung des DOM-Baumes # -*- coding: iso-8859-1 -*- from xml.dom.minidom import * # Quelltext in einen DOM-Baum umwandeln xml_quelltext = """<?xml version="1.0" encoding="iso-8859-1"?> <kr> <mi> <x>210</x> <y>267</y> </mi> <ra>44</ra> </kr>""" document = parseString(xml_quelltext) # Verarbeitung eines DOM-Baumes def mittelpunkt(doc): k = doc xKnoten = k.getElementsByTagName("x") x = xKnoten[0].firstChild.nodeValue yKnoten = k.getElementsByTagName("y") y = yKnoten[0].firstChild.nodeValue return (x, y) # Test print mittelpunkt(document) Teste diese Implementierung der Funktion mittelpunkt mit verschieden formatierten XML-Dokumenten (ohne / mit Zeilenümbrüche etc.). Welchen Vorteil hat es, die Operation getElementsByTagName zu benutzen? Implementieren Sie analog die Funktion radius. DOM-Baum

Exkurs - Das Document Object Model Das Document Object Model (DOM) ist eine standardisierte Spezifikation einer Schnittstelle für den Zugriff auf XML-Dokumente. Die Grundidee des DOM besteht darin, ein XML-Dokument in Baumform mit Hilfe geeigneter Objekte zu repräsentieren. DOM-Baum Um einen solchen Baum mit Hilfe von Objekten darzustellen, benötigt man einen geeigneten Satz von Klassen zusammen mit deren Methoden und Attributen. Dieser Satz von Klassen wird in der DOM-Spezifikation genau beschrieben und in einer DOM-Implementierung ausprogrammiert.

Exkurs - Das Document Object Model Die Basisklasse zur Realisierung eines DOM-Baumes ist die Klasse Node. Objekte dieser Klasse verfügen über geeignete Attribute, um einen Baum zu erstellen und um die Daten der XML-Elemente zu speichern. DOM-Baum Node-Objekte

Exkurs - Das Document Object Model Die Basisklasse Node ist weiter spezialisiert zu den Klassen Document (zur Verwaltung des gesamten XML-Dokuments), Element (zur Verwaltung von XML-Elementen) und Text (zur Verwaltung von Textpassagen). Diese abgeleiteten Klassen stellen zusätzliche Attribute und Methoden zur Verwaltung und Verarbeitung eines DOM-Baumes zur Verfügung.

Exkurs - Das Document Object Model Mit Hilfe der Operationen dieser Klassen lässt sich die Verarbeitung eines DOM-Baumes recht einfach realisieren. # Verarbeitung eines DOM-Baumes def mittelpunkt(doc): k = doc xKnoten = k.getElementsByTagName("x") x = int(xKnoten[0].firstChild.data) yKnoten = k.getElementsByTagName("y") y = int(yKnoten[0].firstChild.data) return (x, y) # Test print mittelpunkt(document)

Miniprojekt - Automatensimulator Ziel ist es, einen von JFlap erzeugten XML-Quelltext zur Beschreibung eines endlichen Automaten mit Hilfe eines selbst entwickelten Automatensimulators zu verarbeiten. Dieser Simulator muss also XML-Quelltexte wie den folgenden verarbeiten können. <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!--Created with JFLAP 6.4.--> <structure> <type>fa</type> <automaton> <!--The list of states.--> <state id="0" name="q0"> <x>60.0</x> <y>59.0</y> <initial/> </state> ... <!--The list of transitions.--> <transition> <from>4</from> <to>5</to> <read>b</read> </transition> </automaton> </structure>

Miniprojekt - Automatensimulator # -*- coding: iso-8859-1 -*- from xml.dom.minidom import * # Anfangszustand def anfangszustand(baum): z = None k_initial_liste = baum.getElementsByTagName("initial") if k_initial_liste != []: k_state = k_initial_liste[0].parentNode z = k_state.getAttribute("id") return z # Einlesen des XML-Quelltextes f_xml = file("email.jff", "r") xml_quelltext = f_xml.read() # Initialisierung des DOM-Baums dombaum = parseString(xml_quelltext) wurzel = dombaum.documentElement # Test z = anfangszustand(wurzel) print z Analysieren Sie zunächst den gezeigten Python-Quelltext. Was leistet die Funktion "anfangszustand"? Benutzen Sie die Datei "email.jff" zum Testen.

Miniprojekt - Automatensimulator # -*- coding: iso-8859-1 -*- from xml.dom.minidom import * # Anfangszustand def anfangszustand(baum): ... # nächster Zustand def naechsterzustand(baum, zustand, eingabe): # Endzustand def endzustand(baum, zustand): Entwickeln Sie analog die Funktionen "naechsterzustand" und "endzustand".

Miniprojekt - Automatensimulator ... # Einlesen des XML-Quelltextes f_xml = file("email.jff", "r") xml_quelltext = f_xml.read() # Initialisierung des DOM-Baums dombaum = parseString(xml_quelltext) wurzel = dombaum.documentElement # Test wort = "bbb@b.bb" z = anfangszustand(wurzel) print z for w in wort: z = naechsterzustand(wurzel, z, w) if endzustand(wurzel, z): print "akzeptiert" else: print "nicht akzeptiert" Testen Sie den entwickelten Automatensimulator.

Miniprojekt - Automatensimulator def naechsterzustand(baum, zustand, eingabe): z = None k_transition_liste = baum.getElementsByTagName("transition") for k in k_transition_liste: k_from_liste = k.getElementsByTagName("from") k_to_liste = k.getElementsByTagName("to") k_read_liste = k.getElementsByTagName("read") az = k_from_liste[0].firstChild.data zz = k_to_liste[0].firstChild.data e = k_read_liste[0].firstChild.data if (az == zustand) and (e == eingabe): z = zz return z # Endzustand def endzustand(baum, zustand): ez = False k_final_liste = baum.getElementsByTagName("final") for k in k_final_liste: if k.parentNode.getAttribute("id") == zustand: ez = True return ez

Verarbeitung von Sprachen Teil 7 Verarbeitung von Sprachen

Einstieg - Verarbeitung von Grafik-Dok. Ziel ist es, XML-Grafik-Dokumente so zu verarbeiten, dass eine Grafik entsteht. <?xml version="1.0" encoding="iso-8859-1"?> <grafik> <rechteck> <ecke> <x>20</x> <y>50</y> </ecke> <laenge>80</laenge> <breite>40</breite> </rechteck> grafik.xml

Einstieg - Verarbeitung von Grafik-Dok. def verarbeiteRechteck(knoten): x_knoten = knoten.getElementsByTagName("x") y_knoten = knoten.getElementsByTagName("y") laenge_knoten = knoten.getElementsByTagName("laenge") breite_knoten = knoten.getElementsByTagName("breite") ecke_x = int(x_knoten[0].firstChild.data) ecke_y = int(y_knoten[0].firstChild.data) laenge = int(laenge_knoten[0].firstChild.data) breite = int(breite_knoten[0].firstChild.data) t.up() t.forward(ecke_x) t.left(90) t.forward(ecke_y) t.right(90) t.down() t.forward(laenge) t.forward(breite) rechteck.xml def verarbeiten(quelltext): dokument = parseString(quelltext) rechteck_knoten = dokument.getElementsByTagName("rechteck") for knoten in rechteck_knoten: verarbeiteRechteck(knoten)

Einstieg - Verarbeitung von Grafik-Dok. # -*- coding: iso-8859-1 -*- from turtle import * t = Turtle() from xml.dom.minidom import * def verarbeiteRechteck(knoten): x_knoten = knoten.getElementsByTagName("x") y_knoten = knoten.getElementsByTagName("y") laenge_knoten = knoten.getElementsByTagName("laenge") ... def verarbeiten(quelltext): dokument = parseString(quelltext) rechteck_knoten = dokument.getElementsByTagName("rechteck") for knoten in rechteck_knoten: verarbeiteRechteck(knoten) # Test f_xml = file("grafik.xml", "r") xml_quelltext = f_xml.read() print xml_quelltext verarbeiten(xml_quelltext)

Fachkonzept - Interpreter Ein Interpreter ist ein Programm, das Sätze einer Sprache schrittweise ausführt (interpretiert). # -*- coding: iso-8859-1 -*- from turtle import * t = Turtle() from xml.dom.minidom import * def verarbeiteRechteck(knoten): x_knoten = knoten.getElementsByTagName("x") y_knoten = knoten.getElementsByTagName("y") laenge_knoten = knoten.getElementsByTagName("laenge") ... def verarbeiten(quelltext): dokument = parseString(quelltext) rechteck_knoten = dokument.getElementsByTagName("rechteck") for knoten in rechteck_knoten: verarbeiteRechteck(knoten)

Einstieg - Verarbeitung von Grafik-Dok. def verarbeiten(quelltext): svg_dokument = svg_prolog + svg_starttag dokument = parseString(quelltext) rechteck_knoten = dokument.getElementsByTagName("rechteck") for knoten in rechteck_knoten: x_knoten = knoten.getElementsByTagName("x") y_knoten = knoten.getElementsByTagName("y") laenge_knoten = knoten.getElementsByTagName("laenge") breite_knoten = knoten.getElementsByTagName("breite") if x_knoten != []: ecke_x = x_knoten[0].firstChild.data if y_knoten != []: ecke_y = y_knoten[0].firstChild.data if laenge_knoten != []: laenge = laenge_knoten[0].firstChild.data if breite_knoten != []: breite = breite_knoten[0].firstChild.data svg_rect = "" svg_dokument = svg_dokument + svg_rect svg_dokument = svg_dokument + svg_endtag return svg_dokument

Einstieg - Verarbeitung von Grafik-Dok. # -*- coding: iso-8859-1 -*- from xml.dom.minidom import * # Konstanten svg_prolog = """<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' >""" svg_starttag = """ <svg xmlns='http://www.w3.org/2000/svg' width='400' height='400'> """ svg_endtag = """ </svg>""" # Verarbeitung def verarbeiten(quelltext): # siehe ... # Test f_xml = file("grafik.xml", "r") xml_quelltext = f_xml.read() svg_quelltext = verarbeiten(xml_quelltext) f_svg = file("grafik.svg", "w") f_svg.write(svg_quelltext) f_svg.close()

Fachkonzept - Compiler Ein Compiler ist ein Programm, das Sätze einer Sprache in eine andere Sprache übersetzt. <?xml version="1.0" encoding="iso-8859-1"?> <grafik> <rechteck> <ecke> <x>20</x> <y>50</y> </ecke> <laenge>80</laenge> <breite>40</breite> </rechteck> grafik <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' > <svg xmlns='http://www.w3.org/2000/svg' width='400' height='400'> <rect x='20' y='50' width='80' height='40'></rect> </svg> svg

XML im Informatikunterricht Teil 8 XML im Informatikunterricht

Lehrplan für das Grundfach Informatik fundamentale Idee unterrichtliche Umsetzung Darstellung mit formalen Sprachen XML

Darstellung mit formalen Sprachen Fundamentale Ideen Eine fundamentale Idee bzgl. einer Gegenstandsbereichs ist ein Denk-, Handlungs-, Beschreibungs- oder Erklärungsschema, das in verschiedenen Gebieten des Bereichs vielfältig anwendbar oder erkennbar ist. (Horizontalkriterium) auf jedem intellektuellen Niveau aufgezeigt und vermittelt werden kann. (Vertikalkriterium) in der Entwicklung des Bereichs deutlich wahrnehmbar ist und längerfristig relevant bleibt. (Zeitkriterium) einen Bezug zu Sprache und Denken des Alltags und der Lebenswelt besitzt. (Sinnkriterium) fachliche Bedeutung fachliche Bedeutung Vermittelbarkeit Vermittelbarkeit Vgl.: Schubert / Schwill: Didaktik der Informatik, S. 86 ff Nach: J. S. Bruner: The Process of Education. 1960. Darstellung mit formalen Sprachen

Fachgegenstand → Lerngegenstand Klasse 1: Anwendung auch außerhalb der Informatik (Bsp.: Problemlösestrategie) Klasse 2: Charakteristisch für alle Informatiksysteme (Bsp.: Komplexität) Klasse 3: Relevant für eine Klasse von Informatiksystemen (Bsp.: Datenstruktur) Klasse 4: Relevant für ein spezielles System (Bsp.: Syntax einer Programmiersprache) Je weiter oben / unten ein Fachgegenstand in der Klassifikation eingeordnet werden kann, desto eher / weniger eignet er sich als Lerngegenstand. Formale Sprachen Validierer XML ODF Nach P. Hubwieser: Didaktik der Informatik, S. 83 ff Inhaltliche Ausrichtung des Unterrichts an fundamentalen Fachkonzepten der Informatik

Problemorientierter Unterricht Gestaltung problemorientierter Lernumgebungen Situiert und anhand authentischer Probleme lernen: Lernen an aktuelle Probleme, authentische Fälle oder persönliche Erfahrungen anknüpfen. In multiplen Kontexten lernen: Gelerntes in unterschiedlichen Anwendungssituationen erproben. Unter multiplen Perspektiven lernen: Gelerntes unter verschiedenen Sichtweisen betrachten. In einem sozialen Kontext lernen: Probleme gemeinsam mit einem Partner oder in einer Gruppe bearbeiten. ... Siehe: Hense, Mandl, Gräsel: Problemorientiertes Lernen. In. CuU 44/2001, S. 6ff. Orientierung an konkreten Problemstellungen bei der Gestaltung des Unterrichts.

Kompetenzorientierter Unterricht Kompetenz: notwendige Fähigkeiten und Fertigkeiten, in unterschiedlichen lebensweltlichen Situationen Probleme zu lösen und die Bereitschaft, dies zu tun Ein Schüler besitzt also dann Kompetenz, wenn er seine Fähigkeiten nutzen kann, auf vorhandenes Wissen zurückgreifen und sich auch neues Wissen beschaffen kann, zentrale Zusammenhänge des jeweiligen Faches versteht, angemessene Handlungsentscheidungen treffen kann, bei der Durchführung der Handlung auf verfügbare Fähigkeiten zurückgreift, diese Gelegenheiten zum Sammeln von Erfahrungen nutzt und aufgrund handlungsbegleitender Kognitionen genügend Motivation zu angemessenem Handeln hat. Information zur Weiterverarbeitung in Informatiksystemen aufbereiten ... (Grundfach-LP) Siehe: LOGIN 154/155, S. 33 Kompetenzentwicklung erfordert handlungsorientierte Auseinandersetzung mit Fachkonzepten in geeigneten (speziellen) Kontexten

Thesen XML ist heute schon Standard bei der strukturierten Darstellung von Information und sollte daher im IU thematisiert werden. XML ist die Basis von XHTML (DOCTYPE ...). Eine kurze Behandlung trägt zum vertieften Verständnis von XHTML bei. XML ist ein guter Ausgangspunkt zur Behandlung des Themas "formale Sprachen" (Grammatik, Parser, ...). XML kann (im LK) als Ausgangspunkt zur Behandlung des Themas "Bäume" genutzt werden. Mit XML können fundamentale Ideen der Informatik mit sehr aktuellen Unterrichtsbeispielen (WML, ...) behandelt werden ("IU am Puls der Zeit").

Literaturhinweise Folgende Materialien wurden hier benutzt: J.-C. Hanke: XML leicht & verständlich. KnowWare. H. Vonhoegen: Einstieg in XML. Galileo Computing 2005. G. Born: XML. Markt+Technik 2005. M. Näf: Einführung in XML. http://www.swisseduc.ch/informatik/programmiersprachen/xml_einfuehrung/index.html M. Jeckle: Vorlesung XML. http://www.jeckle.de/vorlesung/xml/script.html XML in 10 Punkten: http://www.w3c.de/Misc/XML-in-10-Punkten.html SELFHTML: http://de.selfhtml.org/xml/index.htm Weitere benutzte Materialien sind auf den jeweiligen Folien zitiert.