Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung - mit XML -

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

description

Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung - mit XML -. Klaus Becker 2009. XML. Informationsdarstellung mit XML Information und ihre Darstellung - PowerPoint PPT Presentation

Transcript of Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung - mit XML -

Page 1: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung

- mit XML -

Klaus Becker

2009

Page 2: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

2 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>

Page 3: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

3 Teil 1

Information und ihre Darstellung

Page 4: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

4 Einstieg - TelefonBedienungsanleitung:

benutzt die Alltagssprache und eine bildliche Darstellung von Information

Entwurfsmodellierung:

benutzt eine Diagrammsprache (Zustandsdiagramm) zur Darstellung von Information

Zustandsdiagramm

Page 5: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

5 Einstieg - Telefon

[Main]Anzahl der Zustände=4Existiert Start=1Anzahl Alphabet=4Zeichen1=ZifferblockZeichen2=AbhebenZeichen3=Abheben langZeichen4=Auflegen[Config]...[Color]...[Zustand1]Name=RuhezustandNummer=1x-Koord=77y-Koord=249Typ=0Typname=StartKommentar1=AkENTRY1=AkDO1=...

Werkzeug Charon z. Erzeugung von Zustandsd.

QuelltextSpeicherformat:

benutzt eine spezielle "Daten-Sprache" zur Darstellung von Information

Page 6: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

6 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> <state id="2" name="q2">

<x>389.0</x> <y>100.0</y> <label>Einwählen</label>

</state> ...

Werkzeug JFlap

Quelltext

Page 7: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

7 Fachkonzept - Datenformat

[Main]Anzahl der Zustände=4Existiert Start=1Anzahl Alphabet=4Zeichen1=ZifferblockZeichen2=AbhebenZeichen3=Abheben langZeichen4=Auflegen[Config]...[Color]...[Zustand1]Name=RuhezustandNummer=1x-Koord=77y-Koord=249Typ=0Typname=StartKommentar1=AkENTRY1=AkDO1=...

Datenformat

Ein Datenformat ist eine Daten-Sprache, die zur computergerechten Darstellung von Information benutzt wird.

Page 8: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

8 Fachkonzept - Datenformat

[Main]Anzahl der Zustände=4Existiert Start=1Anzahl Alphabet=4Zeichen1=ZifferblockZeichen2=AbhebenZeichen3=Abheben langZeichen4=Auflegen[Config]...[Color]...[Zustand1]Name=RuhezustandNummer=1x-Koord=77y-Koord=249Typ=0Typname=StartKommentar1=AkENTRY1=AkDO1=...

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.

<?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

Page 9: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

9 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> ... Auszeichnung mit

TagsDaten

Page 10: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

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

Page 11: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

11 Teil 2

XML-Dokumente

Page 12: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

12 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

Page 13: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

13 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> <mitglied> <name>McCartney</name> <vorname>Paul</vorname> <sir/> ... </mitglied> ... </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?

Page 14: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

14 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> <mitglied> <name>McCartney</name> <vorname>Paul</vorname> <sir/> ... </mitglied> ... </mitglieder> </band>

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

XML-Dokumente werden benutzt, um Information strukturiert darzustellen.

Page 15: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

15 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> <mitglied> <name>McCartney</name> <vorname>Paul</vorname> <sir/> ... </mitglied> ... </mitglieder> </band>

Anzeige mit einem Browser

Darstellung im Editor

Page 16: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

16 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 mit Zeicheninhalt

Element als Container

leeres Element

Page 17: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

17 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>

Page 18: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

18 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

Page 19: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

19 Exkurs - XML-Dokumente Ein XML-Dokument beginnt in der Regel mit dem Prolog <?xml ... ?>. Der Prolog kennzeichnet das Dokument als XML-Dokument.

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.

<?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> <mitglied> <name>McCartney</name> <vorname>Paul</vorname> <sir/> ... </mitglied> ... </mitglieder> </band>

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

Kommentar

Page 20: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

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

Page 21: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

21 Teil 3

XML-Dokumenttypen

Page 22: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

22 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> <y>100.0</y> <label>Einwählen</label> </state> <state id="3" name="q3"> <x>235.0</x> <y>227.0</y> <label>Wählen</label> </state> <!--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> <transition> <from>3</from> <to>0</to> <read>Auflegen</read> </transition> <transition> <from>0</from> ... </transition> ... </automaton> </structure>

Page 23: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

23

<?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> <y>100.0</y> <label>Einwählen</label> </state> <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> <transition> <from>3</from> <to>0</to> <read>Auflegen</read> </transition> <transition> ... </automaton> </structure>

Exkurs - wohlgeformte XML-Dokumente

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

Anfangstag

Endtag?

nicht wohlgeformt wohlgeformt

Page 24: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

24

<?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> <transition> <from>3</from> <to>0</to> <read>Auflegen</read> </transition> <transition> ... </automaton> </structure>

Exkurs - gültige XML-Dokumente

keine gültige Tag-Struktur

wohlgeformt

JFlap kann das XML-Dokument nicht verarbeiten, da es nicht die erforderliche Struktur hat.

Page 25: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

25

<?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> <transition> <from>3</from> <to>0</to> <read>Auflegen</read> </transition> ... </automaton> </structure>

Exkurs - gültige XML-Dokumente

wohlgeformt

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

keine gültige Tag-Struktur

DTD in automat.dtd

Eine Dokumenttypdefinition (kurz DTD) legt einen Dokumenttyp präzise fest.

Page 26: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

26

<?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>

Exkurs - gültige XML-Dokumente

gültig / valide

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

DTD in automat.dtd

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

Page 27: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

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

Page 28: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

28 Exkurs - Dokumenttypdefinitionen

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

DTD in automat.dtd

Eine Dokumenttypdefinition beschreibt den Aufbau eines XML-Dokuments aus Elementen sowie die Attributstruktur der Elemente.

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.

...

Page 29: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

29 Exkurs - Dokumenttypdefinitionen

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

Page 30: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

30 Exkurs - Dokumenttypdefinitionen

<!ELEMENT transition (from, to, read)>

Inhaltsmodell Beschreibung

Elementinhalt Das Element enthält ausschließlich Unterelemente.

<!ELEMENT type (#PCDATA)>

#PCDATA Das Element enthält nur Zeichendaten.

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

gemischter Inhalt

Das Element kann Zeichendaten und Unterelemente enthalten

<!ELEMENT initial EMPTY>

EMPTY Das Element hat keinen Inhalt.

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

<transiotion><from>...</from><to>...</to><read>...</read></transition>

<type>fa</type>

<initial/>

ANY Das Element kann beliebige Inhalte haben.

Page 31: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

31 Exkurs - Dokumenttypdefinitionen<!ATTLIST state id CDATA #REQUIRED name 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 32: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

32 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 structure [...]>

<structure> ...</structure>

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

<!DOCTYPE structure SYSTEM "automat.dtd">

<structure> ...</structure>

<!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 33: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

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

Page 34: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

34 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>

Page 35: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

35 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)*>

Page 36: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

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

Page 37: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

37 Ausblick: XML-Schema

<?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>

Schach-Spielzustand - Version 1:

<!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>

Strukturbeschreibung mit einer DTD

Page 38: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

38

<?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

nur bestimmte Feldbezeichner erlaubt

mögliche Anzahl der Bauern: 0..8

Page 39: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

39 Ausblick: 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>

Schach-Spielzustand - Version 2: Strukturbeschreibung mit einem XML-Schema

xsi: XML-schema-instance

Page 40: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

40 Ausblick: XML-Schema

<?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:complexType> <xs:sequence> <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> <xs:element name="weiss" minOccurs="1" maxOccurs="1">...</xs:element> </xs:sequence> </xs:complexType> </xs:element></xs:schema>

Schach-Spielzustand - Version 2: Schema-Definition mit e. XML-basierten Sprache

Page 41: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

41 Ausblick: XML-Schema

Validierung: z. B. mit

http://www.xmlvalidation.com/

Page 42: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

42 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

Page 43: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

43 Teil 4

Festlegung von Sprachen

Page 44: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

44

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?

Page 45: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

45

Einstieg - Probleme mit der Bedeutung

Was beschreiben XML-Dokumente, die gültig bzgl. der DTD html in "myxhtml.dtd" sind?

<?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>

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

Page 46: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

46 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örtMusi

k

Pia Musik Paul. hört Paul fährt.

Pia fährt Musik. Rad hört Paul.

Page 47: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

47 Fachkonzept - Sprache

<?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>

Lexik

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.

Page 48: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

48 Fachkonzept - Sprache

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

Page 49: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

49 Teil 5

XML-basierte Sprachen

Page 50: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

50 Einstieg - SVG

P3130 160255 255 255 0255 255 0255 255 0255 255 0255 255 0255 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>

SVG

PPM

Pixelgrafik Vektorgrafik

Page 51: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

51 Fachkonzept - Vektorgrafik

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

Objektdiagramm

Page 52: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

52 Fachkonzept - Vektorgrafik

<?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 steht für Scalable Vector Graphics. SVG ist eine Sprache, mit der man die Objekte einer Vektorgrafik beschreiben kann.

SVG-Quelltext

Page 53: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

53 Fachkonzept - Vektorgrafik

<?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>

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.

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

Page 54: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

54 Einstieg - WML

<?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"><p>Seite 45 Aufgabe 3<br/><a href="#start">Zurück zur Startseite</a></p></card>

<card id="deutsch" title="Deutsch"><p>heute keine<br/><a href="#start">Zurück zur Startseite</a></p></card>...</wml>

Hausaufgaben ... ... auf dem Handy!

Page 55: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

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

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

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.

Page 56: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

56 Exkurs - WML

<?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"><p>Seite 45 Aufgabe 3<br/><a href="#start">Zurück zur Startseite</a></p></card>

<card id="deutsch" title="Deutsch"><p>heute keine<br/><a href="#start">Zurück zur Startseite</a></p></card>...</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)

WML: siehe auch www.inf-schule.de

Page 57: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

57 Exkurs - 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> <row> <msup> <mi>a</mi> <mn>2</mn> </msup> <mo>+</mo> <msup> <mi>b</mi> <mn>2</mn> </msup> </row> <mo>=</mo> <msup> <mi>c</mi> <mn>2</mn> </msup> </mrow></math>

MathML steht für Mathematical Markup Language. MathML ist eine Sprache, mit der man mathematische Ausdrücke beschreiben kann.

Page 58: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

58 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

Page 59: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

59 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

Page 60: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

60 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

Page 61: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

61 Teil 6

XML-Dokumente und das Document Object Model

Page 62: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

62

Einstieg - Erkundung des DOM-Baumes

DOM-Baum

<?xml version="1.0" encoding="iso-8859-1"?><kr><mi><x>210</x><y>267</y></mi><ra>44</ra></kr>

DOM-Baum

Page 63: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

63

Einstieg - Erkundung des DOM-Baumes

DOM-Baum

<?xml version="1.0" encoding="iso-8859-1"?><kr><mi><x>210</x><y>267</y></mi><ra>44</ra></kr>

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.

Page 64: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

64

Einstieg - Erkundung des DOM-Baumes

DOM-Baum

<?xml version="1.0" encoding="iso-8859-1"?><kr><mi><x>210</x><y>267</y></mi><ra>44</ra></kr>

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.

# -*- coding: iso-8859-1 -*-from xml.dom.minidom import *# Quelltext in einen DOM-Baum umwandelnxml_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-BaumaktuellerKnoten = documentprint aktuellerKnoten.nodeNameaktuellerKnoten = aktuellerKnoten.firstChildprint aktuellerKnoten.nodeNameaktuellerKnoten = aktuellerKnoten.firstChildprint aktuellerKnoten.nodeNameaktuellerKnoten = aktuellerKnoten.nextSiblingprint aktuellerKnoten.nodeName# ...

Page 65: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

65

# -*- coding: iso-8859-1 -*-from xml.dom.minidom import *# Quelltext in einen DOM-Baum umwandelnxml_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 k = k.firstChild # #text y = int(k.nodeValue) return (x, y) # Testprint mittelpunkt(document)

Einstieg - Erkundung des DOM-Baumes

DOM-Baum

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.

Page 66: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

66

# -*- coding: iso-8859-1 -*-from xml.dom.minidom import *# Quelltext in einen DOM-Baum umwandelnxml_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) # Testprint mittelpunkt(document)

Einstieg - Erkundung des DOM-Baumes

DOM-Baum

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?

Page 67: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

67

# -*- coding: iso-8859-1 -*-from xml.dom.minidom import *# Quelltext in einen DOM-Baum umwandelnxml_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-Baumesdef 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)# Testprint mittelpunkt(document)

Einstieg - Erkundung des DOM-Baumes

DOM-Baum

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.

Page 68: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

68

Exkurs - Das Document Object Model

DOM-Baum

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.

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.

Page 69: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

69

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.

Node-Objekte

DOM-Baum

Page 70: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

70

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.

Page 71: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

71

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-Baumesdef 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)# Testprint mittelpunkt(document)

Page 72: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

72 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>

Page 73: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

73 Miniprojekt - Automatensimulator

Analysieren Sie zunächst den gezeigten Python-Quelltext. Was leistet die Funktion "anfangszustand"? Benutzen Sie die Datei "email.jff" zum Testen.

# -*- coding: iso-8859-1 -*-from xml.dom.minidom import *

# Anfangszustanddef 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-Quelltextesf_xml = file("email.jff", "r")xml_quelltext = f_xml.read()# Initialisierung des DOM-Baumsdombaum = parseString(xml_quelltext)wurzel = dombaum.documentElement

# Testz = anfangszustand(wurzel)print z

Page 74: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

74 Miniprojekt - Automatensimulator

Entwickeln Sie analog die Funktionen "naechsterzustand" und "endzustand".

# -*- coding: iso-8859-1 -*-from xml.dom.minidom import *

# Anfangszustanddef anfangszustand(baum): ...

# nächster Zustanddef naechsterzustand(baum, zustand, eingabe): ...

# Endzustanddef endzustand(baum, zustand): ...

Page 75: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

75 Miniprojekt - Automatensimulator

Testen Sie den entwickelten Automatensimulator.

...

# Einlesen des XML-Quelltextesf_xml = file("email.jff", "r")xml_quelltext = f_xml.read()# Initialisierung des DOM-Baumsdombaum = parseString(xml_quelltext)wurzel = dombaum.documentElement

# Testwort = "[email protected]"z = anfangszustand(wurzel)print zfor w in wort: z = naechsterzustand(wurzel, z, w) print zif endzustand(wurzel, z): print "akzeptiert"else: print "nicht akzeptiert"

Page 76: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

76 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

# Endzustanddef 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

Page 77: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

77 Teil 7

Verarbeitung von Sprachen

Page 78: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

78

Einstieg - Verarbeitung von Grafik-Dok.

grafik.xml

<?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>

Ziel ist es, XML-Grafik-Dokumente so zu verarbeiten, dass eine Grafik entsteht.

Page 79: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

79

Einstieg - Verarbeitung von Grafik-Dok.

rechteck.xml

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.left(90) t.forward(breite) t.left(90) t.forward(laenge) t.left(90) t.forward(breite) t.left(90)

def verarbeiten(quelltext): dokument = parseString(quelltext) rechteck_knoten = dokument.getElementsByTagName("rechteck") for knoten in rechteck_knoten: verarbeiteRechteck(knoten)

Page 80: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

80

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)

# Testf_xml = file("grafik.xml", "r")xml_quelltext = f_xml.read()print xml_quelltextverarbeiten(xml_quelltext)

Page 81: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

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

Page 82: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

82

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

Page 83: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

83

Einstieg - Verarbeitung von Grafik-Dok.

# -*- coding: iso-8859-1 -*-from xml.dom.minidom import *# Konstantensvg_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>"""# Verarbeitungdef verarbeiten(quelltext): # siehe ...# Testf_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()

Page 84: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

84 Fachkonzept - Compiler

<?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>

Ein Compiler ist ein Programm, das Sätze einer Sprache in eine andere Sprache übersetzt.

grafik

svg

Page 85: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

85 Teil 8

XML im Informatikunterricht

Page 86: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

86

Lehrplan für das Grundfach Informatik

fundamentale Idee

XML

unterrichtliche Umsetzung

Darstellung mit formalen Sprachen

Page 87: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

87 Fundamentale Ideen

fachliche Bedeutung

Darstellung mit formalen Sprachen

Vermittelbarkeit

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)

Vermittelbarkeit

fachliche Bedeutung

Vgl.: Schubert / Schwill: Didaktik der Informatik, S. 86 ff

Nach: J. S. Bruner: The Process of Education. 1960.

Page 88: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

88

Fachgegenstand → Lerngegenstand

Formale Sprachen

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.

Nach P. Hubwieser: Didaktik der Informatik, S. 83 ff

Validierer

XML

ODF

Inhaltliche Ausrichtung des Unterrichts an fundamentalen Fachkonzepten der Informatik

Page 89: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

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

Page 90: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

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

Siehe: LOGIN 154/155, S. 33

Kompetenzentwicklung erfordert handlungsorientierte Auseinandersetzung mit Fachkonzepten in geeigneten (speziellen) Kontexten

Information zur Weiterverarbeitung in Informatiksystemen aufbereiten ... (Grundfach-LP)

Page 91: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

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

Page 92: Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung  - mit XML -

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