XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben •...

26
XML light XML bearbeiten Jörn Clausen [email protected]

Transcript of XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben •...

Page 1: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

XML light

XML bearbeiten

Jörn [email protected]

Page 2: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

Übersicht

• Formen von XML

• Nutzen von Grammatiken

• XML-Mode des Emacs

• Beispiel-Sprache: XHTML

XML light XML bearbeiten 2/25

Page 3: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

Daten 6= Daten?

<atoms>

<atom>

<name>Hydrogen</name>

<symbol>H</symbol>

<anum>1</anum>

<aweight>1.00797</aweight>

</atom>

<atom>

<name>Helium</name>

<symbol>He</symbol>

<anum>2</anum>

<aweight>4.0026</aweight>

</atom>

</atoms>

<glossary>

<glossentry id="Berzerkeley">

<glossterm>Berzerkeley</glossterm>

<glossdef>

<para>Humorous distortion of

<quote>Berkeley</quote> used

esp. to refer to the

practices or products of the

<glossterm>BSD</glossterm> Unix

hackers. See <glossterm>software

bloat</glossterm>,

<glossterm>Berkeley Quality

Software</glossterm>.</para>

</glossdef>

</glossentry>

</glossary>

XML light XML bearbeiten 3/25

Page 4: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

Daten-Typen

• data centric

– regelmäßige, sich wiederholende Struktur

– evtl. tiefe Schachtelung

– Daten nur in den „Blättern“

• document centric

– Text von Elementen unterbrochen– Elemente an (fast) beliebigen Positionen

<para>... there lived a <index>Hobbit</index>.</para>

– mixed content

XML light XML bearbeiten 4/25

Page 5: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

Daten-Typen

• data centric

– regelmäßige, sich wiederholende Struktur

– evtl. tiefe Schachtelung

– Daten nur in den „Blättern“

• document centric

– Text von Elementen unterbrochen– Elemente an (fast) beliebigen Positionen

<para>... there lived a <index>Hobbit</index>.</para>

– mixed content

• Text 6= Daten?

XML light XML bearbeiten 4/25

Page 6: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

Grammatiken

• formale Beschreibung der Markup-Sprache

• Wo dürfen welche Elemente/Attribute vorkommen?

• XML-Parser kann Validität einer Instanz überprüfen

• nur Syntax, nicht Semantik

• verschiedene Grammatik-Sprachen

– Document Type Definition (DTD)

– W3C XML Schema

– Relax NG

– . . .

XML light XML bearbeiten 5/25

Page 7: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

Aufgaben

• Die Datei chemicals.xml enthält Informationen über chemischeElemente. Überzeuge Dich davon, daß es sich um einewohlgeformte XML-Datei handelt:

$ xmllint chemicals.xml

• Die Datei atoms.dtd enthält eine formale Beschreibung der inchemicals.xml verwendeten Markup-Sprache. Überprüfe mit

$ xmllint --valid chemicals.xml

ob die XML-Datei auch valide ist. Falls nicht, korrigiere sieentsprechend mit dem Emacs.

• Woher weiß xmllint , daß atoms.dtd die Grammatik zuchemicals.xml enthält?

XML light XML bearbeiten 6/25

Page 8: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

Aufgaben

• Setze im Emacs den Cursor direkt hinter das letzte schließendeatom -Tag. Drücke die Tastenkombination

C-c C-e Return

Was passiert?

• Vervollständige den Eintrag: Boron, B, 5, 10.811

• Speichere die Datei ab und überprüfe nochmals mit

$ xmllint --valid chemicals.xml

ob die Datei syntaktisch korrekt ist.

XML light XML bearbeiten 7/25

Page 9: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

Aufgaben

• Öffne die Datei webpage.html mit dem Emacs und aktiviere denXML-Modus:

M-x xml-mode

• Bewege den Cursor an das Dateiende und verwende erneut dieTastenkombination C-c C-e Return . Was passiert?

XML light XML bearbeiten 8/25

Page 10: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

Hypertext Markup Language

• Struktur einer (X)HTML-Datei:

<html>

<head>

...

</head>

<body>

...

</body>

</html>

• header: Metainformationen über das Dokument

• body: das eigentliche Dokument

XML light XML bearbeiten 9/25

Page 11: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

Aufgaben

• Lösche den Kommentar im head -Element und drücke dieTastenfolge

C-c C-e TAB

Was passiert?

• Gib im Minibuffer „title “ ein und drücke Return.

• Im title -Element sollte ein sinnvoller Titel für die Seite stehen.Dieser Eintrag wird z.B. als Bookmark verwendet. Der Eintrag solltealso nicht zu lang, aber trotzdem aussagekräftig sein.

XML light XML bearbeiten 10/25

Page 12: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

Absätze und Überschriften

• Inhalt des Dokuments im body -Element

• Fließtext in Absätzen:

<p> ... </p>

<p> ... </p>

• Überschriften:

<h1> ... </h1>

<h2> ... </h2>

...

<h6> ... </h6>

XML light XML bearbeiten 11/25

Page 13: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

Aufgaben

• Füge einige Absätze mit Text und einige Überschriften in dasbody -Element ein. Verwende die gezeigten Tastenkombinationen.

Blindtext kann man sich mit Hilfe von

http://www.lipsum.com

erzeugen lassen und per cut’n’paste übernehmen.

• Speichere das Dokument ab und sieh es Dir mit einemWeb-Browser an.

• Wie hätte man Überschriften auch realisieren können? Waskönnten Gründe gewesen sein, sich für die gewählte Form zuentscheiden?

XML light XML bearbeiten 12/25

Page 14: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

logisches Markup

• Elemente, um Bedeutung zuzuweisen:– Hervorhebung:

... das sollte man nicht <em>so</em> genau nehmen.

Das hat <strong>keinerlei</strong> Bedeutung.

– Code-Fragmente:... verwendet man die Anweisung <code>printf</code>.

– Tastatureingaben:Drücken Sie die Taste <kbd>X</kbd>.

XML light XML bearbeiten 13/25

Page 15: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

Aufgaben

• Markiere mit der Maus ein einzelnes Wort in einem Absatz unddrücke die Tastenfolge

C-c C-r TAB

Wähle eines der gezeigten Elemente (em, strong , code , kbd )aus.

• Wiederhole den Vorgang mit anderen Worten und anderenElemente. Wie werden die vier Elemente im Web-Browserdargestellt?

XML light XML bearbeiten 14/25

Page 16: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

Aufgaben

• Markiere ein bereits mit „code “ ausgezeichnetes Wort und fügestrong -Tags hinzu. Verwende die Reload-Funktion DeinesWeb-Browsers.

• Setze den Cursor in das Start-Tag des gerade eingefügtenstrong -Elements und drücke die Tastenfolge

C-c -

• Ist es mit Hilfe der gezeigten Tastenkombinationen möglich, dasfolgende, nicht-wohlgeformte Stück XML zu erzeugen?

Dies <em>ist <strong>ein</em> kleiner</strong> Test.

Wie reagiert Dein Web-Browser auf diese Zeile?

XML light XML bearbeiten 15/25

Page 17: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

physikalisches Markup

• Elemente, um Schriftarten auszuwählen:– Kursiv:

... nennt sich <i>Instanz</i>.

– Fett:Scheibe <b>kräftig</b> eindrücken.

– Typewriter:Der Befehl <tt>xmllint</tt> ...

XML light XML bearbeiten 16/25

Page 18: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

Aufgaben

• Setze den Cursor in das Start-Tag eines em-Elements und drückedie Tastenfolge

C-c = TAB

Wähle das Element „b“ aus. Sieh Dir das Ergebnis imWeb-Browser an. Probiere die beiden anderen Schriftarten aus.

• Was ist der Unterschied zwischen den Elementen

em, strong , code , kbd

und

i , b, tt

XML light XML bearbeiten 17/25

Page 19: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

Listen

• HTML kennt mehrere Arten von Listen:

<ul> <ol>

<li> ... </li> <li> ... </li>

<li> ... </li> <li> ... </li>

... ...

</ul> </ol>

• wie Absatz, also nur außerhalb von „p“ erlaubt

• Absatz/Absätze innerhalb eines list items möglich:

<li>kurzer Text</li>

<li>

<p>ein Absatz</p>

<p>noch’n Absatz</p>

</li>

XML light XML bearbeiten 18/25

Page 20: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

Aufgaben

• Wie unterscheiden sich ul - und ol -Listen in der Darstellung?

• Ist es möglich, Listen in Listen zu erzeugen?

XML light XML bearbeiten 19/25

Page 21: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

Tabellen

• zur Darstellung von tabellarischen Daten

• Anordnung von Zeilen und Spalten

• Ursprung: CALS (Continuous Acquisition and Life-Cycle Support)

• häufig zur Formatierung „mißbraucht“

XML light XML bearbeiten 20/25

Page 22: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

table

• Aufbau: Zeilen von Spalten

– tr : table row

– th : table head

– td : table data

<table>

<tr>

<th>Land</th>

<th>Hauptstadt</th>

</tr>

<tr>

<td>Deutschland</td>

<td>Berlin</td>

</tr>

<tr>

<td>Großbrittanien</td>

<td>London</td>

</tr>

</table>

XML light XML bearbeiten 21/25

Page 23: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

Aufgaben

• Erzeuge die folgende Tabelle mit HTML:

Autor Titel Erscheinungsjahr

J.R.R. Tolkien The Lord of the Rings 1954

Douglas Adams The Hitch-Hiker’s Guide to the Galaxy 1979

Michael Ende Die unendliche Geschichte 1979

• Wie breit werden die einzelnen Tabellenspalten und die ganze Tabellegesetzt?

• Wende das Programm „tidy “ auf die XHTML-Datei an. Was hat tidy zuder Tabelle zu sagen?

XML light XML bearbeiten 22/25

Page 24: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

Aufgaben

• Setze den Cursor in das öffnende table -Tag und drücke dieTastenfolge

C-c + TAB

Gib „summary“ ein und drücke Return. Gib eine kurzeBeschreibung der Tabelle an.

XML light XML bearbeiten 23/25

Page 25: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

Aufgaben

• Mit den Attributen frame und rules des table -Elements kannman festlegen, ob und welche Linien in und um die Tabellegezeichnet werden. Die möglichen Belegungen der Attribute sindnicht frei wählbar, sondern durch XHTML festgelegt.

Füge die Attribute in die Tabelle ein. Drücke die TAB-Taste, wennDu im Minibuffer den Wert angeben sollst. Wähle einen dergezeigten Werte aus. Probiere verschiedene Kombinationen für diebeiden Attribute aus.

XML light XML bearbeiten 24/25

Page 26: XML bearbeiten - uni-bielefeld.dejoern/edu/... · XML light XML bearbeiten 22/25. Aufgaben • Setze den Cursor in das öffnende table-Tag und drücke die Tastenfolge C-c + TAB Gib

Was fehlt?

• diverse Elemente und Attribute

• Bilder und Verweise (Hypertext)

➔ Hausaufgabe: SELFHTML

http://selfhtml.teamone.de

• Farben, (mehr) Schriften, Layout

➔ Cascading Style Sheets (CSS): nächste Stunde

• Formatierung von (X)HTML und XML

• Trennung von Inhalt und Formatierung

XML light XML bearbeiten 25/25