XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der...
Embed Size (px)
Transcript of XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der...
-
XML-Schema
Im Fach SOA, ISM 2008
Gunther Heinrich, Tobias Steimer
-
2Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
Ziel der Prsentation
Einfhrung in die Thematik XML und XML-Schema
Kennenlernen der technischen Grundlagen von XML-Schema
Wie wird ein XML-Schema Schritt fr Schritt aufgebaut
Vermittlung des grundlegenden Konzeptes von XML-Schema
-
3Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
Agenda
1 Einfhrung1.1 Was ist XML?
1.2 Was ist XML Schema?
1.3 Schema in der Praxis
1.4 Ein einfaches XML Schema
2 Datentypen2.1 Atomare Datentypen
2.2 SimpleType
2.3 ComplexType
2.4 Elemente und Attribute
3 Definition von eigenen Datentypen3.1 Eigene Datentypen - Fallbeispiel
3.2 Das Bestellobjekt
3.3 Die Bestellposition
3.4 Das XML-Schema
3.5 Die Validierung
4 Namespaces
4.1 Was ist ein Namespace?
4.2 Anpassung der Dateien
4.3 Strukturansicht
4.4 Anforderung
5 Import von Schemata5.1 Was ist ein Import?
5.2 Grobes Vorgehen
5.3 Import am Beispiel Kunde
6 Praxisteil
-
1 Einfhrung
1.0 Einordnung der Thematik
1.1 Was ist XML?
1.2 Was ist XML-Schema?
1.3 Schema in der Praxis
1.4 Ein einfaches Schema
Service Oriented Architecture:
XML Schema zur Definition von
Geschftsobjekten
-
5Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
1.0 Einordnung der Thematik
XML-Schema bzw. XML als Basis hherwertiger Dienste im Kontext SOA
XML-Schema
XML
BPELWSDL SOAP
You cannot make a move within an SOA without involving XMLThomas Erl (2004)
-
6Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
1.1 Was ist XML?
Die eXtensible Markup Language ist
wie HTML eine Auszeichnungssprache
wie HTML die Tochter von SGML
aber vielseitiger als HTML
SGML
XML HTML
Text
Text
XML
HTML
-
7Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
1.1 Was ist XML?
Die eXtensible Markup Language erlaubt im Gegensatz zu HTML
die Speicherung hierarchisch strukturierter
Daten
den Datenaustausch zwischen unabhngigen
Computersystemen
die Nutzung von eigenen Tags
Grundstzlich alles mglich, solange
wohlgeformt
genau ein Wurzelelement Beginn- und End-Tag
-
8Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
1.1 Was ist XML Schema? (Next generation DTD)
Sprache zur Beschreibung und Beschrnkung von XML Inhalten
WIE sollen WO und in WELCHER FORM Elemente in einer XML-Datei enthalten sein?
Grammatik von XML zur unabhngigen Definition von Datentypen
Abgrenzung XML Schema - Document Type Definition (DTD):
XML-Syntax zur Erstellungdes Schemas
A
B
Anwendung von Namespaces
String
Integer
Verschiedene Datentypen
meinBuch
Bestellung
Definition von eigenen Datentypen
-
9Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
1.2 XML-Schema in der Praxis
XML-Parser
XML-Dokument
Schema-Dokument
Wohl-geformt
Valide
-
10Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
1.3 Ein einfaches Beispiel
Bestellung
-
1 Einfhrung
2 Datentypen
2.1 Atomare Datentypen
2.2 SimpleType
2.3 ComplexType
2.4 Elemente und Attribute
Service Oriented Architecture:
XML Schema zur Definition von
Geschftsobjekten
-
12Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
2.1 Atomare Datentypen
Grundlage fr komplexe Datentypen
kleiner geht nicht
Es gibt insgesamt 19 Datentypen, u.a.:
BooleanWahr / falsch
StringDies ist ein Text
Float12.78e-2
Date2008-10-24 (US)
Time13:20:00-05:00
Decimal-2,44
-
13Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
2.2 SimpleType
Datentyp zur Restriktion von Inhalten und Ableitung von vorhandenen atomaren Datentypen
Wichtige Methoden von SimpleType:
RestrictionEingeschrnkter
Wertebereich
ListListe von Werten eines einfachen Datentyps
UnionVereinigung von atomaren
Datentypen
Anzahl der Elemente Inhalt der Elemente
Beispiel:24 / small
(Integer / String)
Beispiel:1 24 25 278
-
14Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
2.2 SimpleType Beispiel Restriction
[]
[]
3
301
-
15Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
2.3 ComplexType
Dient wie SimpleType zur Restriktion von Inhalten
Aber das ComplexType kann im Gegensatz zum SimpleType
A
B
andere Elemente enthalten
erweitert werden(Quasi-Vererbung)
Attribute besitzen keinen Inhalt besitzen
A
A1="" A2=""
A
AB
-
16Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
2.3 ComplexType Arten
ComplexTypes werden neben Attributen mit folgenden Befehlen definiert:
Sequence
All
Choice
Eine Menge von Elementen mit bestimmter Reihenfolge
eine Menge von Elementen die alle verwendet werden mssen (Reihenfolge unwichtig)
Eine Menge von Elementen von denen einesgewhlt werden muss
-
17Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
2.3 ComplexType Beispiel
[]
[]
-
18Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
2.4 Elemente und Attribute
Element
SOA in der Praxis
Attribut
VS.
Es gibt keine einheitliche Regelung, wann welches Format genutzt werden soll
Im Zweifel eher Elemente verwenden Ein Element mit zehn Attributen ist unleserlich
Elemente knnen andere Elemente aufnehmen Strukturierung, flexibler
Attribute sinnvoll als erklrende Beschreibung der Daten bzw. Maeinheiten:37
-
19Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
Pause
-
1 Einfhrung
2 Datentypen
3 Definition von eigenen
Datentypen
3.1 Eigene Datentypen Fallbeispiel
3.2 Das Bestellobjekt
3.3 Die Bestellposition
3.4 Die XMl-Schema
3.5 Die Validierung
Service Oriented Architecture:
XML Schema zur Definition von
Geschftsobjekten
-
21Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
3.1 Eigene Datentypen Fallbeispiel
Inhaltliche Sicht
Informations-Sicht
(was muss man wissen)
Geschftsobjekt-Sicht
Kunde bestellt ein Produkt
KundeninfoName
Adresse
ProduktinfoName
Nummer
BestellinfoDatumMenge
Kundenobjekt Produktobjekt Bestellobjekt
-
22Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
3.1 Fallbeispiel Die XML-Datei
*+
1118799
Schrauben
23.99
19
1
Kunde
Bestellung(Kerndaten)
Produkt
-
23Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
3.2 Der Rahmen der Schema
*+
*+
Definition eines Namespaces
-
24Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
3.2 Das Bestellobjekt
Problem: xs:string erlaubt jeden textuellen Inhalt.
-
25Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
3.2 Das Bestellobjekt
Einschrnkung der erlaubten Inhalte durch Regular Expressions:
Drei Buchstaben Eine Ziffer
Sechs Ziffern
Falsch
-
26Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
3.2 Das Bestellobjekt
Anforderungen fr die Schema:
Die Bestellung enthlt: Kunde und Bestellposition
Festgelegte Reihenfolge: Kunde, Bestellposition
Der Kunde muss genau einmal, die Bestellpositionen mindestens einmal vorkommen
-
27Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
3.2 Das Bestellobjekt
Aus den Anforderungen ergibt sich folgendes Schema:
[]
Genau einmal
Mindestens einmal
-
28Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
3.3 Die Bestellposition
Die Bestellposition in der XML:
1118799
Schrauben
23.99
19
1
-
29Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
3.3 Die Bestellposition
Wir erinnern uns:
die Bestellposition wurde bereits definiert mit:
die Bestellposition (Produkt und Bestellmenge) wird als eigenstndiges Objekt vom Typ ComplexType hinzugefgt,
sie wird nicht direkt mit der Bestellung verschachtelt
-
30Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
3.3 Die Bestellposition
Die Bestellposition in der XML-Schema:
1118799
Schrauben
23.99
19
1
*+
*+
-
31Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
3.3 Die Bestellposition
Die Bestellposition in der XML-Schema:
1118799
Schrauben
23.99
19
1
-
32Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
3.3 Die Bestellposition
Die Bestellposition in der XML-Schema:
1118799
Schrauben
23.99
19
1
-
33Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
3.4 Die XML-Schema
[]
-
34Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
3.5 Die Validierung
Online-Validierung der XML
Validierung der XML in NetBeans
Cannot find the declaration of element 'Bestellung'
Warum?
Fehlender Namespace bzw. Target-Namespace
Grund
-
1 Einfhrung
2 Datentypen
3 Definition von eigenen Datentypen
4 Namespaces
4.1 Was ist ein Namespace
4.2 Anpassung der XML und XML-Schema
4.3 Strukturansicht
4.4 Erneutes Problem
Service Oriented Architecture:
XML Schema zur Definition von
Geschftsobjekten
-
36Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
4.1 Was ist ein Namespace?
Eine Namespace ist eine Sammlung von Elementtypen und Attributnamen und dient u.a. dem
Vermeiden von Konflikten
Wiederverwenden von Definitionen aus anderen
Schemata
dem Erweitern von bestehenden Schemata
Schema
S1 S2
Schema 1
Schema 1a
und damit dem
-
37Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
4.2 Anpassung der XML und XML-Schema
XML Schema:
XML:
-
38Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
4.3 Die Verknpfungen in der Strukturansicht
XML-Datei XML-Schema Bestellung
Namespace Bestellungbenutzt beschreibt
benutzt
NamespaceXML-Schema
NamespaceXML-Schema-
Instance
benutzt
-
39Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
4.4 Anforderung
Globale Wiederverwendbarkeit der
definierten Elemente
1. Herauslsen der Definitionen in jeweils eigene Schemata2. Import dieser Schemata in Bestellung.xsd
-
1 Einfhrung
2 Datentypen
3 Eigene Datentypen
4 Namespaces
5 Import von Schemata
5.1 Was ein Import?
5.2 Grobes Vorgehen
5.3 Import am Beispiel Kunde
Service Oriented Architecture:
XML Schema zur Definition von
Geschftsobjekten
-
41Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
Import = Wiederverwendung von Schema-Bestandteilen aus unterschiedlichen
Namensrumen
5.1 Was ist ein Import?
Bestellung.xsd
Kunde.xsdBestellposition.xsd
Evtl. weitere Typen eines
Schemas
-
42Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
5.3 Import am Beispiel Kunde
[]
-
43Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
Fragen?Kenntnisse werden im praktischen Teil bentigt
-
44Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien04. 12. 2008
Quellen
Erl, T. (2004):
XML and SOA, http://www.idealliance.org/proceedings/xml04/papers/91/xml_soa_paper.pdf
Skulschus M., Wiederstein M. (2004):
XML Schema - Grundlagen, Praxis, Referenz, Galileo Computing
Daum, B. (2003):
Modeling Business Objects with XML Schema, dpunkt Verlag
Bradley, N. (2003):
The XML Schema companion, Adisson-Wesley
Wittenbrink H. et al. (2003):XML Wissen das sich auszahlt, TEIA Lehrbuchverlag
Josuttis, N. (2008):
SOA in der Praxis, dpunkt Verlag
W3C (2006):
XML-Schema, http://www.w3.org/XML/Schema (Zugriff: 15.11.2008)
-
Vielen Dank fr die
Aufmerksamkeit
Service Oriented Architecture:
XML Schema zur Definition von
Geschftsobjekten
10 Minuten Pause
-
1 Einfhrung
2 Datentypen
3 Eigene Datentypen
4 Namespaces
5 Import von Schemata
6 Praxisteil
Service Oriented Architecture:
XML Schema zur Definition von
Geschftsobjekten