60
1 Einführung in XML Einführung in XML Literatur: Literatur: Vorlesung "Interoperable Vorlesung "Interoperable Informationssysteme" Informationssysteme" Klemens Böhm, ETH Zürich Klemens Böhm, ETH Zürich (www-dbs.ethz.ch/~ii/SS2000) (www-dbs.ethz.ch/~ii/SS2000) XML/XSL Tutorial der W3School XML/XSL Tutorial der W3School (www.w3schools.com/xml/default.asp) (www.w3schools.com/xml/default.asp) W3C XML Activity W3C XML Activity (www.w3.org/XML) (www.w3.org/XML)

1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

Embed Size (px)

Citation preview

Page 1: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

1

Einführung in XMLEinführung in XMLLiteratur:Literatur:• Vorlesung "Interoperable Vorlesung "Interoperable Informationssysteme"Informationssysteme"

Klemens Böhm, ETH ZürichKlemens Böhm, ETH Zürich(www-dbs.ethz.ch/~ii/SS2000)(www-dbs.ethz.ch/~ii/SS2000)

• XML/XSL Tutorial der W3SchoolXML/XSL Tutorial der W3School(www.w3schools.com/xml/default.asp)(www.w3schools.com/xml/default.asp)

• W3C XML ActivityW3C XML Activity(www.w3.org/XML)(www.w3.org/XML)

Page 2: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

2

GliederungGliederung

• MotivationMotivation• XML-KonzepteXML-Konzepte• XML-VerarbeitungXML-Verarbeitung• Erweiterungen (Übersicht)Erweiterungen (Übersicht)• XSLXSL• XML-PerspektivenXML-Perspektiven

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 3: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

3

Was ist XML?Was ist XML?• Akronym für eAkronym für eXXtensible tensible MMarkup arkup LLanguageanguage

• SyntaxSyntax zum Strukturieren von Dokumenten zum Strukturieren von Dokumenten und Datenund Daten

• BasisBasis für viele Erweiterungen, z.B. für viele Erweiterungen, z.B.– NamensräumeNamensräume– StylesheetsStylesheets– HyperlinksHyperlinks– SchemataSchemata

• EmpfehlungEmpfehlung des W3C des W3C

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 4: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

4

Was ist XML nicht?Was ist XML nicht?• keinkein Protokoll Protokoll

– Sprache zur Datenbeschreibung, nicht Satz von Sprache zur Datenbeschreibung, nicht Satz von RegelnRegeln

– Allerdings können Regeln in XML ausgedrückt werdenAllerdings können Regeln in XML ausgedrückt werden• keine keine ProgrammierspracheProgrammiersprache

Allerdings Allerdings – können XML-Dokumente Codefragmente enthaltenkönnen XML-Dokumente Codefragmente enthalten– haben aufsetzende Standards Programmiersprachen-haben aufsetzende Standards Programmiersprachen-

Semantik (XSLT)Semantik (XSLT)• keine "magische" keine "magische" SemantikSemantik

Interpretation des Inhalts durchInterpretation des Inhalts durch– MenschenMenschen– ApplikationenApplikationen– Zusatz-StandardsZusatz-Standards

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 5: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

5

Warum XML?Warum XML?• einfacheinfach

– zu lesen durch Menschenzu lesen durch Menschen– zu verarbeiten durch Maschinenzu verarbeiten durch Maschinen– zu generierenzu generieren

• erweiterbarerweiterbar– XML ist nur generische SyntaxXML ist nur generische Syntax– Zusatz-Standards nutzen diese SyntaxZusatz-Standards nutzen diese Syntax

• standardisiertstandardisiert– weithin akzeptiertes Formatweithin akzeptiertes Format– Standard-Tools als Basiskomponenten für Standard-Tools als Basiskomponenten für

ApplikationenApplikationen

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 6: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

6

"XML will be the ASCII of the "XML will be the ASCII of the Web Web

basic: essential, unexciting"basic: essential, unexciting"Tim BrayTim Bray

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 7: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

7

XML-BeispielXML-Beispiel

<?xml version="1.0"?>

<rezept> <zutaten anzahl="3"> <zutat>Ei</zutat> <zutat>Mehl</zutat> <zutat>Salz</zutat> </zutaten> <anleitung> Alles zusammen- rühren und backen. </anleitung></rezept>

Textuelle DarstellungTextuelle Darstellung

Ei Mehl Salz Alles zusammen-rühren und backen.

rezept

zutaten anleitung

Graphische DarstellungGraphische Darstellung

{ anzahl="3" }

zutat zutat zutat

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 8: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

8

XML versus HTMLXML versus HTML

SGMLSGML (Standard Generalized Markup Language)(Standard Generalized Markup Language)

HTMLHTML XMLXML

• Instanz von SGMLInstanz von SGML• Vermischung von Inhalt Vermischung von Inhalt

und Layoutund Layout• Anzeigen von InformationAnzeigen von Information

• Subset von SGMLSubset von SGML• Strikte Trennung von InhaltStrikte Trennung von Inhalt

und Layout und Layout • Beschreiben von InformationBeschreiben von Information

XHTMLXHTML ist Instanz von ist Instanz von XMLXML

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 9: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

9

AnwendungszenarienAnwendungszenarien

• Anwendungsspezifisches Layout Anwendungsspezifisches Layout mit Standard-Softwaremit Standard-Software

• DatenaustauschDatenaustausch

• Ressourcen-BeschreibungRessourcen-Beschreibung

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 10: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

10

LayoutLayout<?xml version='1.0' encoding='ISO-8859-1' ?><?xml version='1.0' encoding='ISO-8859-1' ?><?xml-stylesheet href='../style/HomePage.xsl' type='text/xsl'?><?xml-stylesheet href='../style/HomePage.xsl' type='text/xsl'?><!--<!-- XML-Page generated by PENELOPE.XML-Page generated by PENELOPE. 1999 Araneus Group and University 'Roma Tre', Rome, ITALY1999 Araneus Group and University 'Roma Tre', Rome, ITALY-->--><!DOCTYPE HomePage SYSTEM '../DTD/HomePage.dtd'><!DOCTYPE HomePage SYSTEM '../DTD/HomePage.dtd'><HomePage><HomePage> <yearList><yearList> <yearListTuple><yearListTuple> <<yearyear>>19991999</</yearyear>> <numberList><numberList> <numberListTuple><numberListTuple> <toIssues href="../OrdinaryIssuePage/281.xml"><toIssues href="../OrdinaryIssuePage/281.xml"> <<monthmonth>>MarchMarch</</monthmonth>> </toIssues></toIssues> <<volumevolume>>2828</</volumevolume>> <<numbernumber>>11</</numbernumber>> ......

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 11: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

11

Layout (2)Layout (2)Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 12: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

12

XMLXML-Dok.-Dok.(Layout-(Layout-transf.)transf.)

Layout (3)Layout (3)

Standard-Standard-SoftwareSoftware

(XSL-Prozessor)(XSL-Prozessor)

XMLXML-Dok.-Dok.(Gerätespez. (Gerätespez.

Layout)Layout)Standard-Standard-SoftwareSoftware

((HTMLHTML-Browser)-Browser)

Mapping eines XML-Dokuments auf Mapping eines XML-Dokuments auf verschiedene Ausgabeformate benötigt verschiedene Ausgabeformate benötigt keine Spezialsoftware.keine Spezialsoftware.

XMLXML-Dok.-Dok.(Daten)(Daten)

XMLXML-Dok.-Dok.(Layout-(Layout-transf.)transf.)

Standard-Standard-SoftwareSoftware

((WAPWAP-Browser)-Browser)

XMLXML-Dok.-Dok.(Gerätespez. (Gerätespez.

Layout)Layout)

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 13: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

13

DatenaustauschDatenaustausch

RDBMSRDBMS

XML-GeneratorXML-Generator(bald Standard?)(bald Standard?)

XML-XML-ParserParser

(Standard)(Standard)

DB-DB-LoaderLoader

(spezifisch(spezifisch))

OODBMSOODBMS

DOMDOM

SAXSAX

Standard-Standard-InterfacesInterfaces

• XML erleichtert Datenaustausch durchXML erleichtert Datenaustausch durch– Standardisiertes DatenformatStandardisiertes Datenformat– Standardisierte Softwareschnittstellen (z.B. DOM)Standardisierte Softwareschnittstellen (z.B. DOM)– Standardsoftware (z.B. Parser)Standardsoftware (z.B. Parser)

• Interpretation der XML-Dokumente Interpretation der XML-Dokumente anwendungsspezifisch.anwendungsspezifisch.

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 14: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

14

Datenaustausch (2)Datenaustausch (2)Weitere Beispiele:Weitere Beispiele:

• Unternehmensdaten (Rechnungen etc.)Unternehmensdaten (Rechnungen etc.)

• Format für EJB deployment descriptionsFormat für EJB deployment descriptions

• Grundlage des Dokument Modells und des Grundlage des Dokument Modells und des Druck/Font-Frameworks des Gnome-ProjektsDruck/Font-Frameworks des Gnome-Projekts

• Natives Datenformat einiger KDE/Gnome Natives Datenformat einiger KDE/Gnome Word-Prozessoren (Abiword, Gwp, KWord, ...)Word-Prozessoren (Abiword, Gwp, KWord, ...)

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 15: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

15

Ressourcen-BeschreibungRessourcen-BeschreibungXML kann als Datenformat zur Speicherung von XML kann als Datenformat zur Speicherung von Ressourcen-Beschreibungen verwendet werden.Ressourcen-Beschreibungen verwendet werden.

CreatorCreator

www.me.de/~fritzwww.me.de/~fritz

<?xml version="1.0"?><?xml version="1.0"?><RDF<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:s="http://description.org/schema/">xmlns:s="http://description.org/schema/"> <Description about="<Description about="http://www.me.de/~fritzhttp://www.me.de/~fritz">"> <s:<s:CreatorCreator>>Fritz MüllerFritz Müller</s:</s:CreatorCreator>> </Description></Description></RDF></RDF>

Homepage

Fritz MüllerFritz MüllerRDF-ModellRDF-Modell

XML-SyntaxXML-Syntax

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 16: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

16

XML KonzepteXML Konzepte

• UnicodeUnicode• Dokument (logische und physische Dokument (logische und physische

Struktur)Struktur)• Korrektheitsbegriffe (wohlgeformt, valide)Korrektheitsbegriffe (wohlgeformt, valide)• Syntaktische KonstrukteSyntaktische Konstrukte

– ElementeElemente– AttributeAttribute– Processing InstructionsProcessing Instructions– ......

• Document Type Description (DTD)Document Type Description (DTD)

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 17: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

17

UnicodeUnicode

• Zeichen in XML sind Integer-ZahlenZeichen in XML sind Integer-Zahlen• Unicode: Abbildung der Zahlen auf ZeichenUnicode: Abbildung der Zahlen auf Zeichen• Unicode 3.0: Unicode 3.0:

– 49.194 belegte Zeichen49.194 belegte Zeichen– 25 Sprachen, mehrere Symbolzeichensätze, etc.25 Sprachen, mehrere Symbolzeichensätze, etc.

• Unicode kodiert keine FontsUnicode kodiert keine Fonts• Drei Darstellungsformen: Drei Darstellungsformen:

UTF-8, UTF-16, UTF-32UTF-8, UTF-16, UTF-32• Erste 127 Unicode Zeichen = ASCII-AlphabetErste 127 Unicode Zeichen = ASCII-Alphabet

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 18: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

18

Andere EncodingsAndere Encodings

• Verwendung Verwendung anderer anderer Encodings Encodings möglichmöglich

• Spezifiziert durch Spezifiziert durch encodingencoding Attribut Attribut

• Support durch Support durch Prozessor nicht Prozessor nicht zwingendzwingend

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 19: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

19

Übersicht: XML-DokumentÜbersicht: XML-Dokument

XML-Dokumente bestehen ausXML-Dokumente bestehen aus

• PrologProlog

• logischer Struktur (Elemente)logischer Struktur (Elemente)

• physischer Struktur (Entities)physischer Struktur (Entities)

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 20: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

20

ElementeElemente• Elemente haben einen Namen.Elemente haben einen Namen.

Bildungsregel: Bildungsregel: letter (letter | digit | . | : | - | _)*letter (letter | digit | . | : | - | _)*

• Namen sollten 'sinnvoll' sein, um die spätere Namen sollten 'sinnvoll' sein, um die spätere Interpretation durch den Menschen zu Interpretation durch den Menschen zu gewährleisten.gewährleisten.

• Elemente haben öffnenden und schließenden Elemente haben öffnenden und schließenden Tag: <Tag: <rezeptrezept> ... </> ... </rezeptrezept>>

• Elemente sind hierarchisch verschachtelt:Elemente sind hierarchisch verschachtelt:<<rezeptrezept><><zutatenzutaten> ... </> ... </zutatenzutaten></></rezeptrezept>>

• Spezielles Element: Dokument-ElementSpezielles Element: Dokument-Element

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 21: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

21

Elemente: BeispielElemente: Beispiel

Dokument-Dokument-ElementElement

zutatenzutaten sind sindenthalten inenthalten in

rezeptrezept<?xml version="1.0"?>

<rezept> <zutaten anzahl="3"> <zutat>Ei</zutat> <zutat>Mehl</zutat> <zutat>Salz</zutat> </zutaten> <anleitung> Alles zusammen- rühren und backen. </anleitung></rezept> Ei Mehl Salz Alles zusammen-

rühren und backen.

rezept

zutaten anleitung

{ anzahl="3" }

zutat zutat zutat

ElementElement

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 22: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

22

AttributeAttribute

• Attribute sind Bestandteile von Elementen.Attribute sind Bestandteile von Elementen.

• Elemente können beliebig viele Attribute Elemente können beliebig viele Attribute haben.haben.

• Spezifiziert durch Name-Wert-Paar im Spezifiziert durch Name-Wert-Paar im Start-Tag:Start-Tag:

<<zutat zutat idid="z1" ="z1" einheiteinheit="Gramm" ="Gramm" mengemenge="1,5">="1,5">......

</</zutatzutat>>

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 23: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

23

Warum Attribute?Warum Attribute?

• Attribute können getypt werden (später)Attribute können getypt werden (später)

• Bessere Lesbarkeit des DokumentsBessere Lesbarkeit des Dokuments

• Weniger SpeicherbedarfWeniger Speicherbedarf

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 24: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

24

PCDATAPCDATA

PCDATA = Parseable Character DATAPCDATA = Parseable Character DATA

• Sequenz von Zeichen, die nicht durch Sequenz von Zeichen, die nicht durch Elemente unterbrochen wird.Elemente unterbrochen wird.

• Zeichen- und Entity-Referenzen (später) Zeichen- und Entity-Referenzen (später) werden durch deren Inhalt ersetzt.werden durch deren Inhalt ersetzt.

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 25: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

25

KorrektheitsbegriffeKorrektheitsbegriffeWohlgeformtheit Wohlgeformtheit

Dokument entspricht den syntaktischen Dokument entspricht den syntaktischen RegelnRegeln– Genau ein Dokument-ElementGenau ein Dokument-Element– Jedes öffnende Tag hat ein schließendes Tag.Jedes öffnende Tag hat ein schließendes Tag.– Die Verschachtelung ist balanciert.Die Verschachtelung ist balanciert.

Gegenbeispiel: Gegenbeispiel: <<AA><><BB><><CC> ... </> ... </AA> ... </> ... </CC>>

Validität Validität Dokument istDokument ist– wohlgeformtwohlgeformt– konform zu einer Document Type Description (DTD)konform zu einer Document Type Description (DTD)

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 26: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

26

Document Type Description Document Type Description (DTD)(DTD)

XMLXML RelationenmodellRelationenmodell

DTDDTD DatenbankschemaDatenbankschema

DokumentDokument DatenbankDatenbank

Eine DTD definiert die Eine DTD definiert die zulässige Strukturzulässige Struktur von XML Dokumentenvon XML Dokumenten

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 27: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

27

Vergleich DTD und DB-Vergleich DTD und DB-SchemaSchemaVorhandenseinVorhandensein• Datenbank Datenbank mußmuß Schema besitzen Schema besitzen• XML-Dokument XML-Dokument kannkann DTD besitzen DTD besitzenMächtigkeitMächtigkeit• DTD bestimmtDTD bestimmt

– StrukturStruktur– Typen (nur bei Attributen)Typen (nur bei Attributen)

• Datenbankschema bestimmtDatenbankschema bestimmt– Struktur (z.B. Relationen und deren Beziehungen)Struktur (z.B. Relationen und deren Beziehungen)– DatentypenDatentypen– KardinalitätenKardinalitäten– ......

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 28: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

28

DTD: Grundsätzlicher DTD: Grundsätzlicher AufbauAufbau

• Eine DTD ist eine Sequenz von Eine DTD ist eine Sequenz von Element-Element-,, Attribut-Attribut- und und Entity-Deklarationen Entity-Deklarationen..

• Eine Element-Deklaration legt das Eine Element-Deklaration legt das InhaltsmodellInhaltsmodell eines Elements fest. eines Elements fest.

• Das Inhaltsmodell ist ein Das Inhaltsmodell ist ein regulärer regulärer AusdruckAusdruck, der den Aufbau des direkten , der den Aufbau des direkten Inhalts festlegt.Inhalts festlegt.

• AlleAlle in einem Dokument benutzten in einem Dokument benutzten Elemente, Attribute und Enitities müssen Elemente, Attribute und Enitities müssen deklariert sein.deklariert sein.

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 29: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

29

Element-DeklarationElement-Deklaration• Syntax:Syntax:

<!<!ELEMENTELEMENT Elementname Elementname (Inhaltsmodell)>(Inhaltsmodell)>

• Beispiel:Beispiel:<!<!ELEMENTELEMENT rezeptrezept ( (zutatenzutaten,,anleitunganleitung)>)>

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 30: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

30

Element-Deklaration: Element-Deklaration: VariantenVarianten

• ElementinhaltElementinhalt<!ELEMENT <!ELEMENT rezeptrezept ( (zutatenzutaten)>)>

• Leeres ElementLeeres Element<!ELEMENT <!ELEMENT rezept rezept EMPTYEMPTY>>

• Element mit beliebigem InhaltElement mit beliebigem Inhalt <!ELEMENT <!ELEMENT rezept rezept ANYANY>>

• Gemischter Inhalt ("mixed content")Gemischter Inhalt ("mixed content")<!ELEMENT <!ELEMENT rezeptrezept ( (#PCDATA#PCDATA)>)><!ELEMENT <!ELEMENT rezeptrezept ( (#PCDATA | #PCDATA |

zutaten)zutaten)**>>

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 31: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

31

Element-Deklaration: Element-Deklaration: VariantenVarianten

• SequenzSequenz<!ELEMENT <!ELEMENT rezept rezept (zutaten(zutaten , , anleitung)>anleitung)>

• AlternativeAlternative<!ELEMENT <!ELEMENT rezept rezept (zutaten(zutaten | | anleitung)>anleitung)>

• Occurrence IndicatorsOccurrence Indicators– Optional (Null- oder Einmal)

<!ELEMENT <!ELEMENT rezept rezept (zutaten)(zutaten)??>>– Optional wiederholbar (beliebig oft)

<!ELEMENT <!ELEMENT rezept rezept (zutaten)(zutaten)**>>– Notwendig und wiederholbar (mindestens einmal)

<!ELEMENT <!ELEMENT rezept rezept (zutaten)(zutaten)++>>

Inhaltsmodelle können mit Klammern kombiniert werden.Inhaltsmodelle können mit Klammern kombiniert werden.

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 32: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

32

Attribut-DeklarationAttribut-Deklaration

• SyntaxSyntax<!ATTLIST <!ATTLIST ElementnameElementnameAttributname Attributname TypTyp VorgabeVorgabeAttributnameAttributname TypTyp VorgabeVorgabe... >... >

• Mögliche Vorgaben:Mögliche Vorgaben:– Notwendiges AttributNotwendiges Attribut #REQUIRED#REQUIRED– Optionales AttributOptionales Attribut #IMPLIED#IMPLIED– VorbelegungVorbelegung "Wert""Wert"– Festes AttributFestes Attribut #FIXED#FIXED "Wert" "Wert"

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 33: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

33

Attribut-Typen (Auswahl)Attribut-Typen (Auswahl)

• CDATA (Zeichenkette)CDATA (Zeichenkette)<!ATTLIST <!ATTLIST zutatzutat mengemenge CDATACDATA #REQUIRED#REQUIRED>>

• AufzählungstypAufzählungstyp<!ATTLIST <!ATTLIST zutatzutat nötignötig ((jaja||neinnein||vielleichtvielleicht))

"ja""ja">>• ID, IDREFID, IDREF

– ID ist eindeutig in einem DokumentID ist eindeutig in einem Dokument– IDREF ist eine Referenz auf eine IDIDREF ist eine Referenz auf eine ID

<!ATTLIST <!ATTLIST zutatzutat nummernummer IDID #IMPLIED#IMPLIED mische-mitmische-mit IDREFIDREF #IMPLIED#IMPLIED>>

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 34: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

34

Eine DTD für KochrezepteEine DTD für Kochrezepte

<!ELEMENT<!ELEMENT rezeptrezept ((zutatenzutaten, , anleitunganleitung)>)><!ELEMENT<!ELEMENT zutatenzutaten ((zutatzutat)+>)+><!ELEMENT<!ELEMENT zutatzutat ((namename)>)><!ATTLIST<!ATTLIST zutatzutat

nummernummer IDID #REQUIRED#REQUIREDmische-mitmische-mit IDREFIDREF #IMPLIED#IMPLIEDnötignötig (ja|nein) (ja|nein) "ja""ja">>

<!ELEMENT<!ELEMENT namename (#PCDATA)> (#PCDATA)> <!ELEMENT<!ELEMENT anleitunganleitung (#PCDATA)> (#PCDATA)>

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 35: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

35

Einbinden einer DTDEinbinden einer DTD

Externe DTD-DeklarationExterne DTD-Deklaration<?xml version="1.0"><?xml version="1.0"><!DOCTYPE <!DOCTYPE rezeptrezept SYSTEMSYSTEM "http://www.x-ag.de/rezept.dtd">"http://www.x-ag.de/rezept.dtd"><<rezeptrezept> ... </> ... </rezeptrezept>>

Interne DTD-DeklarationInterne DTD-Deklaration<!DOCTYPE <!DOCTYPE rezeptrezept [[ <!ELEMENT rezept (#PCDATA)> <!ELEMENT rezept (#PCDATA)> ]]>><<rezeptrezept> Dies ist ein Rezept </> Dies ist ein Rezept </rezeptrezept>>

Gemischte NutzungGemischte Nutzung<!DOCTYPE <!DOCTYPE rezeptrezept SYSTEMSYSTEM "http://www.x-ag.de/rezept.dtd" "http://www.x-ag.de/rezept.dtd" [[<!ATTLIST <!ATTLIST rezeptrezept erfindererfinder CDATA CDATA #REQUIRED#REQUIRED>>]]>><<rezept rezept erfindererfinder="Lieschen Müller"> ... </="Lieschen Müller"> ... </rezeptrezept>>

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 36: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

36

DTD - ProblemeDTD - Probleme• Historisches Überbleibsel von SGMLHistorisches Überbleibsel von SGML• Spezielle Syntax erforderlichSpezielle Syntax erforderlich• Syntaktische EinschränkungenSyntaktische Einschränkungen

""Element Element aa enthält Elemente enthält Elemente bb, , cc, , dd in in beliebiger beliebiger Reihenfolge" nur so ausdrückbar:Reihenfolge" nur so ausdrückbar:

<!ELEMENT <!ELEMENT aa (( ((bb,,cc,,dd) | () | (cc,,bb,,dd) | () | (bb,,dd,,cc), ...)>), ...)>• Mangelhaftes TypkonzeptMangelhaftes Typkonzept

– nur Attribute haben generische + nur Attribute haben generische + nutzerdefinierbare Typennutzerdefinierbare Typen

– Keine Komplexen DatentypenKeine Komplexen Datentypen– Keine KardinalitätsrestriktionenKeine Kardinalitätsrestriktionen

Viele Schemavorschläge Viele Schemavorschläge (XML Schema, SOX, ...)(XML Schema, SOX, ...)

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 37: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

37

NotationsNotations• Mechanismus, um einen Namen zu Mechanismus, um einen Namen zu

InterpretierenInterpretieren<!<!NOTATIONNOTATION mpeg mpeg SYSTEM "C:\programme\SYSTEM "C:\programme\mpeg.exe">mpeg.exe"><!<!NOTATIONNOTATION gif gif SYSTEM "C:\programme\gif.exe">SYSTEM "C:\programme\gif.exe">

• Notationen können u.a. die Interpretation von Notationen können u.a. die Interpretation von Attributen festlegen.Attributen festlegen.<ATTLIST <ATTLIST imageimage typetype NOTATIONNOTATION (mpeg | gif)> (mpeg | gif)>

• AnwendungenAnwendungen– Multimedia-DokumenteMultimedia-Dokumente– TypsystemeTypsysteme

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 38: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

38

CDATACDATA

• CDATA-Abschnitte CDATA-Abschnitte überall, wo Character überall, wo Character Data vorkommen darf.Data vorkommen darf.

• CDATA wird nicht vom CDATA wird nicht vom Parser bearbeitet.Parser bearbeitet.

• Oft verwendet für Oft verwendet für eingebetteten Code.eingebetteten Code.

......<script><script> <![CDATA[<![CDATA[ if ( a < b ) {if ( a < b ) { subroutine(a, b)subroutine(a, b) } else {} else { subroutine(b, a)subroutine(b, a) }} ]]>]]></script></script>......

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 39: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

39

Processing Instruction (PI)Processing Instruction (PI)

• PIs sind nicht Teil des PIs sind nicht Teil des Dokumenttextes.Dokumenttextes.

• PIs werden an Applikationen PIs werden an Applikationen durchgereicht.durchgereicht.

• PIs, die mit PIs, die mit xmlxml beginnen, beginnen, sind reserviert und werden sind reserviert und werden vom Parser interpretiert.vom Parser interpretiert.

• PI beginnt mit Target,PI beginnt mit Target,dh. Bezeichner der dh. Bezeichner der Applikation, z.B. Applikation, z.B. perlperl..

<?xml<?xml version="1.0"version="1.0" encoding="ISO-8859-1" encoding="ISO-8859-1" standalone="no" standalone="no"?>?>......<?perl<?perl print "Hallo"; print "Hallo";?>?>......

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 40: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

40

Zeichenreferenzen, Zeichenreferenzen, KommentareKommentare

• Zeichenreferenzen Zeichenreferenzen können beliebige können beliebige Unicode-Zeichen Unicode-Zeichen identifizieren.identifizieren.

• Kommentare sind überall Kommentare sind überall erlaubt, aber nicht vorerlaubt, aber nicht vor<?xml ..>.<?xml ..>.

&#251; &#251; undund &#xFB; &#xFB; erzeugenerzeugen das Zeichen das Zeichen © ©

<!--<!--Dies ist ein KommentarDies ist ein Kommentar-->-->

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 41: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

41

Logische vs. physische Logische vs. physische StrukturStrukturLogische StrukturLogische Struktur• Mit Markup explizit gemachtMit Markup explizit gemacht

Physische StrukturPhysische Struktur• ErsetzungsmechanismusErsetzungsmechanismus• beruht auf dem Konzept der beruht auf dem Konzept der EntitiesEntities• Entities bestehen aus Entities bestehen aus NamenNamen und und InhaltInhalt• Parser Parser ersetzt ersetzt Entity-Name durch InhaltEntity-Name durch Inhalt• interne Entityinterne Entity: Name und Inhalt in selbem : Name und Inhalt in selbem

FileFile• externe Entityexterne Entity: Name und Inhalt in : Name und Inhalt in

verschiedenen Filesverschiedenen Files

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 42: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

42

Entities: BeispielEntities: Beispiel

<<zutatzutat><><namename>Salz</>Salz</namename></></zutatzutat>><<zutatzutat><><namename>Mehl</>Mehl</namename></></zutatzutat>>

http://www.me.de/default.xmlhttp://www.me.de/default.xml

<?xml version="1.0"?><?xml version="1.0"?><!ENTITY <!ENTITY defaultdefault SYSTEM "http://www.me.de/default.xml"> SYSTEM "http://www.me.de/default.xml"><<rezeptrezept>> <<zutatenzutaten>> &&defaultdefault;; <<zutatzutat>> <<namename>Milch</>Milch</namename>> </</zutatzutat>> </</zutatenzutaten>></</rezeptrezept>>

Entity-Entity-DefinitionDefinition

Entity-Entity-DeklarationDeklaration

Entity-Entity-ReferenzReferenz

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 43: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

43

Warum Entities?Warum Entities?

• WiederverwendungWiederverwendung• Größe der Files Größe der Files

– ÜbertragungsdauerÜbertragungsdauer– Caching von Entity-InhaltenCaching von Entity-Inhalten

• Nicht-XML-Ressourcen, z.B. BinariesNicht-XML-Ressourcen, z.B. Binaries

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 44: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

44

XML-VerarbeitungXML-Verarbeitung

ApplicationApplicationMM-Tool 1MM-Tool 1

MM-Tool 2MM-Tool 2

XML ProcessorXML Processor

<?xml version="1.0"<?xml version="1.0"......

http://www.me.de/rezept.xmlhttp://www.me.de/rezept.xml

http://www.me.de/http://www.me.de/rezept.xmlrezept.xml CallbacksCallbacks

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 45: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

45

Auf XML aufbauende Auf XML aufbauende StandardsStandards• Sehr viele auf XML aufbauende Vorschläge:Sehr viele auf XML aufbauende Vorschläge:

– NamensräumeNamensräume– DTDs (XHTML, WAP, MathML, SMIL, ...)DTDs (XHTML, WAP, MathML, SMIL, ...)– Schemata (XML Schema, XML Data, SOX, Schemata (XML Schema, XML Data, SOX,

DDML, ...)DDML, ...)– Pointers und Links (XPointer, XPath, XLink)Pointers und Links (XPointer, XPath, XLink)– Programmierschnittstellen (DOM, SAX)Programmierschnittstellen (DOM, SAX)– Beschreibungssprachen (RDF)Beschreibungssprachen (RDF)– Transformation und Layout (CSS, XSLT, XSL, ...)Transformation und Layout (CSS, XSLT, XSL, ...)– Querying (Lorel, XQL, YATL, XML-QL, Quilt, ...)Querying (Lorel, XQL, YATL, XML-QL, Quilt, ...)– ......

• Hier nur zwei Beispiele:Hier nur zwei Beispiele:– Layout mit XSLLayout mit XSL– Querying mit XQL und XML-QL (nächste Vorlesung)Querying mit XQL und XML-QL (nächste Vorlesung)

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 46: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

46

Logische Struktur vs. LayoutLogische Struktur vs. Layout• XML-Dokumente habenXML-Dokumente haben logische logische StrukturStruktur

(sie beschreiben Daten)(sie beschreiben Daten)

• Zur Darstellung ist Zur Darstellung ist LayoutLayout-Struktur -Struktur notwendignotwendig

• Layout abhängig vonLayout abhängig von– Ausgabegerät (Browser, Drucker, WAP-Ausgabegerät (Browser, Drucker, WAP-

Device, ...)Device, ...)– NutzerwünschenNutzerwünschen

• Format (HTML, WAP, PDF, ...)Format (HTML, WAP, PDF, ...)• Struktur (Teildokumente, Umsortierung, ...)Struktur (Teildokumente, Umsortierung, ...)

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 47: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

47

EXtensible Style sheet Language EXtensible Style sheet Language (XSL)(XSL)• XSL ist eine TransformationsspracheXSL ist eine Transformationssprache

– XML nach XMLXML nach XML– XML nach HTMLXML nach HTML– XML nach PDF, RTF, ...XML nach PDF, RTF, ...– XML nach "XML Formatting Objects Language"XML nach "XML Formatting Objects Language"

• XSL besteht aus drei TeilenXSL besteht aus drei Teilen– XSLT XSLT

(Transformationsprache)(Transformationsprache)– XPath XPath

(Pfade durch XML-Dokumente)(Pfade durch XML-Dokumente)– XML Formatting Objects XML Formatting Objects

(plattformunabhängige Beschreibung des (plattformunabhängige Beschreibung des gelayouteten Dokuments)gelayouteten Dokuments)

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 48: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

48

XSL (2)XSL (2)• XSL verwendet die XML-SyntaxXSL verwendet die XML-Syntax• XSL-Dokumente werden mit XSL-Dokumente werden mit Processing Processing

InstructionInstruction in XML-Dokument eingebunden in XML-Dokument eingebunden

<?xml version="1.0"?><?xml version="1.0"?><?<?xml-stylesheetxml-stylesheet type="text/xsl" href="rezept.xsl"?> type="text/xsl" href="rezept.xsl"?><<rezeptrezept> ... </> ... </rezeptrezept>>

• XSL-Dokumente benutzen XSL-Dokumente benutzen NamensraumNamensraum " "xslxsl""

<?xml version="1.0"?><?xml version="1.0"?><<xsl:stylesheetxsl:stylesheet

xmlnsxmlns::xslxsl="http://www.w3.org/TR/WD-xsl">="http://www.w3.org/TR/WD-xsl">...

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 49: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

49

... spezifizieren die Dokument-Transformation... spezifizieren die Dokument-Transformation

... bestehen aus zwei Teilen:... bestehen aus zwei Teilen:• PatternPattern, das mit dem Source Tree gematcht wird, das mit dem Source Tree gematcht wird• TemplateTemplate, das in den Result Tree eingesetzt wird, das in den Result Tree eingesetzt wird

<?xml version="1.0"?><?xml version="1.0"?><<xsl:stylesheetxsl:stylesheet xmlnsxmlns::xslxsl="http://www.w3.org/...">="http://www.w3.org/..."> <<xsl:templatexsl:template matchmatch="/rezept">="/rezept"> < <htmlhtml><><bodybody>> Hier ist das Rezept! Hier ist das Rezept! </ </bodybody></></htmlhtml>></</xsl:templatexsl:template>>

XSL - Template RulesXSL - Template RulesEinführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 50: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

50

XSL - ElementeXSL - ElementeHier behandelt:Hier behandelt:• WerteinsetzungWerteinsetzung• IterationIteration• FilterFilter• BedingungenBedingungen• AuswahlAuswahl• SortierenSortieren• "Sub"-Templates"Sub"-TemplatesNicht behandeltNicht behandelt• Variablen, Modi, Kopieren, ...Variablen, Modi, Kopieren, ...• Konflikt-BehandlungKonflikt-Behandlung• ......

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 51: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

51

Wdh.: Eine DTD für Wdh.: Eine DTD für KochrezepteKochrezepte

<!ELEMENT<!ELEMENT rezeptrezept ((zutatenzutaten, , anleitunganleitung)>)><!ELEMENT<!ELEMENT zutatenzutaten ((zutatzutat)+>)+><!ELEMENT<!ELEMENT zutatzutat ((namename)>)><!ATTLIST<!ATTLIST zutatzutat

nummernummer IDID #REQUIRED#REQUIREDmische-mitmische-mit IDREFIDREF #IMPLIED#IMPLIEDnötignötig (ja|nein) (ja|nein) "ja""ja">>

<!ELEMENT<!ELEMENT namename (#PCDATA)> (#PCDATA)> <!ELEMENT<!ELEMENT anleitunganleitung (#PCDATA)> (#PCDATA)>

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 52: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

52

WerteinsetzungWerteinsetzung

<?xml version="1.0"?><?xml version="1.0"?><<xsl:stylesheetxsl:stylesheet xmlnsxmlns::xslxsl="http://www.w3.org/TR/WD-xsl">="http://www.w3.org/TR/WD-xsl"><<xsl:template matchxsl:template match="/rezept">="/rezept"> < <htmlhtml><><bodybody>> Hier die Anleitung: Hier die Anleitung: < <pp><><xsl:value-of selectxsl:value-of select="anleitung"/></="anleitung"/></pp>> </ </bodybody></></htmlhtml>></</xsl:templatexsl:template>>

<?xml version="1.0"?><?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="rezept.xsl"?><?xml-stylesheet type="text/xsl" href="rezept.xsl"?><<rezeptrezept>> ...... <<anleitunganleitung>Alles zusammenrühren und backen.</>Alles zusammenrühren und backen.</anleitunganleitung>></</rezeptrezept>>

• xsl:template matchxsl:template match gibt den Kontext vorgibt den Kontext vor• xsl:value-of selectxsl:value-of select setzt Inhalt eines Subelements einsetzt Inhalt eines Subelements ein

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 53: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

53

IterationIteration

<?xml version="1.0"?><?xml version="1.0"?><<xsl:stylesheetxsl:stylesheet xmlnsxmlns::xslxsl="http://www.w3.org/TR/WD-xsl">="http://www.w3.org/TR/WD-xsl"><<xsl:templatexsl:template matchmatch="/rezept">="/rezept"> < <htmlhtml><><bodybody>> <<tabletable>> <<xsl:for-each selectxsl:for-each select="zutaten/zutat">="zutaten/zutat"> < <trtr><><tdtd>> <<xsl:value-ofxsl:value-of selectselect="name"/>="name"/> </ </tdtd></></trtr>> </ </xsl:for-eachxsl:for-each>> </</tabletable>> </ </bodybody></></htmlhtml>></</xsl:templatexsl:template>>

• xsl:for-each xsl:for-each wiederholt Block für jeden Match von wiederholt Block für jeden Match von selectselectEinführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 54: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

54

FilterFilter

<?xml version="1.0"?><?xml version="1.0"?><<xsl:stylesheetxsl:stylesheet xmlnsxmlns::xslxsl="http://www.w3.org/TR/WD-xsl">="http://www.w3.org/TR/WD-xsl"><<xsl:templatexsl:template matchmatch="/rezept">="/rezept"> < <htmlhtml><><bodybody>> <<tabletable>> <<xsl:for-eachxsl:for-each selectselect="zutaten/zutat="zutaten/zutat[name='Salz'][name='Salz']">"> < <trtr><><tdtd>> <<xsl:value-ofxsl:value-of selectselect="name"/>="name"/> </ </tdtd></></trtr>> </ </xsl:for-eachxsl:for-each>> </</tabletable>> </ </bodybody></></htmlhtml>></</xsl:templatexsl:template>>

• Filter sind Bestandteil des Filter sind Bestandteil des XPathXPath-Standards-Standards• Vergleichsoperatoren: Vergleichsoperatoren: ==, , !=!=, , &lt;&lt;, , &gt;&gt;• Hier: Block wird nur für Zutaten vom Typ 'Salz' eingesetzt.Hier: Block wird nur für Zutaten vom Typ 'Salz' eingesetzt.

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 55: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

55

BedingungenBedingungen

<?xml version="1.0"?><?xml version="1.0"?><<xsl:stylesheetxsl:stylesheet xmlnsxmlns::xslxsl="http://www.w3.org/TR/WD-xsl">="http://www.w3.org/TR/WD-xsl"><<xsl:templatexsl:template matchmatch="/rezept">="/rezept"> < <htmlhtml><><bodybody>> <<tabletable>> <<xsl:for-eachxsl:for-each selectselect="zutaten/zutat">="zutaten/zutat"> < <xsl:if matchxsl:if match=".[name='Salz']">=".[name='Salz']"> < <trtr><><tdtd>> <<xsl:value-ofxsl:value-of selectselect="name"/>="name"/> </ </tdtd></></trtr>> </</xsl:ifxsl:if>> </ </xsl:for-eachxsl:for-each>> </</tabletable>> </ </bodybody></></htmlhtml>></</xsl:templatexsl:template>>

• Konditionale Blocks werden mit Konditionale Blocks werden mit xsl:if matchxsl:if match spezifiziert spezifiziert• Die Bedingung wird mit einem XPath-Ausdruck angegebenDie Bedingung wird mit einem XPath-Ausdruck angegeben

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 56: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

56

AuswahlAuswahl

<?xml version="1.0"?><?xml version="1.0"?><<xsl:stylesheetxsl:stylesheet xmlnsxmlns::xslxsl="http://www.w3.org/TR/WD-xsl">="http://www.w3.org/TR/WD-xsl"><<xsl:templatexsl:template matchmatch="/rezept">="/rezept"> < <htmlhtml><><bodybody>> <<xsl:for-eachxsl:for-each selectselect="zutaten/zutat">="zutaten/zutat"> < <xsl:choosexsl:choose>> < <xsl:when matchxsl:when match=".[@nötig='ja']">=".[@nötig='ja']"> < <bb><><xsl:value-ofxsl:value-of selectselect="name"/></="name"/></bb>> </ </xsl:whenxsl:when>> <<xsl:otherwisexsl:otherwise>> < <xsl:value-ofxsl:value-of selectselect="name"/>="name"/> </ </xsl:otherwisexsl:otherwise>> </</xsl:choosexsl:choose>> </ </xsl:for-eachxsl:for-each>></</bodybody></></htmlhtml>></</xsl:templatexsl:template>>

• Eine Auswahl wird mit Eine Auswahl wird mit xsl:choosexsl:choose, , xsl:whenxsl:when und und xsl:otherwisexsl:otherwise spezifiziert spezifiziertEinführung

Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 57: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

57

SortierenSortieren

<?xml version="1.0"?><?xml version="1.0"?><<xsl:stylesheetxsl:stylesheet xmlnsxmlns::xslxsl="http://www.w3.org/TR/WD-xsl">="http://www.w3.org/TR/WD-xsl"><<xsl:templatexsl:template matchmatch="/rezept">="/rezept"> < <htmlhtml><><bodybody>> <<xsl:for-eachxsl:for-each selectselect="zutaten/zutat">="zutaten/zutat"> < <xsl:sortxsl:sort selectselect="name"="name" data-typedata-type="text"="text"

orderorder="ascending">="ascending"> < <xsl:value-ofxsl:value-of selectselect="name"/>="name"/> </ </xsl:sortxsl:sort>> </ </xsl:for-eachxsl:for-each>></</bodybody></></htmlhtml>></</xsl:templatexsl:template>>

• xsl:sort xsl:sort muß Kind-Element vonmuß Kind-Element von xsl:for-eachxsl:for-each sein sein• Attibute: Attibute: selectselect, , data-typedata-type, , orderorder, , case-ordercase-order

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 58: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

58

"Sub"-Templates"Sub"-Templates

<?xml version="1.0"?><?xml version="1.0"?><<xsl:stylesheetxsl:stylesheet xmlnsxmlns::xslxsl="http://www.w3.org/TR/WD-xsl">="http://www.w3.org/TR/WD-xsl"><<xsl:templatexsl:template matchmatch="/">="/"> < <htmlhtml><><bodybody>> Hier folgt ein Rezept: Hier folgt ein Rezept: < <h3h3>Zutaten</>Zutaten</h3h3>> <<xsl:apply-templates selectxsl:apply-templates select="zutaten"/>="zutaten"/> < <h3h3>Anleitung</>Anleitung</h3h3>> <<xsl:value-of selectxsl:value-of select="anleitung"/>="anleitung"/> </ </bodybody></></htmlhtml>></</xsl:templatexsl:template>>

<<xsl:templatexsl:template matchmatch="zutaten">="zutaten"> <<xsl:value-ofxsl:value-of selectselect="zutat"/> ="zutat"/> </</xsl:templatexsl:template>>

• xsl:apply-templates xsl:apply-templates wendet Templates an, die zum wendet Templates an, die zum selectselect-Ausdruck passen (hier: "zutaten")-Ausdruck passen (hier: "zutaten")

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 59: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

59

XSL-FazitXSL-Fazit• Mächtige TransformationspracheMächtige Transformationsprache

– XSLT gibt Regeln zur Transformation vorXSLT gibt Regeln zur Transformation vor– XPath ist Sprache zum Spezifizieren von Pfaden XPath ist Sprache zum Spezifizieren von Pfaden

durch XML-Dokumentedurch XML-Dokumente– XML Formatting Objects ist ein Set von Namen XML Formatting Objects ist ein Set von Namen

zur Geräteunabhängigen Darstellungzur Geräteunabhängigen Darstellung

• ProblemeProbleme– neues Programmierparadigma, Umlernen neues Programmierparadigma, Umlernen

erforderlicherforderlich– nur auf den ersten Blick einfachnur auf den ersten Blick einfach– gegenwärtige Implementierungen langsamgegenwärtige Implementierungen langsam

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive

Page 60: 1 Einführung in XML Literatur: Vorlesung "Interoperable Informationssysteme" Klemens Böhm, ETH Zürich (ii/SS2000) Vorlesung "Interoperable

60

XML-PerspektiveXML-Perspektive• Weiterentwicklung des InternetWeiterentwicklung des Internet

– Neue W3C Standards setzten auf XML aufNeue W3C Standards setzten auf XML auf– Clientseitige Verarbeitung, insb. LayoutClientseitige Verarbeitung, insb. Layout– Individualisierung durch vielfältige ServicesIndividualisierung durch vielfältige Services

• E-Commerce: Handel mit InformationE-Commerce: Handel mit Information• DatenaustauschDatenaustausch

– zwischen relationalen/objektorientierten Datenbankenzwischen relationalen/objektorientierten Datenbanken– als Ziel/Zwischenformat von Datenkonvertierungenals Ziel/Zwischenformat von Datenkonvertierungen

• Publishing im Web und in anderen MedienPublishing im Web und in anderen Medien• Verwaltung von Dokumenten, SuchmaschinenVerwaltung von Dokumenten, Suchmaschinen

– präzisere Anfragenpräzisere Anfragen– Anzeige von DokumentteilenAnzeige von Dokumentteilen– Inhaltsverzeichnisse, Anzeige aller Bilder, etc.Inhaltsverzeichnisse, Anzeige aller Bilder, etc.

Einführung Motivation XML und HTML AnwendungenXML-Konzepte Unicode Dokumentaufbau Logische Struktur Basis-Kompon. Korrektheit DTD Weitere Kompon. Physische StrukturXML-VerarbeitungErweiterungenXSL Template Rules Elemente FazitPerspektive