Einführung in XML
Literatur:
• Vorlesung "Interoperable Informationssysteme"
Klemens Böhm, ETH Zürich
(www-dbs.ethz.ch/~ii/SS2000)
• XML/XSL Tutorial der W3School
(www.w3schools.com/xml/default.asp)
• W3C XML Activity
(www.w3.org/XML)
1
Gliederung
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• Motivation
• XML-Konzepte
• XML-Verarbeitung
• Erweiterungen (Übersicht)
• XSL
• XML-Perspektiven
2
Was ist XML?
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• Akronym für eXtensible Markup Language
• Syntax zum Strukturieren von Dokumenten
und Daten
• Basis für viele Erweiterungen, z.B.
–
–
–
–
Namensräume
Stylesheets
Hyperlinks
Schemata
• Empfehlung des W3C
3
Was ist XML nicht?
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• kein Protokoll
– Sprache zur Datenbeschreibung, nicht Satz von Regeln
– Allerdings können Regeln in XML ausgedrückt werden
• keine Programmiersprache
Allerdings
– können XML-Dokumente Codefragmente enthalten
– haben aufsetzende Standards ProgrammiersprachenSemantik (XSLT)
• keine "magische" Semantik
Interpretation des Inhalts durch
– Menschen
– Applikationen
– Zusatz-Standards
4
Warum XML?
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• einfach
– zu lesen durch Menschen
– zu verarbeiten durch Maschinen
– zu generieren
• erweiterbar
– XML ist nur generische Syntax
– Zusatz-Standards nutzen diese Syntax
• standardisiert
– weithin akzeptiertes Format
– Standard-Tools als Basiskomponenten für
Applikationen
5
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
"XML will be the ASCII of the Web
basic: essential, unexciting"
Tim Bray
6
XML-Beispiel
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
<?xml version="1.0"?>
<rezept>
<zutaten anzahl="3">
<zutat>Ei</zutat>
<zutat>Mehl</zutat>
<zutat>Salz</zutat>
</zutaten>
<anleitung>
Alles zusammenrühren und backen.
</anleitung>
</rezept>
Textuelle Darstellung
rezept
{ anzahl="3" }
zutaten
zutat
Ei
zutat
Mehl
anleitung
zutat
Salz
Alles zusammenrühren und backen.
Graphische Darstellung
7
XML versus HTML
HTML
• Instanz von SGML
• Vermischung von Inhalt
und Layout
• Anzeigen von Information

SGML (Standard Generalized Markup Language)

Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
XML
• Subset von SGML
• Strikte Trennung von Inhalt
und Layout
• Beschreiben von Information
XHTML ist Instanz von XML
8
Anwendungszenarien
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• Anwendungsspezifisches Layout
mit Standard-Software
• Datenaustausch
• Ressourcen-Beschreibung
9
Layout
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
<?xml version='1.0' encoding='ISO-8859-1' ?>
<?xml-stylesheet href='../style/HomePage.xsl' type='text/xsl'?>
<!-XML-Page generated by PENELOPE.
1999 Araneus Group and University 'Roma Tre', Rome, ITALY
-->
<!DOCTYPE HomePage SYSTEM '../DTD/HomePage.dtd'>
<HomePage>
<yearList>
<yearListTuple>
<year>1999</year>
<numberList>
<numberListTuple>
<toIssues href="../OrdinaryIssuePage/281.xml">
<month>March</month>
</toIssues>
<volume>28</volume>
<number>1</number>
...
10
Layout (2)
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
11
Layout (3)
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
Mapping eines XML-Dokuments auf verschiedene
Ausgabeformate benötigt keine Spezialsoftware.
XML-Dok.
(Layouttransf.)
XML-Dok.
(Daten)
StandardSoftware
(XSL-Prozessor)
XML-Dok.
XML-Dok.
(Gerätespez.
Layout)
XML-Dok.
(Gerätespez.
Layout)
StandardSoftware
(HTML-Browser)
StandardSoftware
(WAP-Browser)
(Layouttransf.)
12
Datenaustausch
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• XML erleichtert Datenaustausch durch
– Standardisiertes Datenformat
– Standardisierte Softwareschnittstellen (z.B. DOM)
– Standardsoftware (z.B. Parser)
• Interpretation der XML-Dokumente
anwendungsspezifisch.
XML-Generator
(bald Standard?)
RDBMS
XML-Parser
(Standard)
DOM
SAX
StandardInterfaces
DB-Loader
(spezifisch)
OODBMS
13
Datenaustausch (2)
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
Weitere Beispiele:
• Unternehmensdaten (Rechnungen etc.)
• Format für EJB deployment descriptions
• Grundlage des Dokument Modells und des
Druck/Font-Frameworks des Gnome-Projekts
• Natives Datenformat einiger KDE/Gnome WordProzessoren (Abiword, Gwp, KWord, ...)
14
Ressourcen-Beschreibung
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
XML kann als Datenformat zur Speicherung von
Ressourcen-Beschreibungen verwendet werden.
www.me.de/~fritz
RDF-Modell
Homepage
Creator
Fritz Müller
XML-Syntax
<?xml version="1.0"?>
<RDF
xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:s="http://description.org/schema/">
<Description about="http://www.me.de/~fritz">
<s:Creator>Fritz Müller</s:Creator>
</Description>
</RDF>
15
XML Konzepte
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• Unicode
• Dokument (logische und physische Struktur)
• Korrektheitsbegriffe (wohlgeformt, valide)
• Syntaktische Konstrukte
– Elemente
– Attribute
– Processing Instructions
– ...
• Document Type Description (DTD)
16
Unicode
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• Zeichen in XML sind Integer-Zahlen
• Unicode: Abbildung der Zahlen auf Zeichen
• Unicode 3.0:
– 49.194 belegte Zeichen
– 25 Sprachen, mehrere Symbolzeichensätze, etc.
• Unicode kodiert keine Fonts
• Drei Darstellungsformen:
UTF-8, UTF-16, UTF-32
• Erste 127 Unicode Zeichen = ASCII-Alphabet
17
Andere Encodings
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• Verwendung anderer
Encodings möglich
• Spezifiziert durch
encoding Attribut
• Support durch
Prozessor nicht
zwingend
18
Übersicht: XML-Dokument
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
XML-Dokumente bestehen aus
• Prolog
• logischer Struktur (Elemente)
• physischer Struktur (Entities)
19
Elemente
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• Elemente haben einen Namen.
Bildungsregel: letter (letter | digit | . | : | - | _)*
• Namen sollten 'sinnvoll' sein, um die spätere
Interpretation durch den Menschen zu gewährleisten.
• Elemente haben öffnenden und schließenden Tag:
<rezept> ... </rezept>
• Elemente sind hierarchisch verschachtelt:
<rezept><zutaten> ... </zutaten></rezept>
• Spezielles Element: Dokument-Element
20
Elemente: Beispiel
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
<?xml version="1.0"?>
<rezept>
<zutaten anzahl="3">
<zutat>Ei</zutat>
<zutat>Mehl</zutat>
<zutat>Salz</zutat>
</zutaten>
<anleitung>
Alles zusammenrühren und backen.
</anleitung>
</rezept>
zutaten sind
enthalten in
rezept
DokumentElement
rezept
Element
{ anzahl="3" }
zutaten
zutat
Ei
zutat
Mehl
anleitung
zutat
Salz
Alles zusammenrühren und backen.
21
Attribute
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• Attribute sind Bestandteile von Elementen.
• Elemente können beliebig viele Attribute
haben.
• Spezifiziert durch Name-Wert-Paar im
Start-Tag:
<zutat id="z1" einheit="Gramm" menge="1,5">
...
</zutat>
22
Warum Attribute?
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• Attribute können getypt werden (später)
• Bessere Lesbarkeit des Dokuments
• Weniger Speicherbedarf
23
PCDATA
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
PCDATA = Parseable Character DATA
• Sequenz von Zeichen, die nicht durch Elemente
unterbrochen wird.
• Zeichen- und Entity-Referenzen (später) werden
durch deren Inhalt ersetzt.
24
Korrektheitsbegriffe
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
Wohlgeformtheit
Dokument entspricht den syntaktischen Regeln
– Genau ein Dokument-Element
– Jedes öffnende Tag hat ein schließendes Tag.
– Die Verschachtelung ist balanciert.
Gegenbeispiel:
<A><B><C> ... </A> ... </C>
Validität
Dokument ist
– wohlgeformt
– konform zu einer Document Type Description (DTD)
25
Document Type Description (DTD)
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
Eine DTD definiert die zulässige Struktur
von XML Dokumenten
XML
Relationenmodell
DTD
Datenbankschema
Dokument
Datenbank
26
Vergleich DTD und DB-Schema
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
Vorhandensein
• Datenbank muß Schema besitzen
• XML-Dokument kann DTD besitzen
Mächtigkeit
• DTD bestimmt
– Struktur
– Typen (nur bei Attributen)
• Datenbankschema bestimmt
–
–
–
–
Struktur (z.B. Relationen und deren Beziehungen)
Datentypen
Kardinalitäten
...
27
DTD: Grundsätzlicher Aufbau
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• Eine DTD ist eine Sequenz von Element-,
Attribut- und Entity-Deklarationen.
• Eine Element-Deklaration legt das
Inhaltsmodell eines Elements fest.
• Das Inhaltsmodell ist ein regulärer Ausdruck,
der den Aufbau des direkten Inhalts festlegt.
• Alle in einem Dokument benutzten Elemente,
Attribute und Enitities müssen deklariert sein.
28
Element-Deklaration
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• Syntax:
<!ELEMENT Elementname (Inhaltsmodell)>
• Beispiel:
<!ELEMENT rezept (zutaten,anleitung)>
29
Element-Deklaration: Varianten
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• Elementinhalt
<!ELEMENT rezept (zutaten)>
• Leeres Element
<!ELEMENT rezept EMPTY>
• Element mit beliebigem Inhalt
<!ELEMENT rezept ANY>
• Gemischter Inhalt ("mixed content")
<!ELEMENT rezept (#PCDATA)>
<!ELEMENT rezept (#PCDATA | zutaten)*>
30
Element-Deklaration: Varianten
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• Sequenz
<!ELEMENT rezept (zutaten , anleitung)>
• Alternative
<!ELEMENT rezept (zutaten | anleitung)>
• Occurrence Indicators
– Optional (Null- oder Einmal)
<!ELEMENT rezept (zutaten)?>
– Optional wiederholbar (beliebig oft)
<!ELEMENT rezept (zutaten)*>
– Notwendig und wiederholbar (mindestens einmal)
<!ELEMENT rezept (zutaten)+>
Inhaltsmodelle können mit Klammern kombiniert werden.
31
Attribut-Deklaration
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• Syntax
<!ATTLIST Elementname
Attributname Typ Vorgabe
Attributname Typ Vorgabe
... >
• Mögliche Vorgaben:
–
–
–
–
Notwendiges Attribut
Optionales Attribut
Vorbelegung
Festes Attribut
#REQUIRED
#IMPLIED
"Wert"
#FIXED "Wert"
32
Attribut-Typen (Auswahl)
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• CDATA (Zeichenkette)
<!ATTLIST zutat menge CDATA #REQUIRED>
• Aufzählungstyp
<!ATTLIST zutat nötig (ja|nein|vielleicht) "ja">
• ID, IDREF
– ID ist eindeutig in einem Dokument
– IDREF ist eine Referenz auf eine ID
<!ATTLIST zutat
nummer
ID
#IMPLIED
mische-mit IDREF #IMPLIED>
33
Eine DTD für Kochrezepte
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ATTLIST
<!ELEMENT
<!ELEMENT
rezept (zutaten, anleitung)>
zutaten (zutat)+>
zutat
(name)>
zutat
nummer
ID
#REQUIRED
mische-mit IDREF
#IMPLIED
nötig
(ja|nein) "ja">
name
(#PCDATA)>
anleitung
(#PCDATA)>
34
Einbinden einer DTD
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
Externe DTD-Deklaration
<?xml version="1.0">
<!DOCTYPE rezept SYSTEM "http://www.x-ag.de/rezept.dtd">
<rezept> ... </rezept>
Interne DTD-Deklaration
<!DOCTYPE rezept [ <!ELEMENT rezept (#PCDATA)> ]>
<rezept> Dies ist ein Rezept </rezept>
Gemischte Nutzung
<!DOCTYPE rezept SYSTEM "http://www.x-ag.de/rezept.dtd" [
<!ATTLIST rezept erfinder CDATA #REQUIRED>
]>
<rezept erfinder="Lieschen Müller"> ... </rezept>
35
DTD - Probleme
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• Historisches Überbleibsel von SGML
• Spezielle Syntax erforderlich
• Syntaktische Einschränkungen
"Element a enthält Elemente b, c, d in beliebiger
Reihenfolge" nur so ausdrückbar:
<!ELEMENT a ((b,c,d) | (c,b,d) | (b,d,c), ...)>
• Mangelhaftes Typkonzept
– nur Attribute haben generische + nutzerdefinierbare
Typen
– Keine Komplexen Datentypen
– Keine Kardinalitätsrestriktionen
Viele Schemavorschläge (XML Schema, SOX, ...)
36
Notations
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• Mechanismus, um einen Namen zu Interpretieren
<!NOTATION mpeg SYSTEM "C:\programme\mpeg.exe">
<!NOTATION gif
SYSTEM "C:\programme\gif.exe">
• Notationen können u.a. die Interpretation von
Attributen festlegen.
<ATTLIST image type NOTATION (mpeg | gif)>
• Anwendungen
– Multimedia-Dokumente
– Typsysteme
37
CDATA
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• CDATA-Abschnitte überall,
wo Character Data
vorkommen darf.
• CDATA wird nicht vom
Parser bearbeitet.
• Oft verwendet für
eingebetteten Code.
...
<script>
<![CDATA[
if ( a < b ) {
subroutine(a, b)
} else {
subroutine(b, a)
}
]]>
</script>
...
38
Processing Instruction (PI)
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• PIs sind nicht Teil des
Dokumenttextes.
• PIs werden an Applikationen
durchgereicht.
• PIs, die mit xml beginnen,
sind reserviert und werden
vom Parser interpretiert.
• PI beginnt mit Target,
dh. Bezeichner der
Applikation, z.B. perl.
<?xml
version="1.0"
encoding="ISO-8859-1"
standalone="no"
?>
...
<?perl print "Hallo";?>
...
39
Zeichenreferenzen, Kommentare
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• Zeichenreferenzen können
beliebige Unicode-Zeichen
identifizieren.
&#251; und &#xFB;
erzeugen das Zeichen ©
• Kommentare sind überall
erlaubt, aber nicht vor
<?xml ..>.
<!-Dies ist ein Kommentar
-->
40
Logische vs. physische Struktur
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
Logische Struktur
• Mit Markup explizit gemacht
Physische Struktur
• Ersetzungsmechanismus
• beruht auf dem Konzept der Entities
• Entities bestehen aus Namen und Inhalt
• Parser ersetzt Entity-Name durch Inhalt
• interne Entity: Name und Inhalt in selbem File
• externe Entity: Name und Inhalt in
verschiedenen Files
41
Entities: Beispiel
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
EntityDefinition
http://www.me.de/default.xml
<zutat><name>Salz</name></zutat>
<zutat><name>Mehl</name></zutat>
EntityDeklaration
<?xml version="1.0"?>
<!ENTITY default SYSTEM "http://www.me.de/default.xml">
<rezept>
<zutaten>
Entity&default;
Referenz
<zutat>
<name>Milch</name>
</zutat>
</zutaten>
</rezept>
42
Warum Entities?
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• Wiederverwendung
• Größe der Files
– Übertragungsdauer
– Caching von Entity-Inhalten
• Nicht-XML-Ressourcen, z.B. Binaries
43
XML-Verarbeitung
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
MM-Tool 1
Application
http://www.me.de/
rezept.xml
MM-Tool 2
Callbacks
XML Processor
<?xml version="1.0"
...
http://www.me.de/rezept.xml
44
Auf XML aufbauende Standards
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• Sehr viele auf XML aufbauende Vorschläge:
–
–
–
–
–
–
–
–
–
Namensräume
DTDs (XHTML, WAP, MathML, SMIL, ...)
Schemata (XML Schema, XML Data, SOX, DDML, ...)
Pointers und Links (XPointer, XPath, XLink)
Programmierschnittstellen (DOM, SAX)
Beschreibungssprachen (RDF)
Transformation und Layout (CSS, XSLT, XSL, ...)
Querying (Lorel, XQL, YATL, XML-QL, Quilt, ...)
...
• Hier nur zwei Beispiele:
– Layout mit XSL
– Querying mit XQL und XML-QL (nächste Vorlesung)
45
Logische Struktur vs. Layout
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• XML-Dokumente haben logische Struktur
(sie beschreiben Daten)
• Zur Darstellung ist Layout-Struktur notwendig
• Layout abhängig von
– Ausgabegerät (Browser, Drucker, WAP-Device, ...)
– Nutzerwünschen
• Format (HTML, WAP, PDF, ...)
• Struktur (Teildokumente, Umsortierung, ...)
46
EXtensible Style sheet Language (XSL)
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• XSL ist eine Transformationssprache
–
–
–
–
XML
XML
XML
XML
nach
nach
nach
nach
XML
HTML
PDF, RTF, ...
"XML Formatting Objects Language"
• XSL besteht aus drei Teilen
– XSLT
(Transformationsprache)
– XPath
(Pfade durch XML-Dokumente)
– XML Formatting Objects
(plattformunabhängige Beschreibung des gelayouteten
Dokuments)
47
XSL (2)
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• XSL verwendet die XML-Syntax
• XSL-Dokumente werden mit Processing
Instruction in XML-Dokument eingebunden
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="rezept.xsl"?>
<rezept> ... </rezept>
• XSL-Dokumente benutzen Namensraum "xsl"
<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/TR/WD-xsl">
...
48
XSL - Template Rules
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
... spezifizieren die Dokument-Transformation
... bestehen aus zwei Teilen:
• Pattern, das mit dem Source Tree gematcht wird
• Template, das in den Result Tree eingesetzt wird
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/...">
<xsl:template match="/rezept">
<html><body>
Hier ist das Rezept!
</body></html>
</xsl:template>
49
XSL - Elemente
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
Hier behandelt:
• Werteinsetzung
• Iteration
• Filter
• Bedingungen
• Auswahl
• Sortieren
• "Sub"-Templates
Nicht behandelt
• Variablen, Modi, Kopieren, ...
• Konflikt-Behandlung
• ...
50
Wdh.: Eine DTD für Kochrezepte
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ATTLIST
<!ELEMENT
<!ELEMENT
rezept
zutaten
zutat
zutat
nummer
mische-mit
nötig
name
anleitung
(zutaten, anleitung)>
(zutat)+>
(name)>
ID
#REQUIRED
IDREF
#IMPLIED
(ja|nein) "ja">
(#PCDATA)>
(#PCDATA)>
51
Werteinsetzung
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• xsl:template match
• xsl:value-of select
gibt den Kontext vor
setzt Inhalt eines Subelements ein
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/rezept">
<html><body>
Hier die Anleitung:
<p><xsl:value-of select="anleitung"/></p>
</body></html>
</xsl:template>
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="rezept.xsl"?>
<rezept>
...
<anleitung>Alles zusammenrühren und backen.</anleitung>
</rezept>
52
Iteration
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• xsl:for-each wiederholt Block für jeden Match von select
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/rezept">
<html><body>
<table>
<xsl:for-each select="zutaten/zutat">
<tr><td>
<xsl:value-of select="name"/>
</td></tr>
</xsl:for-each>
</table>
</body></html>
</xsl:template>
53
Filter
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• Filter sind Bestandteil des XPath-Standards
• Vergleichsoperatoren: =, !=, &lt;, &gt;
• Hier: Block wird nur für Zutaten vom Typ 'Salz' eingesetzt.
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/rezept">
<html><body>
<table>
<xsl:for-each select="zutaten/zutat[name='Salz']">
<tr><td>
<xsl:value-of select="name"/>
</td></tr>
</xsl:for-each>
</table>
</body></html>
</xsl:template>
54
Bedingungen
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• Konditionale Blocks werden mit xsl:if match spezifiziert
• Die Bedingung wird mit einem XPath-Ausdruck angegeben
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/rezept">
<html><body>
<table>
<xsl:for-each select="zutaten/zutat">
<xsl:if match=".[name='Salz']">
<tr><td>
<xsl:value-of select="name"/>
</td></tr>
</xsl:if>
</xsl:for-each>
</table>
</body></html>
</xsl:template>
55
Auswahl
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• Eine Auswahl wird mit xsl:choose, xsl:when und
xsl:otherwise spezifiziert
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/rezept">
<html><body>
<xsl:for-each select="zutaten/zutat">
<xsl:choose>
<xsl:when match=".[@nötig='ja']">
<b><xsl:value-of select="name"/></b>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="name"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</body></html>
</xsl:template>
56
Sortieren
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• xsl:sort muß Kind-Element von xsl:for-each sein
• Attibute: select, data-type, order, case-order
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/rezept">
<html><body>
<xsl:for-each select="zutaten/zutat">
<xsl:sort select="name"
data-type="text"
order="ascending">
<xsl:value-of select="name"/>
</xsl:sort>
</xsl:for-each>
</body></html>
</xsl:template>
57
"Sub"-Templates
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• xsl:apply-templates wendet Templates an, die zum selectAusdruck passen (hier: "zutaten")
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html><body>
Hier folgt ein Rezept:
<h3>Zutaten</h3>
<xsl:apply-templates select="zutaten"/>
<h3>Anleitung</h3>
<xsl:value-of select="anleitung"/>
</body></html>
</xsl:template>
<xsl:template match="zutaten">
<xsl:value-of select="zutat"/>
</xsl:template>
58
XSL-Fazit
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• Mächtige Transformationsprache
– XSLT gibt Regeln zur Transformation vor
– XPath ist Sprache zum Spezifizieren von Pfaden durch
XML-Dokumente
– XML Formatting Objects ist ein Set von Namen zur
Geräteunabhängigen Darstellung
• Probleme
– neues Programmierparadigma, Umlernen erforderlich
– nur auf den ersten Blick einfach
– gegenwärtige Implementierungen langsam
59
XML-Perspektive
Einführung
Motivation
XML und HTML
Anwendungen
XML-Konzepte
Unicode
Dokumentaufbau
Logische Struktur
Basis-Kompon.
Korrektheit
DTD
Weitere Kompon.
Physische Struktur
XML-Verarbeitung
Erweiterungen
XSL
Template Rules
Elemente
Fazit
Perspektive
• Weiterentwicklung des Internet
– Neue W3C Standards setzten auf XML auf
– Clientseitige Verarbeitung, insb. Layout
– Individualisierung durch vielfältige Services
• E-Commerce: Handel mit Information
• Datenaustausch
– zwischen relationalen/objektorientierten Datenbanken
– als Ziel/Zwischenformat von Datenkonvertierungen
• Publishing im Web und in anderen Medien
• Verwaltung von Dokumenten, Suchmaschinen
– präzisere Anfragen
– Anzeige von Dokumentteilen
– Inhaltsverzeichnisse, Anzeige aller Bilder, etc.
60

XML-Konzepte