115
Informationsdarstellung mit XML Klaus Becker 2007

Informationsdarstellung mit XML Klaus Becker 2007

Embed Size (px)

Citation preview

Page 1: Informationsdarstellung mit XML Klaus Becker 2007

Informationsdarstellung mit XML

Klaus Becker

2007

Page 2: Informationsdarstellung mit XML Klaus Becker 2007

2 Ziele und Inhalte

<?xml version="1.0" encoding="ISO-8859-1"?><Fortbildung> <Titel>Informationsdarstellung mit XML</Titel> <Ziele> <Ziel>Einblick in XML</Ziel> <Ziel>XML - ein Thema für den Informatikunterricht</Ziel> <Ziel>Informatikunterricht am Puls der Zeit</Ziel> </Ziele> <Inhalte> <Inhalt>Ein Blick hinter die Kulissen</Inhalt> <Inhalt>Grundlagen von XML</Inhalt> <Inhalt>Dokumenttypen und ihre Validierung</Inhalt> <Inhalt>XML-basierte Sprachen</Inhalt> <Inhalt>Exkurs: Namensräume, Formatierung, ...</Inhalt> <Inhalt>Verarbeitung von XML-Dokumenten</Inhalt> </Inhalte></Fortbildung>

Page 3: Informationsdarstellung mit XML Klaus Becker 2007

3 Teil 1

Ein Blick hinter die Kulissen

Page 4: Informationsdarstellung mit XML Klaus Becker 2007

4 Textverarbeitung

Mit OpenOffice wurde ein Text über den Kölner Dom erstellt und anschließend in verschiedenen Ausgabeformaten abgespeichert ...

Page 5: Informationsdarstellung mit XML Klaus Becker 2007

5 Darstellung des Textes

... als MS-Word-Datei (siehe "dom_koeln.doc"). Mit einem Text-Editor geöffnet sieht diese Datei so aus:

Page 6: Informationsdarstellung mit XML Klaus Becker 2007

6 Darstellung des Textes

... als OpenOffice-Datei (siehe "dom_koeln.odt"). Mit einem Text-Editor geöffnet sieht diese Datei noch unverständlicher aus.

Page 7: Informationsdarstellung mit XML Klaus Becker 2007

7 Darstellung des Textes

Wenn man die von OpenOffice erzeugte Datei "dom_koeln.odt" entpackt, klärt sich einiges (siehe "content.xml").

Page 8: Informationsdarstellung mit XML Klaus Becker 2007

8 Darstellung des Textes

... als DocBook-Datei (siehe "dom_koeln.xml"). Hier kann man deutlich die Struktur des Textes ablesen.

Page 9: Informationsdarstellung mit XML Klaus Becker 2007

9 Erstellung von Struktogrammen

Mit Hilfe von verschiedenen Struktogramm-Editoren wurde der Algorithmus zur Berechnung des ggT in Struktogrammform dargestellt:

StruktEdit

NSCEdit

Page 10: Informationsdarstellung mit XML Klaus Becker 2007

10 Datei-Formate zur Darstellung

StruktEdit-Datei betrachtet mit

einem Hex-Editor

NSCEdit-Datei betrachtet mit einem Text-

Editor

Page 11: Informationsdarstellung mit XML Klaus Becker 2007

11 Automatensimulator

Das Simulationsprogramm JFlap wurde in den letzten Jahren mehrfach überarbeitet und weiterentwickelt. Insbesondere wurde auch das Speicherformat verändert. Zunächst sah dies so aus (JFlap40b8):

Page 12: Informationsdarstellung mit XML Klaus Becker 2007

12 Automatensimulator

In den neueren Versionen sieht das so aus (JFlap40b14):

Page 13: Informationsdarstellung mit XML Klaus Becker 2007

13 Aufgabe

Viele Programme speichern Daten heute im XML-Format. Um den Speicherbedarf zu verringern, werden die Daten zusätzlich komprimiert.

Beispiel: GeoGebra

Benennen Sie eine mit GeoGebra erstellte Datei (z. B. grenzwert_mit_streifen.ggb) geeignet um (grenzwert_mit_streifen.zip) und entpacken Sie sie. Schauen Sie sich die entpackte Datei mit einem Editor an.

Page 14: Informationsdarstellung mit XML Klaus Becker 2007

14 Aufgabe

Die Geschichte des Kölner Doms beginnt im Jahre 1248 mit der Grundsteinlegung für den Chor, der gigantisch war für mittelalterliche Maßstäbe. Es folgten der Abriss des alten Langhauses, die Arbeit an den Westtürmen - auch deren Ausmaße sprengten die damals üblichen Dimensionen. Allein diese Bauarbeiten dauern drei ganze Jahrhunderte, während derer man sich konsequent an die alten Baupläne hielt. Digital verschlüsselte Daten auf nicht beständigen Datenträgern wären zu dem Zeitpunkt längst unlesbar gewesen.

Doch im 16. Jahrhundert kommen die Bauarbeiten am Großprojekt Dom zum Erliegen. Die genaue Ursache ist bis heute unbekannt. Der Dom bleibt unvollendet, eine Bauruine, und zwar ganze 300 Jahre lang. Erst zu Beginn des 19. Jahrhunderts kommt plötzlich wieder Bewegung in das Projekt "Dom". Und noch immer existiert der mittelalterliche Bauplan. 600 Jahre ist er mittlerweile alt. Das Pergament brüchig, die Tinte vergilbt und - uncodiert. Und damit ohne jegliche Software oder Hardware lesbar. Wäre er digital gespeichert gewesen, wohl niemand hätte nach sechs Jahrhunderten geschafft, ihn zu lesen.

Doch mit einem Plan aus Tinte und Pergament war es kein Problem, den Dom bis zum Ende des 19. Jahrhunderts genau so zu vollenden, wie es sich sein visionärer mittelalterlicher Baumeister einst ausgedacht hat. (Quelle: http://www.wdr.de/tv/q21/1058.0.phtml)

Lesen Sie den unten abgebildeten Text. Vergleichen die Situation der Baumeister mit heutigen Nutzern von digital gespeicherter Information. Welche Vorteile bietet eine XML-basierte Darstellung?

Page 15: Informationsdarstellung mit XML Klaus Becker 2007

15 Aufgabe

Im Ordner "Material_Datenbank" finden Sie Daten aus einer Datenbank , die im XML-Format exportiert worden sind.

Warum macht es Sinn, einen solchen Datenexport anzubieten?

<?xml version="1.0" encoding="utf-8" ?><wm-stufe1> <!-- Tabelle begegnung --> <begegnung> <Team1>Deutschland</Team1> <Team2>Costa Rica</Team2> <Ergebnis>4:2</Ergebnis> <Datum>2006-06-09</Datum> <Ort>Muenchen</Ort> </begegnung> <begegnung> <Team1>Polen</Team1> <Team2>Ecuador</Team2> <Ergebnis>0:2</Ergebnis> <Datum>2006-06-09</Datum> <Ort>Gelsenkirchen</Ort> </begegnung> ...</wm-stufe1>

Page 16: Informationsdarstellung mit XML Klaus Becker 2007

16 Aufgabe

Verschaffen Sie sich einen ersten Überblick über XML. Lesen Sie sich hierzu die Seite "XML in 10 Punkten" durch.

1. XML steht für strukturierte Daten2. XML sieht ein wenig wie HTML aus3. XML ist Text, aber nicht zum Lesen4. XML ist vom Design her ausführlich5. XML ist eine Familie von Techniken6. XML ist neu, aber nicht so neu7. XML überführt HTML in XHTML8. XML ist modular9. XML ist die Basis für RDF und das Semantic Web10. XML ist lizenzfrei, plattformunabhängig und gut unterstützt

siehe: http://www.w3c.de/Misc/XML-in-10-Punkten.html

Page 17: Informationsdarstellung mit XML Klaus Becker 2007

17

Datenrepräsentation bei Werkzeugen

GGT

Eingabe: x, y

SOLANGE y > 0

h := x mod y

x := y

y := h

Ausgabe: x

StruktEdit:proprietäres

Format

Repräsentieren Interpretieren Repräsentieren Interpretieren

<?xml version="1.0" encoding="UTF-8"?><nsc version="0.2"><sequence><statement><text><span>Eingabe: x, y</span></text></statement><whileloop><text><span>SOLANGE y &gt; 0</span></text><sequence><statement><text><span>h := x mod y</span></text>...

NSCEdit:standardisiertes

Format

Page 18: Informationsdarstellung mit XML Klaus Becker 2007

18 Datenrepräsentation mit XML

<?xml version="1.0" encoding="UTF-8"?><nsc version="0.2"><sequence><statement><text><span>Eingabe: x, y</span></text></statement><whileloop><text><span>SOLANGE y &gt; 0</span></text><sequence><statement><text><span>h := x mod y</span></text>...

NSCEdit:standardisiertes

Format

XML steht für Extensible Markup Language. XML wird benutzt, um Daten strukturiert darzustellen.

Daten können auf ganz unterschiedliche Weise dargestellt und auch strukturiert werden. XML bietet eine Art Standard zur Strukturierung von Daten, den inzwischen sehr viele Werkzeuge nutzen.

Page 19: Informationsdarstellung mit XML Klaus Becker 2007

19 Teil 2

Grundlagen von XML

Page 20: Informationsdarstellung mit XML Klaus Becker 2007

20

Strukturierte Darstellung v. Information

XML-Dokumente werden benutzt, um Information strukturiert darzustellen.<?xml version="1.0" encoding="UTF-8"?><!--Created with JFLAP 4.0b14.--><structure> <type>fa</type> <!--The list of states.--> <state id="0"> <x>119.0</x> <y>101.0</y> </state> <state id="1"> <x>119.0</x> <y>101.0</y> <initial/> <final/> </state> <state id="2"> <x>248.0</x> <y>101.0</y> </state> <!--The list of transitions.--> <transition> <from>2</from> <to>1</to> <read>1</read> </transition> ...</structure>

<?xml version="1.0" encoding="UTF-8"?><nsc version="0.2"> <sequence> <statement> <text> <span>Eingabe: x, y</span> </text> </statement> <whileloop> <text> <span>SOLANGE y &gt; 0</span> </text> <sequence> <statement> <text> <span>h := x mod y</span> </text> </statement> ... </sequence> </whileloop> ... </sequence> <text> <span>GGT</span> </text></nsc>

Page 21: Informationsdarstellung mit XML Klaus Becker 2007

21 Aufgabe

Schauen Sie sich ein XML-Dokument mit einem geeigneten Browser an.<?xml version="1.0" encoding="UTF-8"?><nsc version="0.2"> <sequence> <statement> <text> <span>Eingabe: x, y</span> </text> </statement> <whileloop> <text> <span>SOLANGE y &gt; 0</span> </text> <sequence> <statement> <text> <span>h := x mod y</span> </text> </statement> ... </sequence> </whileloop> ... </sequence> <text> <span>GGT</span> </text></nsc>

Anzeige mit einem Browser

Darstellung im Editor

Page 22: Informationsdarstellung mit XML Klaus Becker 2007

22 Hierarchische Baumstruktur

Die Strukturierung erfolgt in Form eines Baumes.

<?xml version="1.0" encoding="UTF-8"?><nsc version="0.2"> <sequence> <statement> <text> <span>Eingabe: x, y</span> </text> </statement> <whileloop> <text> <span>SOLANGE y &gt; 0</span> </text> <sequence> <statement> <text> <span>h := x mod y</span> </text> </statement> ... </sequence> </whileloop> ... </sequence> <text> <span>GGT</span> </text></nsc>

Anzeige mit einem Browser

Page 23: Informationsdarstellung mit XML Klaus Becker 2007

23 Der Baum der Elemente

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).

Das erste Element eines XML-Dokuments ist das Wurzelelement, das alle anderen Elemente in sich einschließt.Ein XML-Dokument vermischt also Inhalte mit Informationen über diese Inhalte (Meta-Information).

Wurzelelement

Element mit Zeicheninhalt

Element als Container

Page 24: Informationsdarstellung mit XML Klaus Becker 2007

24 Tags

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

leeres Element

Page 25: Informationsdarstellung mit XML Klaus Becker 2007

25 Attribute

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

Page 26: Informationsdarstellung mit XML Klaus Becker 2007

26 Kommentare

Kommentare erleichtern das Verständnis und werden vom Browser mit angezeigt.

<?xml version="1.0" encoding="UTF-8"?><!--Created with JFLAP 4.0b14.--><structure> <type>fa</type> <!--The list of states.--> <state id="0"> <x>119.0</x> <y>101.0</y> </state> <state id="1"> <x>119.0</x> <y>101.0</y> <initial/> <final/> </state> <state id="2"> <x>248.0</x> <y>101.0</y> </state> <!--The list of transitions.--> <transition> <from>2</from> <to>1</to> <read>1</read>...</structure>

Kommentar

Page 27: Informationsdarstellung mit XML Klaus Becker 2007

27 Prolog

Ein XML-Dokument beginnt in der Regel mit dem Prolog <?xml ... ?>. Der Prolog sollte hier stehen, um das Dokument als XML-Dokument zu kennzeichnen.

<?xml version="1.0" encoding="UTF-8"?><!--Created with JFLAP 4.0b14.--><structure> <type>fa</type> <!--The list of states.--> <state id="0"> <x>119.0</x> <y>101.0</y> </state> <state id="1"> <x>119.0</x> <y>101.0</y> <initial/> <final/> </state> <state id="2"> <x>248.0</x> <y>101.0</y> </state> <!--The list of transitions.--> <transition> <from>2</from> ...</structure>

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.

Page 28: Informationsdarstellung mit XML Klaus Becker 2007

28 Wohlgeformtheit

Ein XML-Dokument, das alle syntaktischen Bedingungen erfüllt, heißt wohlgeformt.

wohlgeformte XML-Dokumente

beachte:Nur wohlgeformte XML-Dokumente werden vom Browser in Baumform angezeigt.

Page 29: Informationsdarstellung mit XML Klaus Becker 2007

29 Aufgabe

Versuchen Sie, nicht-wohlgeformte XML-Dokumente mit dem Browser anzuzeigen. Testen Sie verschiedene Fälle:

- die Tag-Namen stimmen nicht exakt überein

- die Klammerung ist nicht korrekt

- der Attributwert fehlt / ist nicht in Anführungszeichen geschrieben

...

Page 30: Informationsdarstellung mit XML Klaus Becker 2007

30 Aufgabe

Was geschieht, wenn man die Elementstruktur verändert. Lassen Sie gezielt Tags weg bzw. verändern Sie gezielt die Baumstruktur, ohne gegen die Syntaxregeln von XML zu verstoßen.

<?xml version="1.0" encoding="UTF-8"?><nsc version="0.2"> <sequence> <statement> <text> <span>Eingabe: x, y</span> </text> </statement> <whileloop> <text> <span>SOLANGE y &gt; 0</span> </text> <sequence> <statement> <text> <span>h := x mod y</span> </text> </statement> ... </sequence> </whileloop> ...

</nsc>

weglassen

Page 31: Informationsdarstellung mit XML Klaus Becker 2007

31 Aufgabe

Versuchen Sie, eine neue Anweisung im Struktogramm zur Berechnung des GGT einzufügen (z. B. die Zuweisung h := 0 nach der Eingabe). Benutzen Sie aber nicht die Struktogramm-Editoren, sondern versuchen Sie es direkt im "Quelltext". Öffnen Sie anschließend den Quelltext mit dem entsprechenden Struktogrammeditor. Welche Unterschiede zeigen sich zwischen den verschiedenen Datenformaten? Vergleichen Sie mit der Situation beim Bau des Kölner Doms.

Page 32: Informationsdarstellung mit XML Klaus Becker 2007

32 Aufgabe

Eine Bank möchte Daten von Überweisungen mit Hilfe von XML strukturiert darstellen. Entwerfen Sie ein passendes XML-Dokument.

Page 33: Informationsdarstellung mit XML Klaus Becker 2007

33 Aufgabe

Entwickeln Sie ein XML-Dokument, mit dem man Informationen über eine Schulklasse / ein Lehrerkollegium erfassen kann.

Page 34: Informationsdarstellung mit XML Klaus Becker 2007

34 Aufgabe

Graphen treten in sehr vielen Anwendungen auf. Entwickeln Sie ein XML-Dokument, mit dem man die Graph-Daten strukturiert darstellen kann.

TR

KO

RB

BI

KL

AZ

MZ

FT

SP

128

98

54

28 35

3533

3648

48 31

116

Page 35: Informationsdarstellung mit XML Klaus Becker 2007

35 Teil 3

Dokumenttypen und ihre Validierung

Page 36: Informationsdarstellung mit XML Klaus Becker 2007

36 Ungültige Dokumentenstruktur

Wenn man das Element zur Darstellung der Struktogramm-überschrift weglässt, so wird das Dokument weiterhin vom Browser angezeigt. Das Dokument wird aber nicht mehr vom Struktogrammeditor akzeptiert, da es nicht mehr den geforderten Dokumenttyp hat.

<?xml version="1.0" encoding="UTF-8"?><nsc version="0.2"> <sequence> <statement> <text> <span>Eingabe: x, y</span> </text> </statement> <whileloop> <text> <span>SOLANGE y &gt; 0</span> </text> <sequence> <statement> <text> <span>h := x mod y</span> </text> </statement> ... </sequence> </whileloop> <statement> <text> <span>Ausgabe: x</span> </text> </statement> </sequence> <text> <span>GGT</span> </text></nsc>

Zielsetzung:

Im Folgenden sollen Verfahren vorgestellt werden, mit denen der Dokumenttyp präzise beschrieben werden kann.

Page 37: Informationsdarstellung mit XML Klaus Becker 2007

37 Dokumenttyp

Wir betrachten als erstes Beispiel XML-Dokumente zur (vereinfachten) Beschreibung eines Lehrerkollegiums.

<?xml version="1.0" encoding="ISO-8859-1"?><kollegium> <lehrer geschlecht="w"> <name>Meier</name> <vorname>Christiane</vorname> <kuerzel>mei</kuerzel> <fach>Deutsch</fach> <fach>Erdkunde</fach> <email>[email protected]</email> <email>[email protected]</email> </lehrer> <lehrer geschlecht="m"> <name>Schmitt</name> <vorname>Thomas</vorname> <kuerzel>sch</kuerzel> <fach>Latein</fach> <fach>Musik</fach> <fach>Philosophie</fach> </lehrer> <lehrer geschlecht="w"> <name>Müller</name> <vorname>Katharina</vorname> <kuerzel>mue</kuerzel> <fach>Mathematik</fach> <fach>Informatik</fach> <email>[email protected]</email> </lehrer></kollegium>

Ein Kollegium besteht aus Lehrerinnen und Lehrern (mindestens eine / einer). Im Folgenden werden mit "Lehrer" auch Lehrerinnen erfasst.

Jeder Lehrer hat einen Namen und Vornamen.

Jedem Lehrer ist ein Kürzel zugeordnet.

Jeder Lehrer unterrichtet mindestens ein Fach.

Ein Lehrer kann eine oder mehrere Email-Adressen angeben.

Beschreibung des Kontextes

Page 38: Informationsdarstellung mit XML Klaus Becker 2007

38 Dokumenttyp<?xml version="1.0" encoding="ISO-8859-1"?><kollegium> <lehrer geschlecht="w"> <name>Meier</name> <vorname>Christiane</vorname> <kuerzel>mei</kuerzel> <fach>Deutsch</fach> <fach>Erdkunde</fach> <email>[email protected]</email> <email>[email protected]</email> </lehrer> <lehrer geschlecht="m"> <name>Schmitt</name> <vorname>Thomas</vorname> <kuerzel>sch</kuerzel> <fach>Latein</fach> <fach>Musik</fach> <fach>Philosophie</fach> </lehrer> <lehrer geschlecht="w"> <name>Müller</name> <vorname>Katharina</vorname> <kuerzel>mue</kuerzel> <fach>Mathematik</fach> <fach>Informatik</fach> <email>[email protected]</email> </lehrer></kollegium>

Das Wurzelelement hat den Namen "kollegium".

Ein Element vom Typ "kollegium" besteht aus mindestens einem Element vom Typ "lehrer".

Ein Element vom Typ "lehrer" besteht aus - einem Element vom Typ "name",- einem Element vom Typ "vorname",- einem Element vom Typ "kuerzel",- mindestens e. Element v. Typ "fach"- beliebig viel. Elementen v. Typ "email".Zudem hat ein Element vom Typ "lehrer" das Attribut "geschlecht".

Ein Element vom Typ "name" besteht aus Zeichen.

... informelle Beschreibung des Dokumenttyps

Page 39: Informationsdarstellung mit XML Klaus Becker 2007

39 Dokumenttypdefinition<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE kollegium [<!ELEMENT kollegium (lehrer*)><!ELEMENT lehrer (name, vorname, kuerzel, fach+, email*)><!ATTLIST lehrer geschlecht CDATA #REQUIRED><!ELEMENT name (#PCDATA)><!ELEMENT vorname (#PCDATA)><!ELEMENT kuerzel (#PCDATA)><!ELEMENT fach (#PCDATA)><!ELEMENT email (#PCDATA)>]>

<kollegium> <lehrer geschlecht="w"> <name>Meier</name> <vorname>Christiane</vorname> <kuerzel>mei</kuerzel> <fach>Deutsch</fach> <fach>Erdkunde</fach> <email>[email protected]</email> <email>[email protected]</email> </lehrer> ..</kollegium>

Das Wurzelelement hat den Namen "kollegium".

Ein Element vom Typ "kollegium" besteht aus mindestens einem Element vom Typ "lehrer".

Ein Element vom Typ "lehrer" besteht aus - einem Element vom Typ "name",- einem Element vom Typ "vorname",- einem Element vom Typ "kuerzel",- mindestens e. Element v. Typ "fach"- beliebig viel. Elementen v. Typ "email".Zudem hat ein Element vom Typ "lehrer" das Attribut "geschlecht".

Ein Element vom Typ "name" besteht aus Zeichen.

...formale Beschreibung des

Dokumenttypsinformelle Beschreibung des

Dokumenttyps

Page 40: Informationsdarstellung mit XML Klaus Becker 2007

40 Dokumenttypdefinition

Dokumenttypdefinition

Eine Dokumenttypdefinition beschreibt die Struktur eines Dokuments mit Hilfe einer Grammatik, die in Form von Deklarationen beschrieben wird.

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE kollegium [<!ELEMENT kollegium (lehrer*)><!ELEMENT lehrer (name, vorname, kuerzel, fach+, email*)><!ATTLIST lehrer geschlecht CDATA #REQUIRED><!ELEMENT name (#PCDATA)><!ELEMENT vorname (#PCDATA)><!ELEMENT kuerzel (#PCDATA)><!ELEMENT fach (#PCDATA)><!ELEMENT email (#PCDATA)>]>

<kollegium> <lehrer geschlecht="w"> <name>Meier</name> <vorname>Christiane</vorname> <kuerzel>mei</kuerzel> <fach>Deutsch</fach> <fach>Erdkunde</fach> <email>[email protected]</email> <email>[email protected]</email> </lehrer> ..</kollegium>

Eine Dokumenttypdefinition (DTD) legt eine Klasse von Dokumenten fest, die alle vom gleichen Typ sind.

Page 41: Informationsdarstellung mit XML Klaus Becker 2007

41 Einbindung einer DTD

interne 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 kollegium [...]><kollegium>...</kollegium>

<!DOCTYPE kollegium SYSTEM "kollegium.dtd"><kollegium>...</kollegium>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html>...</html>

externe DTD

externe DTD

<!DOCTYPE Name [...]>

Page 42: Informationsdarstellung mit XML Klaus Becker 2007

42 Deklaration von Elementen

<!DOCTYPE kollegium [<!ELEMENT kollegium (lehrer*)><!ELEMENT lehrer (name, vorname, kuerzel, fach+, email*)><!ATTLIST lehrer geschlecht CDATA #REQUIRED><!ELEMENT name (#PCDATA)><!ELEMENT vorname (#PCDATA)><!ELEMENT kuerzel (#PCDATA)><!ELEMENT fach (#PCDATA)><!ELEMENT email (#PCDATA)>]>

Elementtyp-Deklaration

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>

Page 43: Informationsdarstellung mit XML Klaus Becker 2007

43 Inhaltsmodelle

<!ELEMENT kollegium (lehrer*)>

Inhaltsmodell

Beschreibung

Elementinhalt Das Element enthält ausschließlich Unterelemente

<!ELEMENT name (#PCDATA)>

#PCDATA Das Element enthält nur Zeichendaten

<!ELEMENT anrede (#PCDATA?, vormame, name)>

gemischter Inhalt

Das Element kann Zeichendaten und Unterelemente enthalten

<!ELEMENT direktor EMPTY>

EMPTY Das Element hat keinen Inhalt

<anrede>Frau<vorname>Christine</vorname><name>Meier</name></anrede>

<kollegium><lehrer>...</lehrer><lehrer>...</lehrer></kollegium>

<fach>Sport</fach>

<direktor/>

ANY Das Element hat beliebige Inhalte haben.

Page 44: Informationsdarstellung mit XML Klaus Becker 2007

44 Deklaration von Attributlisten<!ATTLIST lehrer geschlecht CDATA #REQUIRED>

Attributlisten-Deklaration

CDATA: nur einfache Zeichenketten erlaubt, keine Tags

...

#REQUIRED: Attributwert muss in jeder Elementinstanz vorkommen

#IMPLIED: Attributwert kann optional in einer Elementinstanz vorkommen

...

<!ATTLIST Elementname Attributname Attributtyp Vorgabewert Attributname Attributtyp Vorgabewert Attributname Attributtyp Vorgabewert ... >

<!ATTLIST lehrer geschlecht CDATA #REQUIRED amtsbez CDATA #IMPLIED>

Page 45: Informationsdarstellung mit XML Klaus Becker 2007

45 Gültigkeit

Ein XML-Dokument, das alle Bedingungen einer DTD erfüllt, heißt gültig bzw. valide.

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE kollegium [<!ELEMENT kollegium (lehrer*)><!ELEMENT lehrer (name, vorname, kuerzel, fach+, email*)><!ATTLIST lehrer geschlecht CDATA #REQUIRED><!ELEMENT name (#PCDATA)><!ELEMENT vorname (#PCDATA)><!ELEMENT kuerzel (#PCDATA)><!ELEMENT fach (#PCDATA)><!ELEMENT email (#PCDATA)>]>

<kollegium> <lehrer geschlecht="w"> <name>Meier</name> <vorname>Christiane</vorname> <kuerzel>mei</kuerzel> <fach>Deutsch</fach> <fach>Erdkunde</fach> <email>[email protected]</email> <email>[email protected]</email> </lehrer> ..</kollegium>

Ein gültiges XML-Dokument muss auch wohlgeformt sein.

Gültigkeit bezieht sich immer auf eine spezielle Strukturbeschreibung (hier in Form einer DTD).

Page 46: Informationsdarstellung mit XML Klaus Becker 2007

46 Validierung

Die Gültigkeit eines XML-Dokuments kann mit einem sog. XML-Parser überprüft werden. Ein XML-Parser ist ein Programm, das überprüft, ob das XML-Dokument die von der angegebenen DTD geforderte Struktur hat.

http://www.validome.org/xml/validate/

Page 47: Informationsdarstellung mit XML Klaus Becker 2007

47 Validierung

Viele XML-Editoren haben XML-Parser integriert.

Open XML Editor

Page 48: Informationsdarstellung mit XML Klaus Becker 2007

48 Aufgabe

Erweitern Sie die DTD zur Beschreibung von Lehrerkollegien. Die Lehrer-Daten sollen um Adressangaben ergänzt werden. Validieren Sie das erweiterte XML-Dokument. Testen Sie insbesondere interne und auch externe DTD.

Page 49: Informationsdarstellung mit XML Klaus Becker 2007

49 Aufgabe

Wir betrachten XML-Dokumente zur Beschreibung von Graphen. Entwickeln Sie jeweils passende DTD.

<?xml version="1.0" encoding="ISO-8859-1"?><graph> <knotenmenge> <knoten> <name>TR</name> </knoten> <knoten> <name>KL</name> </knoten> ... </knotenmenge> <kantenmenge> <kante> <von>TR</von> <nach>KL</nach> <gewicht>116</gewicht> </kante> <kante> <von>KL</von> <nach>TR</nach> <gewicht>116</gewicht> </kante> ... </kantenmenge></graph>

<?xml version="1.0" encoding="ISO-8859-1"?><graph id="RLP"> <node id="TR"/> <node id="KL"/> <node id="KO"/> <edge source="TR" target="KL"> <data>116</data> </edge> <edge source="TR" target="KO"> <data>128</data> </edge></graph>

Page 50: Informationsdarstellung mit XML Klaus Becker 2007

50 Aufgabe

Entwickeln Sie eine DTD für Automatenbeschreibungen. Die von JFlap erzeugten XML-Beschreibungen sollen dabei als gültig erkannt werden.

Page 51: Informationsdarstellung mit XML Klaus Becker 2007

51 Aufgabe

Entwickeln Sie eine DTD für Struktogramme. Die von NSCEdit erzeugten XML-Beschreibungen sollen dabei als gültig erkannt werden.

Page 52: Informationsdarstellung mit XML Klaus Becker 2007

52 Aufgabe

Entwickeln Sie eine DTD für vereinfachte HTML-Dokumente. Dabei sollen HTML-Dokumente wie das folgende als gültig erkannt werden. Gehen Sie schrittweise vor. Beginnen Sie mit sehr einfachen Dokumenten wie in "MyXHTML0.xml".

<html><head><title>IFB</title></head><body><h1>Weiterbildung am IFB</h1><p>Die Arbeit findet normalerweise in einem der Rechnerräume des IFB statt.</p><p><img src="Rechnerraum.jpg" alt="Rechnerraum"></img></p><p>Untergebracht wird man in dem schönen neuen S-Bau. </p><p><img src="SGebaeude.jpg" alt="S-Gebäude"></img></p><p><a href="Weiterbildungskurse.xml">Zurück</a></p></body></html>

Page 53: Informationsdarstellung mit XML Klaus Becker 2007

53 Teil 4

XML-basierte Sprachen

Page 54: Informationsdarstellung mit XML Klaus Becker 2007

54 Sprachen

Sprachen sind Zeichensysteme, die u. a. für Kommunikation genutzt werden.

Ido esas internaciona linguo kun poka polisemio sate konciza kreita da Louis de Beaufront en 1907 kom Esperanto reformita, adoptita internacione en Paris ye oktobro 1907, kom “idiomo helpanta internaciona”, da la Delegitaro (Délégation pour l’adoption d’une langue auxiliaire internationale).

http://io.wikipedia.org/wiki/Ido

<mrow> <mrow> <msup> <mi>x</mi> <mn>2</mn> </msup> <mo>+</mo> <mrow> <mn>4</mn> <mo>&InvisibleTimes;</mo> <mi>x</mi> </mrow> <mo>+</mo> <mn>4</mn> </mrow> <mo>=</mo> <mn>0</mn> </mrow>

Page 55: Informationsdarstellung mit XML Klaus Becker 2007

55 Lexik, Syntax, Semantik, Pragmatik

Aspekte von Sprachen:

Pragmatik: Lehre von der Verwendung sprachlicher Konstrukte in Handlungssituationen

Pragmatik: Lehre von der Verwendung sprachlicher Konstrukte in Handlungssituationen

Semantik: Bedeutungslehre

Bedeutung von Wörtern, Sätzen, ...

Semantik: Bedeutungslehre

Bedeutung von Wörtern, Sätzen, ...

Syntax: Lehre vom Satzbau

Regeln, nach denen Sätze gebildet werden

Syntax: Lehre vom Satzbau

Regeln, nach denen Sätze gebildet werden

Lexik: Lehre vom Wortschatz

Gesamtheit der Wörter der Sprache

Lexik: Lehre vom Wortschatz

Gesamtheit der Wörter der Sprache

Page 56: Informationsdarstellung mit XML Klaus Becker 2007

56 XML-Vokabulare

<!DOCTYPE html [<!ELEMENT html (head, body)><!ELEMENT head (title)><!ELEMENT title (#PCDATA)><!ELEMENT body (h1 | p)+><!ELEMENT h1 (#PCDATA)><!ELEMENT p (#PCDATA | img | a)*><!ELEMENT img EMPTY><!ATTLIST img src CDATA #REQUIRED alt CDATA #REQUIRED><!ELEMENT a (#PCDATA)><!ATTLIST a href CDATA #REQUIRED >] >

Regeln zur Festlegung der Lexik und Syntax von

MyHTML

XML ermöglicht es, mit Hilfe von DTD neue Sprachen formal festzulegen. Solche Sprachen werden auch XML-Vokabulare genannt. Die DTD ist die Grammatik des zugehörigen XML-Vokabulars, dargestellt in SGML unter Verwendung der erweiterten Backus-Naur-Form.

"Die Erweiterte Backus-Naur-Form, kurz EBNF, ist eine Erweiterung der Backus-Naur-Form (BNF), die ursprünglich von Niklaus Wirth zur Darstellung der Syntax der Programmiersprache Pascal eingeführt wurde. Sie ist eine formale Metasyntax (Metasprache), die benutzt wird, um kontextfreie Grammatiken darzustellen." (wikipedia)

Page 57: Informationsdarstellung mit XML Klaus Becker 2007

57 XHTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html><head><title>Weiterbildungskurse am IFB</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /></head><body><h1>Weiterbildung am IFB</h1><p>Die Arbeit findet normalerweise in einem der Rechnerräume des IFB statt.</p>...<p><a href="Weiterbildungskurse.html">Zurück</a></p></body></html>

DTD zur Festlegung der Lexik und Syntax von

XHTML

Browser als Interpreter:Semantik von XHTML

XHTML ist die XML-konforme Neufassung von HTML.

Page 58: Informationsdarstellung mit XML Klaus Becker 2007

58 Aufgaben

Aufgabe 1Laden Sie sich die DTD von XHTML herunter und werfen Sie einen Blick in die sehr umfangreiche DTD. Alles klar? Sie finden die DTD unter der angegebenen URL.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Aufgabe 2Informieren Sie sich über den sog. DOCTYPE-switch. Sie können auch nach dem Stichwort "Quirks-Modus" suchen.

Page 59: Informationsdarstellung mit XML Klaus Becker 2007

59 SVG

<?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="500" height="300">

<circle cx="100" cy="100" r="50"></circle><rect x="100" y="100" width="50" height="50" fill="green"></rect>

</svg>

SVG-Dokument

Darstellung im Browser

"Scalable Vector Graphics (SVG, deutsch Skalierbare Vektorgrafiken) ist ein Standard zur Beschreibung zweidimensionaler Vektorgrafiken in der XML-Syntax." (wikipedia)

Page 60: Informationsdarstellung mit XML Klaus Becker 2007

60 Aufgaben

Aufgabe 1Testen Sie zunächst, ob ihr Browser SVG-Dateien anzeigt. Benutzen Sie eine der mitgelieferten svg-Dateien.

Aufgabe 2Unter der URL "http://de.wikipedia.org/wiki/Scalable_Vector_Graphics" finden Sie einige Hinweise zur Erstellung von SVG-Dokumenten. Testen Sie einige der dort angegebenen Elemente und erstellen Sie eine Grafik nach eigenen Vorstellungen.

Page 61: Informationsdarstellung mit XML Klaus Becker 2007

61 MathML<?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> <mi>c</mi> <mo>=</mo> <msqrt> <mrow> <msup> <mi>a</mi> <mn>2</mn> </msup> <mo>+</mo> <msup> <mi>b</mi> <mn>2</mn> </msup> </mrow> </msqrt> </mrow></math>

"Die Mathematical Markup Language (MathML) ist im Computer-Datenverkehr ein Dokumentenformat zur Darstellung mathematischer Formeln und komplexer Ausdrücke. Der Standard MathML 2.0 wird durch eine Spezifikation des World Wide Web Consortium von 2001 festgelegt. Wie in allen XML-Sprachen (z. B. XHTML) werden in MathML die Inhalte eines Dokumentes in einer logischen Struktur unabhängig von ihrer graphischen Gestaltung abgelegt." (wikipedia)

Page 62: Informationsdarstellung mit XML Klaus Becker 2007

62 Aufgaben

Aufgabe 1Testen Sie zunächst, ob ihr Browser MATHML-Dateien anzeigt. Wenn Sie Firefox benutzen, müssen Sie evtl. weitere Zeichensätze installieren.

Aufgabe 2Versuchen Sie, einfache Formeln mit MATHML zu erstellen.

Aufgabe 3Das Dokument in "test3.xml" zeigt, wie man MATHML in XHTML einbettet. Wie wird es gemacht?

Page 63: Informationsdarstellung mit XML Klaus Becker 2007

63 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="card1" title="IFB"><p>Die Fortbildung "Information und ihre Darstellung" findet im Raum<br /><a href="raum1.wml">01</a>statt.</p></card></wml>

http://www.winwap.com/products_2_3.php

Page 64: Informationsdarstellung mit XML Klaus Becker 2007

64 Aufgaben

Aufgabe 1Informieren Sie sich in der mitgelieferten WML-Kurzeinführung, wie WML-Dokumente aufgebaut werden. Erstellen Sie auch eine einfache WML-Datei.Laden Sie diese Daten in den WAP-Browser: [Enter Adress][file:///...:/.../.../ifb.wml]

Aufgabe 2Sie können Firefox dazu bringen, WML-Dateien anzuzeigen. Hierzu müssen Sie nur ein zusätzliches Add-on installieren. Sie finden es hier:

"https://addons.mozilla.org/en-US/firefox/addon/62"

Zusätzlich müssen Sie folgende Einstellung vornehmen: "Lokale Dateien mit Endung ".wml" als WML laden"

Page 65: Informationsdarstellung mit XML Klaus Becker 2007

65 SMIL

<smil> <head> <layout> <root-layout width="300" height="200" background-color="#FCECF0" /> <region id="g1" left="15" top="15" width="100" height="100" /> <region id="g2" left="70" top="15" width="100" height="100" /> <region id="g3" left="15" top="50" width="100" height="100" /> </layout> </head> <body> <par><!-- zeige Grafik n Sekunden an --> <img src="box1.gif" alt="Grafik" region="g1" z-index="1" dur="10s" /> <img src="box2.gif" alt="Grafik" region="g2" z-index="2" begin="5s" dur="10s" /> <img src="box2.gif" alt="Grafik" region="g3" z-index="3" begin="8s" /> </par> </body></smil>

"Synchronized Multimedia Integration Language (SMIL; Aussprache wie engl. smile) ist ein auf XML basierender, von dem World Wide Web Consortium (W3C) entwickelter Standard für eine Auszeichnungssprache für zeitsynchronisierte, multimediale Inhalte. SMIL ermöglicht die Einbindung und Steuerung von Multimedia-Elementen wie Audio, Video, Text und Grafik in Webseiten."(wikipedia)

Page 66: Informationsdarstellung mit XML Klaus Becker 2007

66 Aufgaben

Aufgabe 1Informieren Sie sich auf Seiten http://www.hdm-stuttgart.de/streamingmedia/SMILStart.htmüber SMIL und erstellen Sie einfache SMIL-Dateien.Zur Darstellung können Sie den QickTimePlayer benutzen.

Page 67: Informationsdarstellung mit XML Klaus Becker 2007

67 DocBook

<book id="einfaches_buch"> <title>Ein sehr einfaches Buch</title> <chapter id="einfaches_kapitel"> <title>Kapitel</title> <para>Hallo Welt!</para> </chapter></book>

"DocBook ist ein Dokumentenformat, das in einer für SGML und XML vorliegenden Dokumenttypdefinition (DTD) festgelegt ist. Es eignet sich besonders zur Erstellung von Büchern, Artikeln und Dokumentationen im technischen Umfeld (Hardware oder Software). DocBook ist ein offener Standard, der von der Organization for the Advancement of Structured Information Standards (OASIS) gepflegt wird."(wikipedia)

Page 68: Informationsdarstellung mit XML Klaus Becker 2007

68 Aufgaben

Aufgabe 1Informieren Sie sich auf den Seiten http://www.goshaky.com/docbook-tutorial/über DocBook und erstellen Sie einfache DocBook-Dateien.

Aufgabe 2DocBook-Dateien lassen sich mit OpenOffice erzeugen und einlesen. Mehr hierüber findet man hier: http://de.openoffice.org/doc/sonstiges/DocBook16de.html

Page 69: Informationsdarstellung mit XML Klaus Becker 2007

69 Aufgabe

Weitere XML-basierte Sprachen, denen man häufig begegnet, sind RSS und RDF. Informieren Sie sich, wo diese Sprachen eingesetzt werden.

Page 70: Informationsdarstellung mit XML Klaus Becker 2007

70 Aufgabe

Auf der Seite

http://web.mit.edu/mecheng/pml/standards.htm

finden Sie eine Übersicht über standardisierte XML-Vokabulare. Werfen Sie einen Blick auf diese Seite, um zu erahnen, wo weitere Anwendungsgebiete von XML liegen.

Page 71: Informationsdarstellung mit XML Klaus Becker 2007

71 Teil 5

Exkurs: Namensräume, Formatierung, Strukturbeschreibung

Page 72: Informationsdarstellung mit XML Klaus Becker 2007

72 Probleme

Wie kann man mehrere XML-Dokumente zusammenführen, ohne Namenskonflikte zu erhalten?

Wie kann man XML-Dokumente formatieren?

Wie kann man die Struktur von XML-Dokumenten noch adäquater beschreiben?

...

Page 73: Informationsdarstellung mit XML Klaus Becker 2007

73 Exkurs: Namensräume

Beispiel 1:

<?xml version="1.0" encoding="ISO-8859-1"?><html><head><title>Test</title></head><body><h1>Überschrift</h1><p>Absatz</p></body></html>

<?xml version="1.0" encoding="ISO-8859-1"?><html xmlns="http://www.w3.org/1999/xhtml"><head><title>Test</title></head><body><h1>Überschrift</h1><p>Absatz</p></body></html>

Namensraum: Ansammlung von Namen für Elemente und

Attribute

Page 74: Informationsdarstellung mit XML Klaus Becker 2007

74 Exkurs: Namensräume

Beispiel 2:

<?xml version="1.0" encoding="ISO-8859-1"?><seite xmlns:xhtml="http://www.w3.org/1999/xhtml"><xhtml:h1>Überschrift</xhtml:h1><xhtml:p>Absatz</xhtml:p></seite>

<?xml version="1.0" encoding="ISO-8859-1"?><html xmlns="http://www.w3.org/1999/xhtml"><head><title>Test</title></head><body><h1>Überschrift</h1><p>Absatz</p></body></html>

Namensraumdeklaration

URI als weltweit eindeutiger Bezeichner

Präfix als Kurzorm

Page 75: Informationsdarstellung mit XML Klaus Becker 2007

75 Exkurs: Namensräume

Beispiel 3:

<?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"><xhtml:p>Die Funktion f mit</xhtml:p><xhtml:p> <math:mrow> <math:mi>f</math:mi> <math:mfenced> <math:mi>x</math:mi> </math:mfenced> <math:mo>=</math:mo> <math:msqrt> <math:mi>x</math:mi> </math:msqrt> </math:mrow></xhtml:p><xhtml:p>heißt Wurzelfunktion.</xhtml:p></seite>

mehrere Namensräume

Page 76: Informationsdarstellung mit XML Klaus Becker 2007

76 Exkurs: Namensräume

"In Dokumenten, die unterschiedliches Markup-Vokabular enthalten, können Probleme mit der Erkennung und Kollisionen auftreten. Software-Module müssen die Tags und Attribute erkennen, für deren Verarbeitung sie geschaffen wurden, auch im Fall einer Kollision, wenn Markup, das für eine andere Software geschrieben wurde, die gleichen Elementtypen und Attributnamen verwendet.

Diese Überlegungen erfordern, dass Dokumentkonstrukte, deren Geltungsbereich über den des beinhaltenden Dokuments hinausgeht, einzigartige Namen haben sollten. Diese Spezifikation beschreibt einen Mechanismus, XML-Namensräume, der diese Anforderungen erfüllt.

Ein XML-Namensraum ist eine Zusammenstellung von Namen, identifiziert durch einen URI-Verweis, die in XML-Dokumenten als Elementtypen und Attributnamen verwendet werden."aus: Namensräume in XML. http://www.schumacher-netz.de/TR/1999/REC-xml-names-19990114-de.html

Page 77: Informationsdarstellung mit XML Klaus Becker 2007

77 Exkurs: Formatierung

Beispiel 1:

<?xml version="1.0" encoding="ISO-8859-1"?><dokument><ueberschrift>XML</ueberschrift><definition>XML steht für Extensible Markup Language und wird benutzt, um Daten strukturiert darzustellen.</definition></dokument>

keine Formatierungsangabe

Page 78: Informationsdarstellung mit XML Klaus Becker 2007

78 Exkurs: Formatierung

Beispiel 2:

<?xml version="1.0" encoding="ISO-8859-1"?><?xml-stylesheet href="style.css" type="text/css"?><dokument><ueberschrift>XML</ueberschrift><definition>XML steht für Extensible Markup Language und wird benutzt, um Daten strukturiert darzustellen.</definition></dokument>

Formatierung mit CSS

ueberschrift{ color: blue; font-weight: bold;}

definition{ color: green;}

style.css

Page 79: Informationsdarstellung mit XML Klaus Becker 2007

79 Exkurs: Formatierung

Beispiel 3:

<?xml version="1.0" encoding="ISO-8859-1"?><?xml-stylesheet type="text/xsl" href="style.xsl"?><dokument><ueberschrift>XML</ueberschrift><definition>XML steht für Extensible Markup Language und wird benutzt, um Daten strukturiert darzustellen.</definition></dokument>

<?xml version="1.0" encoding="ISO-8859-1"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"><xsl:template match="/"> <html> <head><title>XML</title></head> <body> <h1><xsl:value-of select="dokument/ueberschrift"/></h1> <p><xsl:value-of select="dokument/definition"/></p> </body> </html></xsl:template></xsl:stylesheet>

Formatierung mit XSLT

style.xsl

Page 80: Informationsdarstellung mit XML Klaus Becker 2007

80 Exkurs: Formatierung

<?xml version="1.0" encoding="ISO-8859-1"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"><xsl:template match="/"> <html> <head><title>XML</title></head> <body> <h1><xsl:value-of select="dokument/ueberschrift"/></h1> <p><xsl:value-of select="dokument/definition"/></p> </body> </html></xsl:template></xsl:stylesheet>

XSLT steht für Extensible Stylesheet Language Transformations. XSLT ist eine Sprache zur Transformation von XML-Dokumenten in andere XML-Dokumente, z. B. XHTML-Dokumente.

Für weitere Informationen und Beispiele siehe z. B.: http://de.selfhtml.org/xml/darstellung/index.htm

Page 81: Informationsdarstellung mit XML Klaus Becker 2007

81 Exkurs: XML-Schema

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE kollegium SYSTEM "kollegium.dtd">

<kollegium> <lehrer geschlecht="w"> <name>Meier</name> <vorname>Christiane</vorname> <geburtsjahr>1981</geburtsjahr> <kuerzel>mei</kuerzel> <fach>Deutsch</fach> <fach>Erdkunde</fach> <email>[email protected]</email> <email>[email protected]</email> </lehrer> <lehrer geschlecht="m"> <name>Schmitt</name> <vorname>Thomas</vorname> <geburtsjahr>1975</geburtsjahr> <kuerzel>sch</kuerzel> <fach>Latein</fach> <fach>Musik</fach> <fach>Philosophie</fach> </lehrer> ...</kollegium>

Beispiel 1:

<!ELEMENT kollegium (lehrer*)><!ELEMENT lehrer (name, vorname, geburtsjahr, kuerzel, fach+, email*)><!ATTLIST lehrer geschlecht CDATA #REQUIRED><!ELEMENT name (#PCDATA)><!ELEMENT vorname (#PCDATA)><!ELEMENT geburtsjahr (#PCDATA)><!ELEMENT kuerzel (#PCDATA)><!ELEMENT fach (#PCDATA)><!ELEMENT email (#PCDATA)>

Strukturbeschreibung mit einer DTD

Page 82: Informationsdarstellung mit XML Klaus Becker 2007

82 Exkurs: XML-Schema

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE kollegium SYSTEM "kollegium.dtd">

<kollegium> <lehrer geschlecht="w"> <name>Meier</name> <vorname>Christiane</vorname> <geburtsjahr>1981</geburtsjahr> <kuerzel>mei</kuerzel> <fach>Deutsch</fach> <fach>Erdkunde</fach> <email>[email protected]</email> <email>[email protected]</email> </lehrer> <lehrer geschlecht="m"> <name>Schmitt</name> <vorname>Thomas</vorname> <geburtsjahr>1975</geburtsjahr> <kuerzel>sch</kuerzel> <fach>Latein</fach> <fach>Musik</fach> <fach>Philosophie</fach> </lehrer> ...</kollegium>

Nachteile von DTD: zu unflexibel

<!ELEMENT kollegium (lehrer*)><!ELEMENT lehrer (name, vorname, geburtsjahr, kuerzel, fach+, email*)><!ATTLIST lehrer geschlecht CDATA #REQUIRED><!ELEMENT name (#PCDATA)><!ELEMENT vorname (#PCDATA)><!ELEMENT geburtsjahr (#PCDATA)><!ELEMENT kuerzel (#PCDATA)><!ELEMENT fach (#PCDATA)><!ELEMENT email (#PCDATA)>

Strukturbeschreibung mit einer DTD

Datentyp: integer

Anzahl der Fächer: max. 4

Page 83: Informationsdarstellung mit XML Klaus Becker 2007

83 Exkurs: XML-Schema

<?xml version="1.0" encoding="ISO-8859-1"?><kollegium xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Kollegium.xsd"> <lehrer geschlecht="w"> <name>Meier</name> <vorname>Christiane</vorname> <geburtsjahr>1981</geburtsjahr> <kuerzel>mei</kuerzel> <fach>Deutsch</fach> <fach>Erdkunde</fach> <email>[email protected]</email> <email>[email protected]</email> </lehrer> <lehrer geschlecht="m"> <name>Schmitt</name> <vorname>Thomas</vorname> <geburtsjahr>1975</geburtsjahr> <kuerzel>sch</kuerzel> <fach>Latein</fach> <fach>Musik</fach> <fach>Philosophie</fach> </lehrer> ...</kollegium>

Beispiel 2: Strukturbeschreibung mit einem XML-Schema

xsi: XML-schema-instance

Page 84: Informationsdarstellung mit XML Klaus Becker 2007

84 Exkurs: XML-Schema

<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="kollegium"> <xs:annotation> <xs:documentation>Lehrerkollegium</xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="lehrer" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string"></xs:element> <xs:element name="vorname" type="xs:string"></xs:element> <xs:element name="geburtsjahr" type="xs:integer"></xs:element> <xs:element name="kuerzel" type="xs:string"></xs:element> <xs:element name="fach" type="xs:string" minOccurs="1" maxOccurs="4"></xs:element> <xs:element name="email" type="xs:string" minOccurs="0" maxOccurs="unbounded"></xs:element> </xs:sequence> <xs:attribute name="geschlecht" type="xs:string" use="required"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element></xs:schema>

Beispiel 2: Schema-Definition mit e. XML-basierten Sprache

Page 85: Informationsdarstellung mit XML Klaus Becker 2007

85 Exkurs: XML-Schema

Validierung: z. B. mithttp://www.xmlvalidation.com/

Page 86: Informationsdarstellung mit XML Klaus Becker 2007

86 Exkurs: 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"."siehe: http://de.wikipedia.org/wiki/XML_Schema

Page 87: Informationsdarstellung mit XML Klaus Becker 2007

87 Teil 6

Verarbeitung von XML-Dokumenten

Page 88: Informationsdarstellung mit XML Klaus Becker 2007

88

Verarbeitung von XML-Dokumenten

Die Verarbeitung von XML-Daten erfolgt in zwei Stufen, mit einem so genannten Parser und einer Anwendung.

Die Aufgabe des Parsers ist es, das vorhandene Dokument auf Wohlgeformtheit und Gültigkeit zu überprüfen und die Daten geeignet aufzubereiten (d. h. in einer bestimmten Weise intern darzustellen).

Eine Anwendung kann dann über eine geeignete Schnittstelle auf diese interne Darstellung zugreifen und das Dokument in einer bestimmten Weise verarbeiten (z. B.: erzeugt ein Browser eine grafische Seitendarstellung). Die Verarbeitung legt demnach erst die Bedeutung (Semantik) des Dokuments fest.

Page 89: Informationsdarstellung mit XML Klaus Becker 2007

89 Beispiel: Browser

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE html [ ... ]>

<html><head><title>Test</title> </head><body><h1>Weiterbildung am IFB</h1>...</html>

Grafische Aufbereitung (Festlegung

der Semantik)

Syntax- Analyse

OK!Parser

Anwendung

Page 90: Informationsdarstellung mit XML Klaus Becker 2007

90 Beispiel: Automatensimulator

<?xml version="1.0"?><!-- Created with JFLAP 4.0b13. --><structure>

<type>fa</type><!--The list of states.--><state id="0">

<x>60.0</x><y>59.0</y><initial />

</state>...<!--The list of transitions.--><transition>

<from>2</from><to>3</to><read>c</read>

</transition>...

</structure>

Simulation

Syntax- Analyse

OK!Parser

Anwendung

Eingabewort: [email protected]

Ergebnis: ok!

Page 91: Informationsdarstellung mit XML Klaus Becker 2007

91 Zielsetzung

Um einen Einblick in die Verarbeitung von XML-Dokumenten zu gewinnen, soll hier ein eigener Automatensimulator entwickelt werden, der XML-Automatenbeschreibungen verarbeiten kann.

[email protected]

Simulator

Ok!

<?xml version="1.0"?><!-- Created with JFLAP 4.0b13. --><structure>

<type>fa</type><!--The list of states.--><state id="0">

<x>60.0</x><y>59.0</y><initial />

</state><state id="1">

<x>147.0</x><y>59.0</y>

</state>...<!--The list of transitions.--><transition>

<from>2</from><to>3</to><read>c</read>

</transition>...

</structure>

Page 92: Informationsdarstellung mit XML Klaus Becker 2007

92 Vorgehensweise

Schritt 1: Strukturbaum erzeugen

Schritt 2: Auf die Knoten des Strukturbaums zugreifen

<?xml version="1.0"?><!-- Created with JFLAP 4.0b13. --><structure> <type>fa</type> <!--The list of states.--> <state id="0"> <x>60.0</x> <y>59.0</y> <initial /> </state> ...

state

x

#text: 60.0

type

#text: fa

#comment:

#document

Id: 0

y

#text: 59.0

initial

#comment:

structure

Page 93: Informationsdarstellung mit XML Klaus Becker 2007

93

<?xml version="1.0"?><!-- Created with JFLAP 4.0b13. --><structure> <type>fa</type> <!--The list of states.--> <state id="0"> <x>60.0</x> <y>59.0</y> <initial /> </state> ...

Erzeugung des Strukturbaums

state

x

#text: 60.0

type

#text: fa

#comment:

#document

Id: 0

y

#text: 59.0

initial

#comment:

structure

Zunächst wird der XML-Quelltext mit Hilfe eines Parsers verarbeitet. Dabei wird ein sog. DOM-Objekt erzeugt, das den gesamten Strukturbaum verwaltet. >>> from xml.dom.minidom import *>>> dokument = parse(".../EmailDA1.jff")>>> dokument<xml.dom.minidom.Document instance at 0x0118AE40>

Python

DOM: Document Object Model (W3C-Standard)

Page 94: Informationsdarstellung mit XML Klaus Becker 2007

94 Zugriff auf den WurzelknotenDokument-knoten

>>> from xml.dom.minidom import *>>> dokument = parse(".../EmailDA1.jff")>>> dokument<xml.dom.minidom.Document instance at 0x0118AE40>>>> wurzel = dokument.documentElement>>> wurzel<DOM Element: structure at 0x1190c88>

Wurzelknoten

state

x

#text: 60.0

type

#text: fa

#comment:

#document

Id: 0

y

#text: 59.0

initial

#comment:

structureWurzel-

knoten

Page 95: Informationsdarstellung mit XML Klaus Becker 2007

95 Aufgabe

>>> from xml.dom.minidom import *>>> dokument = parse(".../EmailDA1.jff")>>> dokument<xml.dom.minidom.Document instance at 0x0118AE40>>>> wurzel = dokument.documentElement>>> wurzel<DOM Element: structure at 0x1190c88>>>> wurzel.nodeNameu'structure'

Testen Sie die Erzeugung des DOM-Objekts. Achten Sie darauf, den Pfad zur XML-Datei richtig einzugeben.

Page 96: Informationsdarstellung mit XML Klaus Becker 2007

96

Attribut-knoten

Navigation im Strukturbaum

state

x

#text: 60.0

type

#text: fa

#comment:

#document

y

#text: 59.0

initial

#comment:

structure

state

PreviousSibling

LastChild

ParentNode

NextSibling

Operationen:

Grafik aus: Introducing the Document Object Model using OpenXML (Part 1) by Craig Murphy

Text-knoten

Dokument-knoten

Element-knoten

Id: 0

Id: 1

FirstChild

Page 97: Informationsdarstellung mit XML Klaus Becker 2007

97 Navigation im DOM-Baum

Achtung:Zeilenumbrüche und Leerzeichen zwischen Tags werden mit zusätzlichen Text-Knoten erfasst.

>>> wurzel.firstChild<DOM Text node "

">>>> wurzel.firstChild.nextSibling<DOM Element: type at 0x1190d28>>>> wurzel.firstChild.nextSibling.nextSibling<DOM Text node "

">>>> wurzel.firstChild.nextSibling.nextSibling.nextSibling<DOM Comment node "The list o...">

Page 98: Informationsdarstellung mit XML Klaus Becker 2007

98 Aufgabe

>>> wurzel.firstChild<DOM Text node "

">>>> wurzel.firstChild.nextSibling<DOM Element: type at 0x1190d28>>>> wurzel.firstChild.nextSibling.nextSibling<DOM Text node "

">>>> wurzel.firstChild.nextSibling.nextSibling.nextSibling<DOM Comment node "The list o...">

Navigieren Sie sich durch den Baum bis zum ersten "state"-Knoten.

Page 99: Informationsdarstellung mit XML Klaus Becker 2007

99

>>> wurzel.childNodes[<DOM Text node "

">, <DOM Element: type at 0x1190d28>, <DOM Text node "">, <DOM Comment node "The list o...">, <DOM Text node "

...">]>>> wurzel.childNodes[2]<DOM Text node "

">>>> wurzel.childNodes[3]<DOM Comment node "The list o...">>>> wurzel.childNodes[5]<DOM Element: state at 0x1190e40>>>> wurzel.childNodes[5].firstChild<DOM Text node "

">>>>

Navigation im DOM-Baum

Page 100: Informationsdarstellung mit XML Klaus Becker 2007

100

>>> wurzel.childNodes[<DOM Text node "

">, <DOM Element: type at 0x1190d28>, <DOM Text node "">, <DOM Comment node "The list o...">, <DOM Text node "

...">]>>> wurzel.childNodes[2]<DOM Text node "

">>>> wurzel.childNodes[3]<DOM Comment node "The list o...">>>> wurzel.childNodes[5]<DOM Element: state at 0x1190e40>>>> wurzel.childNodes[5].firstChild<DOM Text node "

">>>>

Aufgabe

Navigieren Sie sich durch den Baum bis zum "initial"-Knoten.

Page 101: Informationsdarstellung mit XML Klaus Becker 2007

101

>>> wurzel.childNodes[5]<DOM Element: state at 0x1190e40>>>> wurzel.childNodes[5].childNodes[1]<DOM Element: x at 0x1190f30>>>> wurzel.childNodes[5].childNodes[1].firstChild<DOM Text node "60.0">>>> wurzel.childNodes[5].childNodes[1].firstChild.nodeValueu'60.0'>>> wurzel.childNodes[5].nodeNameu'state'>>> wurzel.childNodes[5].nodeValue>>>

Zugriff auf die Knotendaten

Operationen:

nodeName: Name des Knotens

nodeValue: Wert des Knotens

Page 102: Informationsdarstellung mit XML Klaus Becker 2007

102

>>> wurzel.childNodes[5]<DOM Element: state at 0x1190e40>>>> wurzel.childNodes[5].childNodes[1]<DOM Element: x at 0x1190f30>>>> wurzel.childNodes[5].childNodes[1].firstChild<DOM Text node "60.0">>>> wurzel.childNodes[5].childNodes[1].firstChild.nodeValueu'60.0'>>> wurzel.childNodes[5].nodeNameu'state'>>> wurzel.childNodes[5].nodeValue>>>

Aufgabe

Wie erhält man den neuen Zustand, wenn im Zustand "2" die Eingabe "c" erfolgt. Bestimmen Sie diesen neuen Zustand mit geeigneten Navigations- und Zugriffsoperationen.

Page 103: Informationsdarstellung mit XML Klaus Becker 2007

103

>>> wurzel.childNodes[5]<DOM Element: state at 0x1190e40>>>> wurzel.childNodes[5].attributes<xml.dom.minidom.NamedNodeMap object at 0x011B7F08>>>> wurzel.childNodes[5].attributes.item(0)<xml.dom.minidom.Attr instance at 0x01190E90>>>> wurzel.childNodes[5].attributes.item(0).nodeValueu'0'>>> wurzel.childNodes[5].attributes.item(0).nodeNameu'id'

Zugriff auf die Attributwerte

Operationen:

attributes: Attributobjekte

item(...): Zugriff auf den ...-ten Knoten

Page 104: Informationsdarstellung mit XML Klaus Becker 2007

104

>>> wurzel.childNodes[5]<DOM Element: state at 0x1190e40>>>> wurzel.childNodes[5].attributes<xml.dom.minidom.NamedNodeMap object at 0x011B7F08>>>> wurzel.childNodes[5].attributes.item(0)<xml.dom.minidom.Attr instance at 0x01190E90>>>> wurzel.childNodes[5].attributes.item(0).nodeValueu'0'>>> wurzel.childNodes[5].attributes.item(0).nodeNameu'id'

Aufgabe

Wie erhält man den Attributwert des zweiten Zustands?

Page 105: Informationsdarstellung mit XML Klaus Becker 2007

105

from xml.dom.minidom import *

dokument = parse("...")

def anfangszustand(): wurzel = dokument.documentElement for knoten1 in wurzel.childNodes: if knoten1.nodeName == "state": for knoten2 in knoten1.childNodes: if knoten2.nodeName == "initial": return knoten1.attributes.item(0).nodeValue

print anfangszustand()

Bestimmung des Anfangszustands

Pfad / Dateiname ergänzen!

Page 106: Informationsdarstellung mit XML Klaus Becker 2007

106

def naechsterZustand(zustand, eingabe): ...

# liefert den Folgezustand, wenn bei dem gegebenem Zustand die # Eingabe verarbeitet wird.

def endzustand(zustand): ...

# liefert den Wert True / False, wenn der eingegebene Zustand # ein / kein Endzustand ist

Aufgabe

Ergänzen Sie die Funktionsdefinitionen.

Page 107: Informationsdarstellung mit XML Klaus Becker 2007

107

def naechsterZustand(zustand, eingabe): wurzel = dokument.documentElement for knoten1 in wurzel.childNodes: if knoten1.nodeName == "transition": for knoten2 in knoten1.childNodes: if knoten2.nodeName == "from": hfrom = knoten2.firstChild.nodeValue if knoten2.nodeName == "to": hto = knoten2.firstChild.nodeValue if knoten2.nodeName == "read": hread = knoten2.firstChild.nodeValue if (hfrom == zustand) and (hread == eingabe): return hto return "?"

Lösungsvorschläge

def endzustand(zustand): wurzel = dokument.documentElement for knoten1 in wurzel.childNodes: if knoten1.nodeName == "state": if knoten1.attributes.item(0).nodeValue == zustand: for knoten2 in knoten1.childNodes: if knoten2.nodeName == "final": return True return False

Page 108: Informationsdarstellung mit XML Klaus Becker 2007

108

# automatensimulator2.pyfrom xml.dom.minidom import *dokument = parse("D:/Python/XML/EmailDA1.jff")

def anfangszustand(): ...def naechsterZustand(zustand, eingabe): ...def endzustand(zustand): ...

def verarbeiten(zeichenkette): zustand = anfangszustand() for zeichen in zeichenkette: zustand = naechsterZustand(zustand, zeichen) if endzustand(zustand): return True else: return False

# Testprint "[email protected]", verarbeiten("[email protected]")print "acb@bca", verarbeiten("acb@bca")

Simulator

Page 109: Informationsdarstellung mit XML Klaus Becker 2007

109 DOM-Schnittstelle

"Das Document Object Model (DOM) ist eine Programmierschnittstelle (API) für den Zugriff auf HTML- oder XML-Dokumente. Sie wird vom World Wide Web Consortium definiert.

Im Sinne der objektorientierten Programmierung besteht das DOM aus einem Satz von Klassen zusammen mit deren Methoden und Attributen. Es erlaubt Computerprogrammen, dynamisch den Inhalt, die Struktur und das Layout eines Dokuments zu verändern."

Siehe: http://de.wikipedia.org/wiki/Document_Object_Model

DOM-Knotenbaum

state

x

#text: 60.0

type

#text: fa

#comment:

#document

y

#text: 59.0

initial

#comment:

structure

state

PreviousSibling

LastChild

ParentNode

NextSibling

Id: 0

Id: 1

FirstChild

Page 110: Informationsdarstellung mit XML Klaus Becker 2007

110 DOM-Schnittstelle

Attribute der Klasse "Node":

childNodes Returns a NodeList of child nodes for a node

firstChild Returns the first child of a node

lastChild Returns the last child of a node

nextSibling Returns the node immediately following a node

nodeName Returns the name of a node, depending on its type

nodeType Returns the type of a node

nodeValue Sets or returns the value of a node, depending on its type

parentNode Returns the parent node of a node

previousSibling Returns the node immediately before a node

... (siehe: http://www.w3schools.com/dom/dom_node.asp)

state

x

#text: 60.0

type

#text: fa

#comment:

#document

y

#text: 59.0

initial

#comment:

structure

state

PreviousSibling

LastChild

ParentNode

NextSibling

Id: 0

Id: 1

FirstChild

Page 111: Informationsdarstellung mit XML Klaus Becker 2007

111 Delphi-Implementierung

„Open XML is a collection of XML and Unicode tools and components for the Delphi/Kylix™ programming language. All packages are freely available including source code.“

Siehe: http://www.philo.de/xml/index.shtml

Page 112: Informationsdarstellung mit XML Klaus Becker 2007

112 Delphi-Anwendung

Eine Delphi-basierte Implementierung eines Automatensimulators unter Verwendung von OpenXML finden Sie in den Materialien zum Weiterbildungslehrgang X:

http://informatik.bildung-rp.de/weiterbildungsmaterial/lehrgang-x-2005-2008/kurs-4.html

Weitere Hinweise zur Benutzung von OpenXML finden Sie hier:

http://www.hsg-kl.de/faecher/inf/theorie/formal/xml/openxml/index.php

Mit anderen gängigen Programmiersprachen kann man natürlich auch auf den DOM-Baum zugreifen. Wie das mit JavaScript geht wird hier gezeigt:

http://www.w3schools.com/dom/dom_parser.asp

Page 113: Informationsdarstellung mit XML Klaus Becker 2007

113 Teil 7

XML im Informatikunterricht

Page 114: Informationsdarstellung mit XML Klaus Becker 2007

114 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" (Grammatiken, 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").

Page 115: Informationsdarstellung mit XML Klaus Becker 2007

115 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.