LE 4
1
Datenverarbeitung mittels
XML
Dierk Langbein
© Prof. Dr.-Ing. habil. Dierk Langbein 2005
1. XML-Grundlagen
XML-Grundlagen
LE 4
2
Inhalt
1.1 Einführung
1.2 Das Wesen der XML
1.3 Die syntaktischen Grundkonstrukte
1.4 Dokumententyp-Definitionen
1.5 XML-Parser
© Prof. Dr.-Ing. habil. Dierk Langbein 2004
1.6 Darstellung von XML-Dokumenten
XML-Grundlagen
LE 4
3
Lernziele

Client- und serverseitige Programmierung erläutern, bewerten und anwenden
können

Die Konzepte von XHTML und CSS erläutern, bewerten und anwenden
können

CGI-Programmierung erläutern, bewerten und anwenden können

Servlets erläutern, bewerten und anwenden können

Java Server Pages erläutern, bewerten und anwenden können
© Prof. Dr.-Ing. habil. Dierk Langbein 2004
1. XML-Grundlagen
XML-Grundlagen
LE 4
4
1.1 Einführung
Definition:
„Auszeichnung“ (Markup) ist eine Methode zur Übermittlung von Metadaten.
Zur Beschreibung der Metadaten und zu ihrer Trennung von den Inhaltsdaten
werden Auszeichnungselemente, sogenannte „Tags“ benutzt.
Beispiel: <Name>Meienberg</Name>
Geschichte
1969: Generalized Markup Language (GML)
1996: Beginn der Entwicklung der Extensible Markup Language (XML)
durch das World Wide Web Consortium (W3C)
http://www.w3.org
1998: Das W3C erklärt XML 1.0 zu einer Empfehlung (Third Edition v. 4.2.2004).
http://www.w3.org/TR/2004/REC-xml-20040204/
2004: Das W3C erklärt XML 1.1 zu einer Empfehlung.
http://www.w3.org/TR/2004/REC-xml11-20040204/
© Prof. Dr.-Ing. habil. Dierk Langbein 2004
1986: Standard Generalized Markup Language (SGML)
ISO 8879
http://www.iso.ch
XML-Grundlagen
LE 4
5
1.1 Einführung
Eine von Tim Bray hervorragend kommentierte Version der formalen
Spezifikation von XML 1.0 findet sich unter:
http://www.xml.com/axml/testaxml.htm
Eine Liste von FAQs wird unter http://xml.silmaril.ie/ gepflegt.
Für die Entwicklung von Programmen, die XML-Daten lesen und schreiben
können, hat das W3C eine Standard-API entwickelt: Das DOM. Die
Spezifikation findet sich unter der Adresse: http://www.w3.org/DOM/.
XML basiert auf dem Universal Character Set (UCS), der im Standard ISO/IEC
10646 definiert ist. Informationen findet man unter:
http://www.nada.kth.se/i18n/ucs/unicode-iso10646oview.html
Dieser Standard ist identisch mit dem bekannten Unicode-Standard.
http://www.unicode.org
© Prof. Dr.-Ing. habil. Dierk Langbein 2004
Eine ergänzende, alternative API steuerte die Entwicklergemeinschaft bei: Die
SAX. Genaue Erläuterungen findet man unter der Adresse:
http://www.saxproject.org/
XML-Grundlagen
LE 4
6
1.2 Das Wesen der XML
Der Unterschied zu HTML

bei HTML:
– Markierungen sind Teil der Sprache.
– Ein Autor kann sich zwar überlegen, ob er in einem Brief den Betreff und die
Anrede z.B. in eigene Absätze verlegt, jedoch kann er diese Absätze nicht
direkt als Anrede bzw. Betreff kenntlich machen.
<html> <body>
<p>Ihre Anfrage vom 26.03.2005 bezüglich einer
Schulung </p>
<p>Sehr geehrte Damen und Herren</p>
<p>Der Text des Briefes, der genau wie Betreff und
Anrede als Absatz geschrieben wird und sich strukturell
nicht von ihnen unterscheidet.</p>
</body> </html>.
© Prof. Dr.-Ing. habil. Dierk Langbein 2004

XML-Grundlagen
LE 4
7
1.2 Das Wesen der XML
XML
– Der XML-Standard definiert keine einzige Markierung. Jeder Autor kann
sich selbst passende Markierungen überlegen. Groß- und Kleinschreibung
werden unterschieden.
– XML hat einen geringen Sprachumfang.
– Grundbestandteile der XML sind die sogenannten „Elemente“.

Ein Element ist der von einer öffnenden und schließenden Markierung
eingeschlossene Teil eines XML-Dokuments.

Ein Element ohne Inhalt (leeres Element) besteht nur aus einer einzelnen
Markierung
<Einschreiben/> zeigt z.B. an, dass der Brief als Einschreiben
verschickt werden soll. Es bedarf in diesem Fall keines Inhalts.
© Prof. Dr.-Ing. habil. Dierk Langbein 2004

XML-Grundlagen
LE 4
8
1.2 Das Wesen der XML
Was ist ein XML-Dokument?
Zitat aus dem XML-Standard:
„Extensible Markup Language, abbreviated XML, describes a class of data
objects called XML documents.“
Man beachte: Nicht einmal Persistenz wird vorausgesetzt!
Das bedeutet: XML-Dokument = Textdatei oder Datensatz oder Bytestrom.
Formale Definition:
Man beachte:
Diese Definition nimmt keinerlei Rekurs auf die menschliche Vorstellung!
© Prof. Dr.-Ing. habil. Dierk Langbein 2004
XML-Dokumente sind all diejenigen Datenobjekte, die Sätze einer XML-Sprache
sind, also die XML-Grammatik erfüllen.
XML-Grundlagen
LE 4
9
1.3 Die syntaktischen Grundkonstrukte
Das Grundgerüst der XML-Spezifikation wird durch 4 Produktionen aufgespannt:
(39) element ::= EmptyElemTag|STag content ETag
[WFC: Element Type Match]
[VC: Element Valid]
(40) STag ::= '<'Name(S Attribute)*S?'>'
[WFC: ...]
(41) Attribute ::= Name Eq Attvalue
[VC: ...]
(43) content ::=
(element|CharData|Reference|CDSect|PI|Comment)*
(Die Nummerierung bezieht sich auf die XML-Spezifikation.)
© Prof. Dr.-Ing. habil. Dierk Langbein 2004
[WFC: ...]
XML-Grundlagen
LE 4
10
1.3 Die syntaktischen Grundkonstrukte
Die 4 Produktionen legen folgendes fest:
– Die Produktionen (39) und (43) drücken aus, dass rekursive
Schachtelungen von Nichtterminalen namens element zugelassen sind.
Ein element-Vater darf beliebig viele element-Söhne haben.
Die element-Objekte sind damit die Grundbausteine von XMLDokumenten. Sie bilden einen Baum beliebiger Tiefe.
– Der Inhalt der Elemente wir von Tags mit Bezeichnern (Name) umfasst, die
frei vergeben werden dürfen (natürlich im Rahmen einer regulären
Sprache).
– Jedes element darf mit beliebig vielen Attribut-Wert-Paaren angereichert
werden.
Beispiel: <Brief Druckdatum="2005-03-26">...</Brief>
Die mit der XML konstruierten Bäume können also bedarfsgerecht
attributierte Knoten besitzen.
© Prof. Dr.-Ing. habil. Dierk Langbein 2004
– Tags mit verschiedenen Bezeichnern entsprechen verschiedenen
Elementtypen.
XML-Grundlagen
LE 4
11
1.3 Die syntaktischen Grundkonstrukte
Beispiel: Brief als XML-Dokument
<?xml version="1.0" encoding="ISO-8859-1" ?>
<Brief>
<Adresse>
<Name>Meienberg</Name>
<Strasse>Elisenstraße</Strasse>
<PLZ>80335</PLZ>
<Ort>München</Ort>
<Betreff>Ihre Anfrage vom 26.03.2004 bezüglich einer
Schulung </Betreff>
<Anrede>Sehr geehrte Damen und Herren</Anrede>
<Text>der Text des Briefes, der sich jetzt strukturell
eindeutig von Betreff und Anrede abhebt.</Text>
</Brief>.
© Prof. Dr.-Ing. habil. Dierk Langbein 2004
</Adresse>
XML-Grundlagen
LE 4
12
1.3 Die syntaktischen Grundkonstrukte
Man erkennt anhand des Beispiels:
inhaltliche Suchanfragen werden möglich
– gegenüber herkömmlichen Textspeicherungen neue Art von Anfragen
möglich, z. B.
Alle Briefe, die im Betreff das Wort »Schulung« enthalten.
<?xml version="1.0" encoding="ISO-8859-1" ?>
© Prof. Dr.-Ing. habil. Dierk Langbein 2004
Am Anfang eines Dokuments: Angaben zur verwendeten XML-Version in Form
und zum Zeichensatz einer sogenannten „XML-Instruktion“.
XML-Grundlagen
LE 4
13
1.4 Dokumententyp-Definitionen
Dokumenttyp-Definitionen (DTDs)
– Beschreiben die Struktur von XML-Dokumenten
– Angabe, welche Elemente im Dokument vorkommen dürfen
– in das Dokument integriert oder das Dokument enthält den URL der DTD
– Eine DTD ist selbst kein XML-Dokument, d.h. die Struktur von DTDs kann
nicht mit DTDs beschrieben werden.
<!ELEMENT Brief(Adresse, Betreff, Anrede+, Text)>
<!ELEMENT Adresse(Firma?, Name, Strasse, PLZ, Ort)>
<!ELEMENT Strasse(#PCDATA)>
<!ELEMENT PLZ(#PCDATA)>
<!ELEMENT Ort(#PCDATA)>
<!ELEMENT Betreff(#PCDATA)>
<!ELEMENT Anrede(#PCDATA)>
<!ELEMENT Text(#PCDATA)>.
© Prof. Dr.-Ing. habil. Dierk Langbein 2004
<!ELEMENT Name(#PCDATA)>
XML-Grundlagen
LE 4
14
1.5 XML-Parser
XML-Parser
– Programme, die ein XML-Dokument lesen und die einzelnen Markierungen
herausfiltern können.

Einfach Operation liefereInhaltvonMarkierung("Betreff")
aufrufen.

Alternative: Algorithmus formulieren, der Zeichenkette <Betreff> sucht
und dann alle Zeichen bis zur Zeichenkette </Betreff> extrahiert.
– XML-Parser können als Bibliotheken entwickelt und in anderen
Programmen eingesetzt werden.
© Prof. Dr.-Ing. habil. Dierk Langbein 2004
– Andere Programme können auf diese Parser aufsetzen und damit auf
einem höheren Abstraktionsniveau arbeiten.
XML-Grundlagen
LE 4
15
1.5 XML-Parser
Korrektheit
XML-Parser prüfen ein Dokument beim Einlesen auf Korrektheit.

Ein Dokument ist wohlgeformt (well-formed), wenn es sich an die
syntaktischen Regeln von XML hält.

Ein Dokument ist gültig (valid), wenn seine Struktur den Vorgaben eines
Dokumententyps oder eines XML-Schemas entspricht.
Das Anwendungsprogramm kann sich bei einem gültigen Dokument
darauf verlassen, dass es bestimmte Elemente in einer bestimmten
Reihenfolge vorfindet, was eine Menge Ausnahmesituationen und
Fehlerbehandlungen im Anwendungs-Code überflüssig macht.
© Prof. Dr.-Ing. habil. Dierk Langbein 2004
Gemäß XML-Spezifikation gibt es 2 Stufen der Korrektheit eines XMLDokuments:
XML-Grundlagen
LE 4
16
1.6 Darstellung von XML-Dokumenten
Anzeige von Dokumenten
– Transformation in ein HTML-Dokument

In der Praxis beschreibt ein Stylesheet häufig eine Transformation eines
XML-Dokuments in ein HTML-Dokument, das ein Web-Browser dann
anzeigen kann.

2 Varianten:
2. Die Konvertierung findet erst auf dem Client statt. Es werden das
XML-Dokument und das Stylesheet an den XML-fähigen Browser
übertragen, der die Konvertierung selbst vornimmt.
– Transformationen in andere Darstellungsformate, z. B. PDF, sind möglich.
© Prof. Dr.-Ing. habil. Dierk Langbein 2004
1. Die Konvertierung findet auf dem Server statt und es wird eine HTMLDatei an den Browser geschickt.
XML-Grundlagen
LE 4
17
1.6 Darstellung von XML-Dokumenten
Beispiel: Brief konvertiert nach HTML
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<head><title>Ein Brief</title></head>
<body>
<p><xsl:value-of select="Brief/Betreff"/></p>
<p><xsl:for-each select="Brief/Anrede">
<xsl:value-of select="."/>,<br/></xsl:for-each></p>
<p><xsl:value-of select="Brief/Text" /></p>
</body> </html>
</xsl:template>
© Prof. Dr.-Ing. habil. Dierk Langbein 2004
<p><xsl:apply-templates select="Brief/Adresse"/></p>
XML-Grundlagen
LE 4
18
1.6 Darstellung von XML-Dokumenten
<xsl:template match="Adresse">
<xsl:value-of select="Name"/><br/>
<xsl:value-of select="Strasse"/><br/>
<xsl:value-of select="PLZ"/>
<xsl:value-of select="Ort"/>

Darstellung des
XML-Dokuments
in einem
XML-fähigen
Web-Browser
© Prof. Dr.-Ing. habil. Dierk Langbein 2004
</xsl:template>
XML-Grundlagen
LE 4
19
1.6 Darstellung von XML-Dokumenten
Prüfung der Korrektheit eines Dokuments durch einen XML-Parser
XML-Parser
DTD od er
St rukt ur
XML-Schema
Dokument ist...
fehlerh aft
wohlgef ormt
(well -f or med)
gülti g (valid)
© Prof. Dr.-Ing. habil. Dierk Langbein 2004
XML-Dok ument Inhal t
XML-Grundlagen
LE 4
20
1.6 Darstellung von XML-Dokumenten
Konvertierung eines XML-Dokuments in ein HTML-Dokument
XML-Dokum en t
In halt
HTMLDokum en t
DTD o der
XML-Schem a
St ruk tu r
Darst ell ung
XSL-St ylesheet
Transform atio nsregeln
© Prof. Dr.-Ing. habil. Dierk Langbein 2004
XML-Parser

XML