• Keine Ergebnisse gefunden

Warum XML lernen?

N/A
N/A
Protected

Academic year: 2022

Aktie "Warum XML lernen?"

Copied!
7
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

© Klaus Schild, 2004 1

Rückblick und Rückblick und

Diskussion Diskussion

© Klaus Schild, 2004 2

Rückblick und Diskussion Rückblick und Diskussion

ƒ Kurze Wiederholung von Themen, die bei Rücksprachen Probleme bereiteten.

ƒ Diskussionswürdiges

© Klaus Schild, 2004 3

Inhalt Inhalt

ƒ

ƒ Warum XML lernen?Warum XML lernen?

ƒ

ƒ XMLXML

Semantik, Daten als XML speichern?

ƒƒ XMLXML--SchemaSchema

Validierung auf mehreren Ebenen, Typsubstitution

ƒ

ƒ XSLTXSLT

Mächtigkeit, Bewertung

ƒ

ƒ WebWeb--DiensteDienste

Dynamisches Einbinden, RPCs vs. Messaging, Interoperabilität

ƒƒ Anwendungen Anwendungen

© Klaus Schild, 2004 4

Warum XML lernen?

Warum XML lernen?

Warum noch XML lernen?

Warum noch XML lernen?

ƒ Schema-Übersetzer: XML-Schema kann in Java- oder C#-Klassen übersetzt werden.

ƒ Mit dem generierten Klassen und Methoden können XML-Dokumente gelesen, modifiziert und erstellt werden, ohne dass XML sichtbar ist.

ƒ Ähnliches gilt für WSDL und SOAP:

ƒ .Net kann eine WSDL-Beschreibung in C#-Klassen übersetzen, die vollständig von SOAP abstrahieren.

Warum sich also noch mit XML und SOAP beschäftigen?

Warum sich also noch mit XML und SOAP beschäftigen?

Typisches E

Typisches E- -Business Business- -Projekt Projekt

Zulieferer

ƒ Branchenvertreter wollen miteinander Geschäfte über das Internet machen.

ƒ Sie müssen sich auf ein Austauschformat einigen.

(2)

© Klaus Schild, 2004 7

Typisches E

Typisches E- -Business Business- -Projekt: Phase I Projekt: Phase I

ƒ Welche Geschäftsdaten sollen ausgetauscht werden?

ƒ Gibt es bereits einen passenden Branchenstandard?

ƒ Wie sollen diese Geschäftsdaten in XML repräsentiert werden?

ƒ Gibt es bereits einen geeigneten XML-Standard?

ƒ Ziel: Branchenstandard in Form eines XML-Schemas

ƒ weiteres Ziel: entsprechende Web-Dienste (WSDL- Beschreibungen) definieren.

Software-Architekten entwickeln gemeinsam einen XML-basierten Branchenstandard.

Software-Architekten entwickeln gemeinsam einen XML-basierten Branchenstandard.

© Klaus Schild, 2004 8

Typisches E

Typisches E- -Business Business- -Projekt: Phase II Projekt: Phase II

ƒ gegeben:

ƒBranchenstandard in Form eines XML-Schemas

ƒWSDL-Beschreibung für Web-Dienste

ƒgemeinsames Verständnis der XML-Syntax

ƒ Aufgabe: Realisierung der Schnittstelle zwischen betriebsinterner Software und dem XML-Standard.

Programmierer können Schema-Übersetzer und .Net einsetzen und von XML/SOAP abstrahieren.

Programmierer können Schema-Übersetzer und .Net einsetzen und von XML/SOAP abstrahieren.

XML

© Klaus Schild, 2004 9

Warum sich noch mit XML beschäftigen?

Warum sich noch mit XML beschäftigen?

ƒ Phase I: Software-Architekten beschäftigen sich intensiv mit entsprechender Branche, XML, XML-Schemata, SOAP und WSDL.

ƒ Phase II: Programmierer können Schema-Übersetzer und .Net einsetzen und von XML bzw. SOAP abstrahieren.

Phase I

Phase I Phase IIPhase II

> 80%

Projektaufwand Projektaufwand

© Klaus Schild, 2004 10

Typische Industrieprojekte Typische Industrieprojekte

Phase I:

Anforderungsanalyse, Software-Architektur Phase I:

Phase I:

Anforderungsanalyse, Software-Architektur

Phase II:

Umsetzung Phase II:

Phase II:

Umsetzung

> 80%

Projektaufwand Projektaufwand

ƒ Phase II wird zunehmend ins Ausland ausgelagert.

ÎWerden Sie SW-Architekt und nicht Programmierer!

ƒ Phase II wird zunehmend ins Ausland ausgelagert.

ÎWerden Sie SW-Architekt und nicht Programmierer!

© Klaus Schild, 2004 11

XML XML

© Klaus Schild, 2004 12

Semantik in XML Semantik in XML

ƒ Bedeutung von <p>Text</p>

- in HTML: fest - in XML: offen

ƒ XML-Schema: Inhalt des Elementes ein Datentyp (und damit eine gewisse Bedeutung) zuordnen

ƒ Namensraum: Element selbst Bedeutung geben

<p xmlns="http://www.w3.org/1999/xhtml">Text</p>

http://www.w3.org/1999/xhtml

HTML auf bestimmte Semantik festgelegt, XML nicht.

HTML auf bestimmte Semantik festgelegt, XML nicht.

(3)

© Klaus Schild, 2004 13

Daten als XML speichern Daten als XML speichern

<Employee>

<EmployeeNo>4</EmployeeNo>

<Name>

<First>Mark</First>

<Last>Whitehorn</Last>

</Name>

<City>

<Name>New York City</Name>

<CityId>NYC</CityId>

</City>

<Type>Sales Person</Type>

<Orders>

<Order>

<OrderNo>121</OrderNo>

<OrderItems>…</OrderIntems>

<CustomerNo>999</CustomerNo>

</Order>

</Orders>

</Employee>

<Employee>

<EmployeeNo>4</EmployeeNo>

<Name>

<First>Mark</First>

<Last>Whitehorn</Last>

</Name>

<City>

<Name>New York City</Name>

<CityId>NYC</CityId>

</City>

<Type>Sales Person</Type>

<Orders>

<Order>

<OrderNo>121</OrderNo>

<OrderItems>…</OrderIntems>

<CustomerNo>999</CustomerNo>

</Order>

</Orders>

</Employee>

ƒ als Austauschformat OK

ƒ als Speicherformat aber problematisch:

ƒ Änderungsanomalie

ƒ Löschanomalie

© Klaus Schild, 2004 14

Daten als XML speichern?

Daten als XML speichern?

ƒ relationale Datenbank in XML einfach zu kodieren, einschl. Primär- und Fremdschlüssel

ƒ jedoch unterschiedliche Anforderungen für Austausch- und Speicherformate:

ƒ Austauschformate: sollten kompakt und einfach zu parsen sein

ƒ Speicherformate: sollten Lösch- und Änderungsanomalien vermeiden

ƒ Austausch- und Speicherformat deshalb häufig sehr unterschiedlich, auch wenn XML verwendet wird.

© Klaus Schild, 2004 15

Daten als XML speichern?

Daten als XML speichern?

ƒ Daten mit vielen funktionalen Abhängigkeiten:

besser professionelle Speicherformate wählen (z.B.

relationale Datenbanken).

ƒ Text-Dokumente ohne funktionale Abhängigkeiten:

XML kann als Speicherformat benutzt werden.

© Klaus Schild, 2004 16

XML- XML -Schema Schema

Validierung Validierung

BookStore.xml BookStore.xsd

zulässiges BookStore- Dokument?

Instanz

= XML-Dokument Schema

Validierung

Validierung auf mehrere Ebenen auf mehrere Ebenen

BookStore.xml BookStore.xsd XMLSchema.xsd

zulässiges BookStore- Dokument?

Instanz

= XML-Dokument Schema

= XML-Dokument

zulässiges XMLSchema- Dokument?

Schema der Schemata

(4)

© Klaus Schild, 2004 19

Validierung

Validierung auf mehrere Ebenen auf mehrere Ebenen

BookStore.xml BookStore.xsd XMLSchema.xsd

zulässiges BookStore- Dokument?

Instanz

= XML-Dokument Schema

= XML-Dokument

zulässige XMLSchema- Dokumente?

Schema der Schemata = XML-

Dokument

© Klaus Schild, 2004 20

Abgeleiteter Datentyp Abgeleiteter Datentyp

<xsd:complexType name="NameType">

<xsd:sequence>

<xsd:element name="first" type="xsd:string"/>

<xsd:element name="middle" type="xsd:string"/>

<xsd:element name="last" type="xsd:string"/>

</xsd:sequence>

<xsd:attribute name="title" type="xsd:string"/>

</xsd:complexType>

<xsd:complexType name="ExtendedNameType">

<xsd:complexContent>

<xsd:extension base="target:NameType">

<xsd:attribute name="gender" type="xsd:string"/>

</xsd:extension>

</xsd:complexContent>

</xsd:complexType>

<xsd:complexType name="NameType">

<xsd:sequence>

<xsd:element name="first" type="xsd:string"/>

<xsd:element name="middle" type="xsd:string"/>

<xsd:element name="last" type="xsd:string"/>

</xsd:sequence>

<xsd:attribute name="title" type="xsd:string"/>

</xsd:complexType>

<xsd:complexType name="ExtendedNameType">

<xsd:complexContent>

<xsd:extension base="target:NameType">

<xsd:attribute name="gender" type="xsd:string"/>

</xsd:extension>

</xsd:complexContent>

</xsd:complexType>

Datentypt Datentypt

Datentypt' mit zusätzlichem Attributgender Datentypt' mit zusätzlichem Attributgender

© Klaus Schild, 2004 21

Typsubstitution Typsubstitution

<name title="Mr.">

<first>…</first>

<middle>…</middle>

<last>…</last>

</name>

<name title="Mr.">

<first>…</first>

<middle>…</middle>

<last>…</last>

</name>

<name title="Mr." gender="female" xsi:type="ExtendedNameType">

<first>…</first>

<middle>…</middle>

<last>…</last>

</name>

<name title="Mr." gender="female" xsi:type="ExtendedNameType">

<first>…</first>

<middle>…</middle>

<last>…</last>

</name>

gültige Instanz 1 gültige Instanz 1

gültige Instanz 2 gültige Instanz 2

<xsd:element name="name" type="NameType">

<xsd:element name="name" type="NameType">

Schema Schema

© Klaus Schild, 2004 22

Typsubstitution Typsubstitution

ƒ Schema Sleitet einen Datentyp t'von einem anderen Datentyp tab (entweder mit xsd:extensionoder xsd:restriction).

ƒ Betrachten wir nun eine Instanz des Schemas S.

ƒ An jeder Stelle in der Instanz, wo das Schema Sden Datentyptverlangt, kann auch t'verwendet werden.

ƒ Verwendete Datentyp t'muss mit xsi:typeexplizit angegeben werden.

© Klaus Schild, 2004 23

XSLT XSLT

© Klaus Schild, 2004 24

Mächtigkeit von XSLT Mächtigkeit von XSLT

ƒ Variablen machen Stylesheets zu einem mächtigen Termersetzungssystem mit unbeschränkten Registern.

ƒ www.unidex.com/turing definiert universelle Turingmaschine in XSLT.

ƒ Damit wird der IE zum vollwertigen Computer!

ƒ Stylesheets tatsächlich berechnungsvollständig und damit eine vollwertige Programmiersprache (Kepser 2002).

ƒ Problem: Terminierung von Stylesheets kann nicht garantiert werden.

(5)

© Klaus Schild, 2004 25

Principle of Least Power

Verletzt XSLT dieses Prinzip?

Verletzt XSLT dieses Prinzip?

When I designed HTML for the Web, I chose to avoid giving it more power than it absolutely needed - a

"principle of least power," which I have stuck ever since.

I could have used a language like Donald Knuth's

"TeX," which though it looks like a markup language is in fact a programming language. It would allow you to express absolutely anything on the page, but would also have allowed Web pages that could crash, or loop forever (Tim Berner-Lees, 1999).

© Klaus Schild, 2004 26

Vorteile von XSLT Vorteile von XSLT

+ plattformunabhäng + relativ weit verbreitet

+ Verarbeitung im Web-Browser möglich

+ Standard-Transformationen (wie XML ÎHTML) einfach (deklarativ) zu realisieren.

+ Nicht nur HTML, sondern beliebige andere Sprachen können erzeugt werden.

+ extrem flexibel und mächtig

© Klaus Schild, 2004 27

Nachteile von XSLT Nachteile von XSLT

- Entwickler müssen speziellfür die Transformation von XML-Dokumenten neue Programmiersprache lernen.

- Anbindung von Datenbanken umständlich

- bestimmte Transformationen (ähnlich zu Datenbank- Anfragen) nur sehr umständlich zu realisieren

- Stylesheets zu mächtig, um Transformationen (wie z.B.

in SQL) automatisch zu optimieren

Fazit: XSLT nur für Standard- Transformationen verwenden!

Fazit: XSLT nur für Standard- Transformationen verwenden!

© Klaus Schild, 2004 28

Web- Web -Dienste Dienste

RPC vs.

RPC vs. Messaging Messaging

RPC

+ einfach, abstrahiert von Kommunikation - nur Eins-zu-Eins-Kommunikation - Client und Server müssen präsent sein.

- nicht skalierbar Messaging

- abstrahiert nicht von Kommunikation + erlaubt auch One-to-Many-Kommunikation

+ Weder Sender noch Empfänger müssen präsent sein.

+ erlauben Priorisierung und Lastverteilung, dadurch skalierbar

Îlose gekoppelte, flexible Systeme Îlose gekoppelte, flexible Systeme Îeng gekoppelte, starre Systeme Îeng gekoppelte, starre Systeme

Einbindung eines Web-Dienstes

zur Laufzeit:

ƒ vollautomatisches Einbinden prinzipiell mit WSDL möglich, wird aber die Ausnahme bleiben.

zur Entwicklungszeit:

ƒ kein vollautomatisches Einbinden, WSDL erleichtertaber das Einbinden ganz erheblich:

ƒ Web-Dienst finden: nicht automatisiert

ƒ Web-Dienst aufrufen: teilweise automatisiert ÎVision

ÎVision

ÎRealität ÎRealität

(6)

© Klaus Schild, 2004 31

Aufruf eines Web-Dienstes

ƒ gegeben: WSDL-Beschreibung

ƒ Aus der WSDL-Beschreibung kann automatischeine Schnittstelle zur Anwendung (Stubs) generiert werden:

z.B. eine Methode setParameterStarteiner Klasse DoGoogleSearch

ƒ Abbildung zwischen Stubs und Anwendungslogik normalerweise nichtautomatisierbar:

Wie und wo SetParameterStartim Anwendungsprogramm aufrufen?

ƒ nur teilweise automatisierbar

ƒ Ausnahme: Operationen und Parameter sind standardisiert

ƒ nur teilweise automatisierbar

ƒ Ausnahme: Operationen und Parameter sind standardisiert

© Klaus Schild, 2004 32

Anwendungen Anwendungen

© Klaus Schild, 2004 33

Kategorien von

Kategorien von XML XML- -Anwendungen Anwendungen

XML als Meta

XML als Meta--Sprache Sprache

ƒ Mit XML-Schema/DTD wird Auszeichnungsprache für spezielle Anwendung definiert.

Lösung konkreter Probleme Lösung konkreter Probleme

ƒ XML-Technologien werden zur Lösung konkreter Probleme eingesetzt.

© Klaus Schild, 2004 34

XML als Meta

XML als Meta- -Sprache Sprache

ƒ XHTML: Reformulierung von HTML in XML

ƒ WML: Wireless Markup Language

Präsentation von Inhalten auf mobilen Endgeräten

ƒ DocBook: strukturierte Darstellung von Bücher/Artikel

ƒ MathML: Mathematical Markup Language Standard für mathematische Ausdrücke

ƒ SVG: Scalable Vector Graphics Standard für Vektorgraphiken

ƒ SMIL: Synchronized Multimedia Integration Language Standard für Multi-Media-Anwendungen

ƒ VoiceXML: Voice Extensible Markup Language Standard für interaktive Sprachanwendungen

© Klaus Schild, 2004 35

XML als Meta

XML als Meta- -Sprache Sprache

ƒ XHTML: Reformulierung von HTML in XML

ƒ WML: Wireless Markup Language

Präsentation von Inhalten auf mobilen Endgeräten

ƒ DocBook: strukturierte Darstellung von Bücher/Artikel

ƒ MathML: Mathematical Markup Language Standard für mathematische Ausdrücke

ƒ SVG: Scalable Vector Graphics Standard für Vektorgraphiken

ƒ SMIL: Synchronized Multimedia Integration Language Standard für Multi-Media-Anwendungen

ƒ VoiceXML: Voice Extensible Markup Language Standard für interaktive Sprachanwendungen

ƒ unterschiedliche Anwendungen, aber einheitliche Syntax

ƒ echte Erfolgsgeschichte!

ƒ unterschiedliche Anwendungen, aber einheitliche Syntax

ƒ echte Erfolgsgeschichte!

© Klaus Schild, 2004 36

XML als Lösung konkreter Probleme XML als Lösung konkreter Probleme

Trennung von Inhalt und Präsentation Trennung von Inhalt und Präsentation

ƒ Inhalt: XML

ƒ Präsentation: HTML, WML, ASCII, …

ƒ Transformation: XSLT, Perl, … Semantic

SemanticWebWeb

ƒ Suche in strukturierten Dokumenten

ƒ Beispiel: gezielte Suche nach Schlüsselworten in

<abstract>…</abstact>statt im ganzen Dokument Web

Web--DiensteDienste

(7)

© Klaus Schild, 2004 37

Exkurs: Netzwerkeffekte Exkurs: Netzwerkeffekte

Nutzen für einzelnen Nutzer

Anzahl der Nutzer

ƒ Beispiele: Telefon, E-Mail, HTML, XML

ƒ Gibt es nur einen Nutzer, ist der Nutzen für diesen Nutzer gleich Null.

ƒ Je mehr Nutzer, desto höher der Nutzen für die einzelnen Nutzer.

© Klaus Schild, 2004 38

Kritische Masse Kritische Masse

Nutzen für einzelnen Nutzer

Anzahl der Nutzer

ƒ Unterhalb einer kritischen Masse ist der Nutzen sehr gering.

ƒ Oberhalb einer kritischen Masse steigt der Nutzen rapide an.

ƒ Bei konkurrierenden Netzwerken nicht vorhersagbar, welches Netzwerk sich durchsetzen wird.

kritische Masse

© Klaus Schild, 2004 39

Netzwerkeffekte XML Netzwerkeffekte XML

Nutzen für einzelnen Nutzer

Anzahl der Nutzer

ƒ XML hat eindeutig noch nicht die kritische Masse von Nutzern erreicht.

ƒ Aber: Zum ersten mal in der Geschichte haben sich allegroßen IT- Unternehmen auf einen Standard geeinigt: XML, SOAP und WSDL XML 2004

XML 2004

?

?

© Klaus Schild, 2004 40

Rücksprache Rücksprache

ƒ Anmeldung: bis zum 18.2.2004

ƒ Fragen: zum Vorlesungsstoff

ƒ Voraussetzung: Pflichtlektüre gelesen, Übungen bearbeitet

ƒ Beispiel-Frage: Wie arbeitet ein XSLT-Prozessor?

ƒ war Thema in einer Vorlesung

ƒ gehe davon aus, dass entspr. Kapitel in Beginning XMLgelesen und Übung zu XSLT bearbeitet wurde

Referenzen

ÄHNLICHE DOKUMENTE

Element Node: price NodeList Text Node: 11.95 NodeList. Element

alle Zeichen erlaubt, die nicht ausdrücklich verboten.

&lt;!ELEMENT Book (Title, Author, Date, ISBN?, Publisher)&gt;. &lt;!ELEMENT

Wer hat Kontrolle über das Parsen: die Anwendung oder der

• Sobald der Parser eine syntaktische Einheit analysiert hat, benachrichtigt er die Anwendung und übergibt die entsprechende Analyse.. • Beachte: „Push” bezieht sich wiederum

ƒ verallgemeinerte Auszeichnungssprache (generalized markup language): keine Tags vorgegeben, beliebige Tags möglich. ƒ Vorteil: beliebige

Wer hat Kontrolle über das Parsen: die Anwendung oder der

o Benutzung über Java, C++ oder Perl o Plattform: Java, Windows, Unix Voraussetzung..  Betriebssystem mit Java-, C++- oder