Darstellung von Information

Download Report

Transcript Darstellung von Information

Informationsdarstellung
mit XML
Klaus Becker
2013
2
Informationsdarstellung mit XML
<zufi>
</zufi>
3
Teil 1
Darstellung von Information
4
Die "Welt" der Grafiken
Grafiken begegnen einem überall, natürlich auch auf Computerbildschirmen. Grafiken werden
eingesetzt, um Information nach dem Motto "ein Bild sagt mehr als tausend Worte" zu
übermitteln.
Wie kommen Grafiken "in den Computer"? Wie werden sie dargestellt, so dass sie von einem
Computer bzw. von einem speziellen Computerprogramm angezeigt werden können? Mit
diesen Fragen sollst du dich hier beschäftigen.
5
Pixelgrafik
Eine Pixelgrafik (man sagt auch Rastergrafik) setzt sich aus sehr vielen Pixeln (Bildelementen /
Rasterzellen) zusammen.
Wenn man eine Pixelgrafik vergrößert,
ist die Pixelstruktur deutlich zu
erkennen.
Pixelgrafiken verwendet man
insbesondere bei Fotos.
6
Vektorgrafik
Eine Vektorgrafik setzt sich aus geometrischen Objekten zusammen.
Vektorgrafiken eignen sich zur Darstellung von Bildern, die aus geometrischen Objekten
zusammengesetzt sind. Die Beschreibung solcher Grafiken mit geometrischen Objekten
ermöglicht es, die Grafiken strukturgetreu zu vergrößern oder verkleinern.
Wir werden im Folgenden solche Vektorgrafiken genauer betrachten.
7
Aufgabe
(a) Stelle dir vor, du sollst die vorliegende Grafik jemandem - der
die Grafik nicht sieht - möglichst genau beschreiben. Welche
Informationen würdest du übermittel? Ergänze hierzu die folgende
Auflistung.
 Es handelt sich um eine quadratische Grafik mit orangem
Hintergrund.
 Die Grafik enthält ein Polygon (Vieleck), das aus 11 Punkten
besteht. Das Polygon ist im Innern mit der Farbe weiß gefüllt.
 ...
(b) Welche weiteren Daten (wie z.B. Ausmaße der Grafik) müsste
man angeben, damit jemand die Grafik reproduzieren kann?
8
Aufgabe
<?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="240" height="240">
<rect x="0" y="0" width="240" height="240" fill="orange"></rect>
<polygon
points="160 10 20 100 60 170 110 160 150 220 200 230 210 180 190 110 160 120 150 100 170 60"
fill="white"></polygon>
<polygon points="110 50 100 70 130 70 140 50" fill="red"></polygon>
<polygon points="160 190 150 210 180 210 190 190" fill="red"></polygon>
<polygon points="120 120 100 130 120 140 140 130" fill="blue"></polygon>
<rect x="100" y="90" width="40" height="20" fill="green" stroke="none"></rect>
<rect x="150" y="160" width="40" height="20" fill="green" stroke="none"></rect>
<line x1="120" y1="70" x2="120" y2="90" stroke="gray" stroke-width="4px"></line>
<line x1="120" y1="110" x2="120" y2="120" stroke="gray" stroke-width="4px"></line>
<line x1="100" y1="130" x2="78" y2="130" stroke="gray" stroke-width="4px"></line>
<line x1="80" y1="130" x2="80" y2="80" stroke="gray" stroke-width="4px"></line>
<line x1="78" y1="80" x2="120" y2="80" stroke="gray" stroke-width="4px"></line>
<line x1="120" y1="140" x2="120" y2="150" stroke="gray" stroke-width="4px"></line>
<line x1="118" y1="150" x2="172" y2="150" stroke="gray" stroke-width="4px"></line>
<line x1="170" y1="150" x2="170" y2="160" stroke="gray" stroke-width="4px"></line>
<line x1="170" y1="180" x2="170" y2="190" stroke="gray" stroke-width="4px"></line>
</svg>
Versuche, die Bedeutung möglichst vieler Bestandteile des gezeigten Quelltextes
herauszufinden. Markiere und kommentiere im Quelltext die Teile, die du auf der Webseite
wiederfinden.
9
Informationsmodellierung - Grafiken
svg
svg
xmlns=...
width="240"
height="240"
rect
polygon
rect
polygon
polygon
x="0"
y="0"
width="240"
height="240"
fill="orange"
rect
polygon
rect
points="160 10 ..."
fill="white"
polygon
line
polygon
line
...
points="110 50 ..."
fill="red"
...
Vektorgrafiken werden mit Hilfe geometrischer Objekte beschrieben.
10
Informationsmodellierung - Grafiken
<?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="240" height="240">
<rect x="0" y="0" width="240" height="240" fill="orange"></rect>
<polygon
points="160 10 20 100 60 170 110 160 150 220 200 230 210 180 190 110 160 120 150 100 170 60"
fill="white"></polygon>
<polygon points="110 50 100 70 130 70 140 50" fill="red"></polygon>
<polygon points="160 190 150 210 180 210 190 190" fill="red"></polygon>
<polygon points="120 120 100 130 120 140 140 130" fill="blue"></polygon>
<rect x="100" y="90" width="40" height="20" fill="green" stroke="none"></rect>
<rect x="150" y="160" width="40" height="20" fill="green" stroke="none"></rect>
<line x1="120" y1="70" x2="120" y2="90" stroke="gray" stroke-width="4px"></line>
<line x1="120" y1="110" x2="120" y2="120" stroke="gray" stroke-width="4px"></line>
<line x1="100" y1="130" x2="78" y2="130" stroke="gray" stroke-width="4px"></line>
<line x1="80" y1="130" x2="80" y2="80" stroke="gray" stroke-width="4px"></line>
<line x1="78" y1="80" x2="120" y2="80" stroke="gray" stroke-width="4px"></line>
<line x1="120" y1="140" x2="120" y2="150" stroke="gray" stroke-width="4px"></line>
<line x1="118" y1="150" x2="172" y2="150" stroke="gray" stroke-width="4px"></line>
<line x1="170" y1="150" x2="170" y2="160" stroke="gray" stroke-width="4px"></line>
<line x1="170" y1="180" x2="170" y2="190" stroke="gray" stroke-width="4px"></line>
</svg>
SVG steht für Scalable Vector Graphics. SVG ist eine Sprache, mit der man die Objekte einer
Grafik präzise beschreiben kann.
11
Die "Welt" der Musik
Früher haben Komponisten die Noten zu ihren neuen Musikstücken per Hand auf Notenpapier
übertragen. Heute können sie die Musik direkt "einspielen", der Computer überträgt die Töne
dann automatisch in das Notensystem.
Wie kann man ein Musikstück so darstellen, dass die Noten von einem Computer bzw. von
einem speziellen Computerprogramm angezeigt und auch abgespielt werden können?
12
Wir schauen uns zunächst die
Darstellung von Noten in der
Sprache MusicXML an.
Schaue dir die MusicXMLDarstellung zu den Noten des
Liedes "Bruder Jakob" an (siehe
I: ...). Versuche, möglichst viele
Informationen zur
Notendarstellung des Liedes
"Bruder Jakob" in der
MusicXML-Darstellung
wiederzufinden.
Experimentiere auch mit dem
Programm MuseScore.
Aufgabe
13
Informationsmodellierung - Musik
Note
Tonhöhe
Oktave
eingestrichen
Bezeichner
f
Spieldauer
...
Notentyp
Viertelnote
Notenhals
nach oben
Lyrik
Silbe
Anfang
Text
'Bru'
14
Informationsmodellierung - Musik
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE score-partwise PUBLIC
"-//Recordare//DTD MusicXML 2.0 Partwise//EN"
"http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise>
<identification>
<encoding>
<software>MuseScore 1.1</software>
<encoding-date>2012-02-16</encoding-date>
</encoding>
</identification>
...
<note default-x="102.19" default-y="-35.00">
<pitch>
<step>F</step>
<octave>4</octave>
</pitch>
<duration>2</duration>
<voice>1</voice>
<type>quarter</type>
<stem>up</stem>
<lyric number="1">
<syllabic>begin</syllabic>
<text>Bru</text>
</lyric>
</note>
...
MusicXML ist eine Sprache, mit der man die Noten eines Musikstücks präzise beschreiben
kann.
15
Informationsmodellierung - Musik
X: 1
T: Bruder Jakob
C: Traditional
L: 1/4
K: F
FGAF|FGAF|
w: Bru-der Ja-kob! Bru-der Ja-kob!
ABc2|ABc2|
w: Schläfst du noch? Schläfst du noch?
c/ d/ c/ B/ AF|c/ d/ c/ B/ AF|
w: Hörst du nicht die Glo-cken? Hörst du nicht die Glo-cken?
FCF2|FCF2|]
w: Ding dong ding ding dong ding.
ABC ist eine Sprache, mit der man die Noten eines Musikstücks präzise beschreiben kann.
Darstellung von Information
16
Information
Lied: „Bruder Jakob, ..."
Repräsentieren
Darstellen
X: 1
T: Bruder Jakob
C: Traditional
L: 1/4
K: F
FGAF|FGAF|
w: Bru-der Ja-kob! Bru-der Ja-kob!
ABc2|ABc2|
w: Schläfst du noch? Schläfst du noch?
c/ d/ c/ B/ AF|c/ d/ c/ B/ AF|
w: Hörst du nicht die Glo-cken? Hörst du nicht die Glo-cken?
FCF2|FCF2|]
w: Ding dong ding ding dong ding.
Daten
Interpretieren
Deuten
...
...
<note default-x="102.19" default-y="-35.00">
<pitch>
<step>F</step>
<octave>4</octave>
</pitch>
<duration>2</duration>
<voice>1</voice>
<type>quarter</type>
<stem>up</stem>
<lyric number="1">
<syllabic>begin</syllabic>
<text>Bru</text>
</lyric>
</note>
Musik kann man auf unterschiedliche Weise (in Form von Daten) so darstellen, dass sie
automatisiert verarbeitet werden kann.
17
Früher musste man in
einen Atlas schauen oder
sich spezielle Karten
besorgen, um an die
gewünschte GeoInformation
heranzukommen. Heute
kann man spezielle
Webseiten aufrufen, die
neben der gesuchten
Information eine Vielzahl
an weiteren
Funktionalitäten bereit
stellen.
Wie kann man GeoInformation so darstellen,
dass sie von einem
Computer bzw. von einem
speziellen
Computerprogramm
verwaltet und angezeigt
werden kann?
Eine "Geo-Welt"
18
Exkurs - OpenStreetMap
Die Karten von
OpenStreetMap werden
erstellt, indem freiwillige
Helfer Geodaten sammeln
und in eine Datenbank
hochladen. Wenn ein
Benutzer sich einen
Kartenausschnitt anzeigen
lässt, dann werden die
benötigten Geodaten aus
der Datenbank
zusammengesucht.
Wir werden uns im
Folgenden hier genauer
anschauen, wie
Geoinformation so in
Form von Geodaten
dargestellt werden kann,
dass sie von einem
Computerprogramm
verarbeitet werden kann.
19
Die Webseite zu
OpenStreetMap bietet einen
Export von Karten an. Wir
wählen als Export-Format
"OpenStreetMap-XML-Daten"
und speichern die Daten in
einer Datei mit einem
passenden Dateinamen (z.B.
"map_palastgarten.osm") ab.
Die Datei enthält dann eine
Beschreibung des gewählten
Kartenausschnitts in der
Sprache OSM.
(a) Suche verschiedene GeoObjekte in der OSMBeschreibung, z.B. den Teich,
die Stadtmauer, das
Landesmuseum, ....
(b) Stelle erste Vermutungen
auf, wie Geo-Objekte in der
Sprache OSM dargestellt
werden.
Aufgabe
20
Aufgabe
Zur Bearbeitung von OpenStreetMapGeodaten verwenden wir das
Softwarewerkzeug JOSM.
Jetzt geht es ans Experimentieren.
Hierdurch kannst du dir die Darstellung
einzelner Geo-Objekte teilweise selbst
erschließen.
(a) Verändere mit dem Werkzeug JOSM
Schritt für Schritt den Kartenausschnitt
und beobachte, wie sich die
Veränderungen in der zugehörigen OSMBeschreibung zeigen. Die folgende
Abbildung zeigt eine veränderte Karte,
bei der der Teich und das
Toilettenhäuschen verlegt wurden und
bei der ein Baum eingezeichnet wurde.
(b) Führe auch gezielt kleinere
Veränderungen im Quelltext
map_palastgarten.osm durch. Schaue dir
anschließend die zugehörige Karte mit
dem Werkzeug JOSM an.
21
Informationsmodell. - Geo-Information
Polygonzug
Punkt
Breitengrad: 49.7522382
Längengrad: 6.6445699
...
Beschreibung: Spielfeld
<?xml version="1.0" encoding="UTF-8"?>
<osm version="0.6" generator="CGImap 0.0.2">
...
<way id="111469539" ...>
<nd ref="1269920115"/>
<nd ref="1269920121"/>
<nd ref="1269920123"/>
<nd ref="1269920110"/>
<nd ref="1269920115"/>
<tag k="leisure" v="pitch"/>
</way>
...
<node id="1269920115" lat="49.7522382" lon="6.6445699" .../>
<node id="1269920121" lat="49.7523975" lon="6.6443980" ..."/>
<node id="1269920123" lat="49.7525854" lon="6.6448151" ..."/>
<node id="1269920110" lat="49.7524260" lon="6.6449870" .../>
...
</osm>
22
Informationsmodell. - Geo-Information
<?xml version="1.0" encoding="UTF-8"?>
<osm version="0.6" generator="CGImap 0.0.2">
...
<way id="111469539" ...>
<nd ref="1269920115"/>
<nd ref="1269920121"/>
<nd ref="1269920123"/>
<nd ref="1269920110"/>
<nd ref="1269920115"/>
<tag k="leisure" v="pitch"/>
</way>
...
<node id="1269920115" lat="49.7522382" lon="6.6445699" .../>
<node id="1269920121" lat="49.7523975" lon="6.6443980" ..."/>
<node id="1269920123" lat="49.7525854" lon="6.6448151" ..."/>
<node id="1269920110" lat="49.7524260" lon="6.6449870" .../>
...
</osm>
OSM ist eine Sprache, mit der im OpenStreetMap-Projekt Geoinformation präzise beschrieben
wird.
Darstellung von Information
23
...
Information
Repräsentieren
Darstellen
Interpretieren
Deuten
Darstellung
von
Information
Menschen versuchen seit eh und je, "Lebenswelten" mit Hilfe von Darstellungen zu erfassen.
Darstellung von Information
24
Information
...Geo-Information...
Repräsentieren
Darstellen
Interpretieren
Deuten
Darstellung
von
Information
Für bestimmte "Lebenswelten" wurden im Laufe der Zeit charakteristische Darstellungsformen
entwickelt. So wird die "Geo-Lebenswelt" (z.B. Gewässer, Berge, Grenzen, ...) üblicherweise mit
Hilfe von Karten dargestellt.
Darstellung von Information
25
Information
...Geo-Information...
Repräsentieren
Darstellen
Daten
Interpretieren
Deuten
<?xml version="1.0" encoding="UTF-8"?>
<osm version="0.6" generator="CGImap 0.0.2">
...
<way id="111469539" ...>
<nd ref="1269920115"/>
<nd ref="1269920121"/>
<nd ref="1269920123"/>
<nd ref="1269920110"/>
<nd ref="1269920115"/>
<tag k="leisure" v="pitch"/>
</way>
...
</osm>
Heute versucht man, "Lebenswelten" im Computer zu repräsentieren. Hierzu ist es erforderlich,
die gesamte relevante Information, die eine "Lebenswelt" ausmacht, computergerecht (in Form
von Daten) darzustellen.
Darstellung von Information
26
"Lebenswelten" sind meist recht komplex. Es ist daher gar nicht so einfach, die Struktur einer
"Lebenswelt" adäquat zu erfassen.
Zur computergerechten Darstellung von "Lebenswelten" benutzt man heute sehr oft
Auszeichnungssprachen. Das sind Sprachen, die Auszeichnungen zur Beschreibung der Struktur
von "Lebenswelten" benutzen.
Daten
<?xml version="1.0" encoding="UTF-8"?>
<osm version="0.6" generator="CGImap 0.0.2">
...
<way id="111469539" ...>
<nd ref="1269920115"/>
<nd ref="1269920121"/>
<nd ref="1269920123"/>
<nd ref="1269920110"/>
<nd ref="1269920115"/>
<tag k="leisure" v="pitch"/>
</way>
...
</osm>
So benutzt die Sprache OSM Auszeichnungen wie <way>...</way>, um bestimmte GeoObjekte (hier Wege zur Begrenzung eines Objektes) zu charakterisieren. Auszeichnungen
bestehend aus einem öffnenden Tag <way> und einem schließenden Tag </way> werden
dabei benutzt, um den umschließenden Inhalt in einer bestimmten Weise zu charakterisieren.
Beachte, dass es auch andere Formen der Informationsdarstellung gibt.
27
Teil 2
XML-Dokumente
28
Beispiel - XHTML-Dokument
29
Beispiel - SVG-Dokument
30
Beispiel - MusicXML-Dokument
31
Ein selbst erstelltes Dokument
<?xml version="1.0" encoding="iso-8859-1"?>
<Kurs>
<!-- Organisation -->
<Fach>Informatik</Fach>
<Typ>Grundkurs</Typ>
<Stufe>11</Stufe>
<Bezeichner>11-in-1</Bezeichner>
<Unterricht>
<Einheit>
<Tag>Montag</Tag>
<Stunde>7</Stunde>
<Raum>B04</Raum>
</Einheit>
<Einheit>
<Tag>Mittwoch</Tag>
<Stunde>3</Stunde>
</Einheit>
<Einheit>
<Tag>Mittwoch</Tag>
<Stunde>4</Stunde>
</Einheit>
</Unterricht>
<!-- Personen -->
...
...
<Lehrer kürzel="SU" geschlecht="w">
<Name>Schuster</Name>
<Vorname>Christiane</Vorname>
</Lehrer>
<Schüler geschlecht="m">
<Name>Schwarz</Name>
<Vorname>Tobias</Vorname>
</Schüler>
<Schüler geschlecht="w">
<Name>Baum</Name>
<Vorname>Nina</Vorname>
</Schüler>
<Schüler geschlecht="w">
<Name>Müller</Name>
<Vorname>Katrin</Vorname>
<Kurssprecher/>
</Schüler>
<Schüler geschlecht="m">
<Name>Roth</Name>
<Vorname>Andreas</Vorname>
</Schüler>
<!-- ... -->
</Kurs>
Welche "Welt" wird hier beschrieben? Beschreibe sie in Worten.
Welche Informationen sind im gezeigten XML-Dokument dargestellt? Beschreibe sie in Worten.
32
Fachkonzept - XML
<?xml version="1.0" encoding="iso-8859-1"?>
<Kurs>
<!-- Organisation -->
<Fach>Informatik</Fach>
<Typ>Grundkurs</Typ>
<Stufe>11</Stufe>
<Bezeichner>11-in-1</Bezeichner>
<Unterricht>
<Einheit>
<Tag>Montag</Tag>
<Stunde>7</Stunde>
<Raum>B04</Raum>
</Einheit>
<Einheit>
<Tag>Mittwoch</Tag>
<Stunde>3</Stunde>
</Einheit>
<Einheit>
<Tag>Mittwoch</Tag>
<Stunde>4</Stunde>
</Einheit>
</Unterricht>
<!-- Personen -->
...
...
<Lehrer kürzel="SU" geschlecht="w">
<Name>Schuster</Name>
<Vorname>Christiane</Vorname>
</Lehrer>
<Schüler geschlecht="m">
<Name>Schwarz</Name>
<Vorname>Tobias</Vorname>
</Schüler>
<Schüler geschlecht="w">
<Name>Baum</Name>
<Vorname>Nina</Vorname>
</Schüler>
<Schüler geschlecht="w">
<Name>Müller</Name>
<Vorname>Katrin</Vorname>
<Kurssprecher/>
</Schüler>
<Schüler geschlecht="m">
<Name>Roth</Name>
<Vorname>Andreas</Vorname>
</Schüler>
<!-- ... -->
</Kurs>
XML steht für "eXtensible Markup Language". XML ist eine universelle, erweiterbare Sprache,
mit der man konkrete Auszeichnungssprachen erzeugen kann.
33
XML-Dokumente
<?xml version="1.0" encoding="iso-8859-1"?>
<Kurs>
<!-- Organisation -->
<Fach>Informatik</Fach>
<Typ>Grundkurs</Typ>
<Stufe>11</Stufe>
<Bezeichner>11-in-1</Bezeichner>
<Unterricht>
<Einheit>
<Tag>Montag</Tag>
<Stunde>7</Stunde>
<Raum>B04</Raum>
</Einheit>
<Einheit>
<Tag>Mittwoch</Tag>
<Stunde>3</Stunde>
</Einheit>
<Einheit>
<Tag>Mittwoch</Tag>
<Stunde>4</Stunde>
</Einheit>
</Unterricht>
<!-- Personen -->
...
Darstellung im
Editor
XMLDokumente
werden
benutzt, um
Information
strukturiert
darzustellen.
Die
Strukturierung
erfolgt in Form
eines Baumes.
Anzeige mit
einem Browser
XML-Elemente
34
 Grundbausteine eines XMLDokuments sind die XMLElemente.
 Ein XML-Element besteht
dabei aus einem öffnenden
Tag, einem Inhalt und einem
schließenden Tag.
 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.
leeres Element
Wurzelelement
Element als
Container
Element mit
Zeicheninhalt
Tags
35
 Elemente werden mit Hilfe
von Tags beschrieben.
 Tags werden mit Hilfe von
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.
Anfangstag
Endtag
 Tags müssen korrekt
geschachtelt werden.
 Bei einem leeren Element
wird i. d. Regel eine verkürzte
Tag-Schreibweise benutzt.
<Kurssprecher></Kurssprecher>
36
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
37
Prolog / Kommentare
 Ein XML-Dokument beginnt in der Regel mit dem Prolog <?xml ... ?>. Der Prolog
kennzeichnet das Dokument als XML-Dokument.
<?xml version="1.0" encoding="iso-8859-1"?>
<Kurs>
<!-- Organisation -->
<Fach>Informatik</Fach>
<Typ>Grundkurs</Typ>
<Stufe>11</Stufe>
<Bezeichner>11-in-1</Bezeichner>
<Unterricht>
<Einheit>
<Tag>Montag</Tag>
<Stunde>7</Stunde>
<Raum>B04</Raum>
</Einheit>
<Einheit>
<Tag>Mittwoch</Tag>
<Stunde>3</Stunde>
</Einheit>
<Einheit>
<Tag>Mittwoch</Tag>
<Stunde>4</Stunde>
</Einheit>
</Unterricht>
<!-- Personen -->
...
Prolog
 Im Prolog kann der Zeichensatz
festgelegt werden, der zur Kodierung
benutzt wird. Fehlt die Angabe des
Zeichensatzes, so wird utf-8 als Vorgabe
benutzt.
 Kommentare erleichtern das Verständnis
und werden vom Browser mit angezeigt.
Kommentar
38
Wohlgeforme XML-Dokumente
Ein XML-Dokument, das alle Regeln von XML erfüllt, heißt
wohlgeformt.
39
Anwendung - FilmXML
Aufgaben
(a) Recherchiere entsprechende Filmdaten auch zu anderen
Filmen.
(b) Erstelle eine Liste mit den Informationen, die erfasst
werden sollen.
(c) Entwickle ein XML-Dokument, mit dem die (gewünschten)
Informationen über der Film "Titanic" adäquat dargestellt
werden.
(d) Erstelle ein XML-Dokument mit der gleichen XMLDokumentenstruktur zu einem weiteren Film.
(e) Öffne die XML-Dokumente mit einem Browser und teste auf
diese Weise, ob sie wohlgeformt sind.
<?xml version="1.0" encoding="iso-8859-1"?>
<Film>
<!-- Rahmendaten -->
<Titel>Titanic</Titel>
<Erscheinungsjahr>1997</Erscheinungsjahr>
...
<!-- Darstellung der Figuren -->
...
</Film>
40
Anwendung - FußballXML
Aufgaben
(a) Recherchiere entsprechende Daten
auch zu anderen Spielen.
(b) Erstelle eine Liste mit den
Informationen, die erfasst werden sollen.
(c) Entwickle ein XML-Dokument, mit dem
die (gewünschten) Informationen über
das gezeigte Fußballspiel adäquat
dargestellt werden.
(d) Erstelle ein XML-Dokument mit der
gleichen XML-Dokumentenstruktur zu
einem weiteren Fußballspiel.
(e) Öffne die XML-Dokumente mit einem
Browser und teste auf diese Weise, ob sie
wohlgeformt sind.
<?xml version="1.0" encoding="iso-8859-1"?>
<Fußballspiel>
<!-- Rahmendaten -->
<Heim>1. FC Kaiserslautern</Heim>
<Gast>1. FSV Mainz 05</Gast>
...
</Fußballspiel>
41
Teil 3
XML-Dokumenttypen
42
Einheitliche Dokumentstruktur
43
Dokumenttypdefinition
<?xml version="1.0" encoding="iso-8859-1"?>
<!ELEMENT Kurs (Fach, Typ, Stufe, Bezeichner, Unterricht, Lehrer, Schüler*)>
<!ELEMENT Fach (#PCDATA)>
<!ELEMENT Typ (#PCDATA)>
<!ELEMENT Stufe (#PCDATA)>
<!ELEMENT Bezeichner (#PCDATA)>
<!ELEMENT Unterricht (Einheit+)>
<!ELEMENT Einheit (Tag, Stunde, Raum?)>
<!ELEMENT Tag (#PCDATA)>
<!ELEMENT Stunde (#PCDATA)>
<!ELEMENT Raum (#PCDATA)>
<!ELEMENT Lehrer (Name, Vorname)>
<!ATTLIST Lehrer
kürzel CDATA #REQUIRED
geschlecht CDATA #REQUIRED
>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Vorname (#PCDATA)>
<!ELEMENT Schüler (Name, Vorname, Kurssprecher?)>
<!ATTLIST Schüler
geschlecht CDATA #REQUIRED
<?xml version="1.0" encoding="iso-8859-1"?>
>
<!ELEMENT Kurssprecher EMPTY>
<!DOCTYPE Kurs SYSTEM "kurs.dtd">
XML-Dokument
Notepad++
kurs.dtd
Dokumenttypdefinition
Einbindung der DTD
<Kurs>
...
</Kurs>
Eine Dokumenttypdefinition (kurz DTD) legt einen Dokumenttyp präzise fest.
44
Validierung eines XML-Dokuments
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.
Ein XML-Dokument, das alle Festlegungen einer DTD erfüllt, heißt gültig bzw. valide bzgl. dieser
DTD.
45
Exkurs - Dokumenttypdefinitionen
Eine Dokumenttypdefinition beschreibt den Aufbau eines XML-Dokuments aus Elementen
sowie die Attributstruktur der Elemente.
<!ELEMENT Kurs (Fach, Typ, Stufe, Bezeichner, Unterricht,
Lehrer, Schüler*)>
<!ELEMENT Fach (#PCDATA)>
<!ELEMENT Typ (#PCDATA)>
<!ELEMENT Stufe (#PCDATA)>
<!ELEMENT Bezeichner (#PCDATA)>
<!ELEMENT Unterricht (Einheit+)>
<!ELEMENT Einheit (Tag, Stunde, Raum?)>
<!ELEMENT Tag (#PCDATA)>
<!ELEMENT Stunde (#PCDATA)>
<!ELEMENT Raum (#PCDATA)>
<!ELEMENT Lehrer (Name, Vorname)>
<!ATTLIST Lehrer
kürzel CDATA #REQUIRED
geschlecht CDATA #REQUIRED
>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Vorname (#PCDATA)>
<!ELEMENT Schüler (Name, Vorname, Kurssprecher?)>
<!ATTLIST Schüler
geschlecht CDATA #REQUIRED
>
<!ELEMENT Kurssprecher EMPTY>
DTD in
automat.dtd
Das Wurzelelement hat den Namen "Kurs".
Ein Element vom Typ "Kurs" besteht aus einer
Folge/Sequenz aus Elementen: einem Element vom Typ
"Fach" gefolgt von einem Element vom Typ "Typ" ...
gefolgt von beliebig vielen Elementen vom Typ "Schüler".
Ein Element vom Typ "Fach" besteht aus Zeichen (parsed
character data).
...
Ein Element vom Typ "Unterricht" besteht aus beliebig
vielen Elementen (aber mindestens einem) vom Typ
"Einheit".
Ein Element vom Typ "Einheit" besteht aus einer
Folge/Sequenz aus Elementen: einem Element vom Typ
"Tag" gefolgt von einem Element vom Typ "Stunde" evtl.
gefolgt einem Element vom Typ "Raum".
...
Ein Element vom Typ "Lehrer" hat die Attribute "Name"
und "Vorname", die beide nicht weggelassen werden
können und deren Werte Zeichenketten sind.
...
Ein Element vom Typ "Kurssprecher" ist ein leeres
Element.
46
Exkurs - Dokumenttypdefinitionen
Operator
Bedeutung
()
Bildung von Elementgruppen
,
Trennzeichen innerhalb einer Sequenz von Elementen
|
Trennzeichen zwischen sich ausschließenden Alternativen
*
Element(gruppe) kann beliebig oft (auch gar nicht) vorkommen
+
Element(gruppe) muss mindestens einmal, kann mehrfach vorkommen
?
Element(gruppe) kann einmal oder kein mal vorkommen
<!ELEMENT Name Inhaltsmodell>
Elementtyp-Deklaration
<!ELEMENT Kurs (Fach, Typ, Stufe, Bezeichner, Unterricht,
Lehrer, Schüler*)>
<!ELEMENT Fach (#PCDATA)>
<!ELEMENT Typ (#PCDATA)>
<!ELEMENT Stufe (#PCDATA)>
<!ELEMENT Bezeichner (#PCDATA)>
<!ELEMENT Unterricht (Einheit+)>
<!ELEMENT Einheit (Tag, Stunde, Raum?)>
<!ELEMENT Tag (#PCDATA)>
<!ELEMENT Stunde (#PCDATA)>
<!ELEMENT Raum (#PCDATA)>
<!ELEMENT Lehrer (Name, Vorname)>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Vorname (#PCDATA)>
<!ELEMENT Schüler (Name, Vorname, Kurssprecher?)>
<!ELEMENT Kurssprecher EMPTY>
47
Exkurs - Dokumenttypdefinitionen
Inhaltsmodell
Beschreibung
Elementinhalt
Das Element enthält ausschließlich Unterelemente.
<!ELEMENT Einheit (Tag, Stunde, Raum?)>
<Einheit><Tag>Montag</Tag><Stunde>7</Stunde><Raum>B04</Raum></Einheit>
#PCDATA
Das Element enthält nur Zeichendaten.
<!ELEMENT Fach (#PCDATA)>
<Fach>Informatik</Fach>
gemischter Inhalt
Das Element kann Zeichendaten und Unterelemente enthalten
<!ELEMENT anrede (#PCDATA?, vormame, name)>
<anrede>Frau<vorname>Christiane</vorname><name>Meier</name></anrede>
EMPTY
Das Element hat keinen Inhalt.
<!ELEMENT Kurssprecher EMPTY>
<Kurssprecher/>
ANY
Das Element kann beliebige Inhalte haben.
48
Exkurs - Dokumenttypdefinitionen
<!ATTLIST Elementname
Attributname Attributtyp Vorgabewert
Attributname Attributtyp Vorgabewert
Attributname Attributtyp Vorgabewert
...
>
<!ATTLIST Lehrer
kürzel CDATA #REQUIRED
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
...
49
Einbindung einer DTD
 Eine Dokumenttypdefinition kann direkt
in das XML-Dokument nach dem XMLProlog eingebunden werden (interne
DTD).
<?xml version="1.0" encoding="iso-8859-1"?>
 Eine Dokumenttypdefinition kann auch
über eine Referenz auf eine Datei mit dem
XML-Dokument verbunden werden
(externe DTD).
<Kurs>
...
</Kurs>
 Mit dem Schlüsselwort PUBLIC wird auf
eine veröffentlichte DTD verwiesen.
 Als Name der DTD wird der Name d.
Wurzelelement benutzt.
<!DOCTYPE Kurs [
...
]>
interne DTD
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE Kurs SYSTEM "kurs.dtd">
<Kurs>
...
</Kurs>
externe DTD
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1strict.dtd">
<html>
...
</html>
<!DOCTYPE Name [...]>
externe DTD
50
Anwendung – FilmXML / FussballXML
Aufgaben
(a) Entwickle eine geeignete Dokumenttypdefinition zur Beschreibung der Struktur gültigen
FilmXML-Dokumente bzw. FussbalXML-Dokuments.
(b) Validiere selbst erstellte XML-Dokumente bzgl. Der festgelegten DTD.
51
Exkurs - Sprachen
Sprachen sind Zeichensysteme, die u.
a. für Kommunikation genutzt werden.
<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>
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
52
Lexik, Syntax, Semantik, Pragmatik
Aspekte von Sprachen:
Lexik: Lehre vom Wortschatz
Gesamtheit der Wörter der Sprache
Syntax: Lehre vom Satzbau
Regeln, nach denen Sätze gebildet
werden
Semantik: Bedeutungslehre
Bedeutung von Wörtern, Sätzen, ...
Pragmatik: Lehre von der
Verwendung sprachlicher Konstrukte
in Handlungssituationen
53
Sprachfestlegung mit XML
XML ermöglicht es, mit Hilfe von DTD neue Sprachen formal festzulegen. Die DTD ist die
Grammatik der betreffenden Sprache, dargestellt unter Verwendung der erweiterten BackusNaur-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)
Grammatik einer sehr
einfachen Variante von HTML
<!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 >
]>