4. Dr. Rößler – Einführung XML
Referenzen
4
https://www.w3schools.com/xml/
5. Dr. Rößler – Einführung XML
Warum XML?
5
Von Arun Kulshreshtha - Eigenes Werk, CC BY-SA 2.5,
https://commons.wikimedia.org/w/index.php?curid=1917252
https://commons.wikimedia.org/wiki/File:Sony_MP3_player.jpg
Von Disques Vogue - Scan einer Schallplatte,
https://de.wikipedia.org/w/index.php?curid=4437632
stuart.childs at
https://flickr.com/photos/24001581@N07/13844721854
6. Dr. Rößler – Einführung XML
Warum XML?
6
Von Disques Vogue - Scan einer Schallplatte,
https://de.wikipedia.org/w/index.php?curid=4437632
Gemeinfrei, https://commons.wikimedia.org/w/index.php?curid=1271534
Przemek Pietrak, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=78305361
8. Dr. Rößler – Einführung XML
Interpretation von 0 und 1
8
01001010011001011
11001001100101010
110101111001
Binär-Code
01001010 01100101
01110010 01100101
01101101 01111001
Binär-Code (8 Bit)
By Pete Birkinshaw - Used Punchcard, CC BY 2.0,
https://commons.wikimedia.org/w/index.php?curid=49758093
1 Byte = 8 Bit
wegen Zeichenverarbeitung!
BCD: Binary Coded Decimal
BCDIC: Binary Coded Decimal Interchange Code
EBCDIC: Extended Binary Coded Decimal Interchange Code
ASCII: American Standard Code for Information Interchange
UTF-8: Unicode Transformation Format – 8 Bit
UTF-16 : Unicode Transformation Format – 16 Bit
9. Dr. Rößler – Einführung XML
Standards
9
https://xkcd.com/927/
11. Dr. Rößler – Einführung XML
Was ist SGML?
• Standard Generalized Markup
Language (SGML)
• Metasprache für
Auszeichnungssprachen
• bei IBM entwickelt
• 1986 als ISO-Standardisiert
• 1990 als EN Norm
• 1991 als DIN Norm
• DIN 2007 zurückgezogen
11
12. Dr. Rößler – Einführung XML
HTML war eine Anwendung von SGML
• HTML = HyperText Markup
Language
• Texte semantisch
strukturieren
• Links
• Zusätzliche Elemente (Bilder,
Buttons, etc.)
• Keine Programmiersprache
• Elemente und Attribute sind
fest vorgegeben
12
<html lang="de">
<body>
<h1>Überschrift</h1>
<footer>
<a href="kontakt.html">
Kontakt
</a>
</footer>
</body>
</html>
13. Dr. Rößler – Einführung XML
XML als Anwendung und Nachfolger von SGML
• XML als Meta-Sprache
• Lizenzfrei
• Plattformunabhängig
• Standardisiert
• Weit verbreitet
13
<?xml version="1.0"
encoding="UTF-8"?>
<html lang="de">
<body>
<h1>Überschrift</h1>
<footer>
<a href="kontakt.html">
Kontakt
</a>
</footer>
</body>
</html>
14. Dr. Rößler – Einführung XML
(X)HTML
<html lang="de">
<body>
<h1>Überschrift</h1>
<footer>
<a href="kontakt.html">
Kontakt
</a>
</footer>
</body>
</html>
<?xml version="1.0"
encoding="UTF-8"?>
<html lang="de">
<body>
<h1>Überschrift</h1>
<footer>
<a href="kontakt.html">
Kontakt
</a>
</footer>
</body>
</html>
14
(X)HTML = XML
15. Dr. Rößler – Einführung XML
Entität (entity)
XML
15
Element (tag)
Wurzelelement (root)
Attribut
Kind-Element (child)
XML Deklaration
<?xml version="1.0"
encoding="UTF-8"?>
<html lang="de">
<body>
<h1>Überschrift</h1>
<footer>
<a href="kontakt.html">
Kontakt
</a>
</footer>
</body>
</html>
16. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
16
17. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
17
<html>
❌
18. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
18
<html>
<html />
❌
19. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
19
<html>
</html>
✓
20. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
20
<xml>
</xml>
❌
21. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
21
<html/>
✓
22. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
22
<html />
✓
23. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
23
<html/ >
❌
24. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
24
<html>
</HTML>
❌
25. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
25
< html>
</html>
❌
26. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
26
<hyper text markup language>
</hyper text markup language>
❌
27. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
27
<hyper_text_markup_language>
</hyper_text_markup_language>
✓
28. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
28
<:hyper_text.markup-language>
</:hyper_text.markup-language>
✓
29. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
29
<‘hyper text markup language’>
</‘hyper text markup language’>
❌
30. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
30
<html>
<body>
</body>
</html>
✓
31. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
31
<html>
<body>
</body>
</html>
✓
32. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
32
<html><body></body></html>
✓
33. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
33
<p>
This is a paragraph.
</p>
✓
34. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
34
<p>
This <i>is</i> a paragraph.
</p>
✓
35. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
35
<p>
This <i>is</i> <b>a</b> paragraph.
</p>
✓
36. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
36
<p>
This <i>is <b>a</i></b> paragraph.
</p>
❌
37. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
37
<p>
This <i>is <b>a</b></i> paragraph.
</p>
✓
38. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
38
<p id:intro>
This is a paragraph.
</p>
✓
39. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
39
<p id=intro>
This is a paragraph.
</p>
❌
40. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
40
<p id=“intro”>
This is a paragraph.
</p>
✓
41. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
41
<p ID=“intro”>
This is a paragraph.
</p>
✓
42. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
42
<p id=‘intro’>
This is a paragraph.
</p>
✓
43. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
43
<p id=“intro’>
This is a paragraph.
</p>
❌
44. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
44
// Ein Kommentar
<p id=‘intro’>
This is a paragraph.
</p>
❌
45. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
45
<!-- Ein Kommentar
<p id=‘intro’>
This is a paragraph.
</p>
❌
46. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
46
<!-- Ein Kommentar -->
<p id=‘intro’>
This is a paragraph.
</p>
✓
47. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
47
<p>
Hello & welcome!
</p>
❌
48. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
48
<p>
Hello & welcome!
</p>
✓
49. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
49
<p/>
Hello & welcome!
</p>
❌
50. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
50
<xml>
Hello & welcome!
</xml>
❌
51. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
51
<?xml encoding="UTF-8"?>
<p>
Hello & welcome!
</p>
❌
52. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
52
<?xml version="1.0" encoding="UTF-8"?>
<p>
Hello & welcome!
</p>
✓
53. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
53
<?xml version="1.0 encoding="UTF-8"?>
<p>
Hello & welcome!
</p>
❌
54. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
54
<p>
Hello & welcome!
</p>
<?xml version="1.0" encoding="UTF-8"?>
❌
55. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
55
<book title:en="The Great Gatsby"></book>
✓
56. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
56
<book title-en="The Great Gatsby"></book>
✓
57. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
57
<?xml version="1.0" encoding="UTF-8"?>
<person>John Doe</person>
<email>john@example.com</email>
❌
58. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
58
<?xml version="1.0" encoding="UTF-8"?>
<data>
<person>John Doe</person>
<email>john@example.com</email>
</data>
✓
59. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
59
<1p>
Hello & welcome!
</1p>
❌
60. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
60
<p alt=“this is a “quote””>
Here comes Jonny!
</p>
❌
61. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
61
<p alt=“this is a "quote"”>
Here comes Jonny!
</p>
✓
62. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
62
<p alt=“this is a ‘quote’”>
Here comes Jonny!
</p>
✓
63. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
63
<p alt=‘this is a “quote’”>
Here comes Jonny!
</p>
❌
64. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
64
<p alt=‘this is a “quote”’>
Here comes Jonny!
</p>
✓
65. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
65
<p alt=‘’>
Here comes Jonny!
</p>
✓
66. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
66
<p alt>
Here comes Jonny!
</p>
❌
67. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
67
<p alt=‘Quote’ alt=“Movie Quote”>
Here comes Jonny!
</p>
❌
68. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
68
<p alt=‘Quote’ source=“Movie Quote”>
Here comes Jonny!
</p>
✓
69. Dr. Rößler – Einführung XML
Quiz: Wohlgeformt oder nicht?
69
<p alt=‘Quote’source=“Movie Quote”>
Here comes Jonny!
</p>
❌
70. Dr. Rößler – Einführung XML
Wichtige Entitäten
• Kleiner Zeichen (<): <
• Ampersand (&): &
• Größerzeichen (>): >
• Doppelte Anführungszeichen (“): "
• Einfache Anführungszeichen (‘): '
• Scharfes S (ß): ß
• a Umlaut (ä): ä
• u Umlaut (ü): ü
• o Umlaut (ö): ö
• A Umlaut (Ä): Ä
70
71. Dr. Rößler – Einführung XML
XML ist ein Baum
• Graphentheorie
• Ein Baum ist spezieller Graph
• Zusammenhängend
• Keine zyklischen Pfade
• Jeder Teilbaum ist selbst
wieder ein Baum
71
Von Arthur Cayley - Arthur Cayley (1857):
On the Theory of Analytical Forms called Trees.
In: Philosophical Magazine, Vol. 13, p. 172-176.
(digital version at https://archive.org/details/collmathpapers03caylrich)
72. Dr. Rößler – Einführung XML
XML Deklaration
72
Andere “Klammer” für Processing Instructions (siehe PHP)
XML Version Zeichensatz Schema
<?xml version=“1.0“ encoding=“ISO-8859-1“ standalone=“yes“ ?>
73. Dr. Rößler – Einführung XML
Element vs Attribut
73
<book lang=“de”>
<title>Blackout</title>
<author>
Marc Elsberg
</author>
</book>
<book
title=“Blackout”
author=“Marc Elsberg”>
<lang>de</lang>
</book>
74. Dr. Rößler – Einführung XML
Element vs Attribut
74
<book>
<title lang=“de”>
Blackout
</title>
<author>
Marc Elsberg
</author>
</book>
<book
title=“Blackout”
author=“Marc Elsberg”>
</book>
75. Dr. Rößler – Einführung XML
Übung: Erstellen Sie ein XML Dokument
Aufgabe: Erstellen Sie ein XML Dokument, dass ein Buch beinhaltet:
• Titel
• Abstract
• Kapitel
• Überschrift
• Absätze
• Illustrationen
• Author
• Authorentext
• …
75
76. Dr. Rößler – Einführung XML
Tool-Support: VS Code
76
https://code.visualstudio.com/download
77. Dr. Rößler – Einführung XML
Install Plugin: XML (Red Hat)
77
1. Click:
2. Enter XML:
78. Dr. Rößler – Einführung XML
Install Plugin: XML (Red Hat)
78
Click Install
79. Dr. Rößler – Einführung XML
Wohlgeformt vs. Gültig
79
Wohlgeformt
Dokument entspricht den allgemeinen XML-Regeln. (Quiz)
Gültig
Dokument entspricht den spezifischen XML-Regeln (spezifiziert via DTD oder XSD).
80. Dr. Rößler – Einführung XML
Document Type Definition (DTD)
80
Dokument Typ
Attribut Definition
(Unparsed) Character Data
Parsed Character Data
Gültige Kind-Elemente
Element Definition
Parsed Character Data
<!DOCTYPE html [
<!ELEMENT html ( body ) >
<!ATTLIST html lang CDATA #IMPLIED>
<!ELEMENT body ( h1*, p* )* >
<!ELEMENT h1 ( #PCDATA ) >
<!ELEMENT p ( #PCDATA ) >
<!ENTITY Uuml “Ü“>
]>
82. Dr. Rößler – Einführung XML
!ELEMENT
82
<!DOCTYPE html [
<!ELEMENT element-name EMPTY>
<!ELEMENT element-name (#PCDATA)>
<!ELEMENT element-name ANY>
<!ELEMENT element-name (child1,child2,...)>
<!ELEMENT element-name (child1?,child2*,(c3|c4))>
...
]>
83. Dr. Rößler – Einführung XML
!ATTLIST
83
<!DOCTYPE html [
<!ATTLIST element-name attribute-name attribute-type
attribute-value #REQUIRED>
...
]>
84. Dr. Rößler – Einführung XML
Attribute Type
84
Type Description
CDATA The value is character data
(en1|en2|..) The value must be one from an enumerated list
ID The value is a unique id
IDREF The value is the id of another element
ENTITY The value is an entity
other There are more possible values, which are not part of this lecture.
85. Dr. Rößler – Einführung XML
Attribute Value
85
Value Explanation
value The default value of the attribute
#REQUIRED The attribute is required
#IMPLIED The attribute is optional
#FIXED value The attribute value is fixed