Download - XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

Transcript
Page 1: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

XML-Schema

Im Fach SOA, ISM 2008

Gunther Heinrich, Tobias Steimer

Page 2: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

2Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

Ziel der Präsentation

Einführung in die Thematik XML und XML-Schema

Kennenlernen der technischen Grundlagen von XML-Schema

Wie wird ein XML-Schema Schritt für Schritt aufgebaut

Vermittlung des grundlegenden Konzeptes von XML-Schema

Page 3: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

3Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

Agenda

1 Einführung1.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

Page 4: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

1 Einführung

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

Geschäftsobjekten

Page 5: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

5Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

1.0 Einordnung der Thematik

XML-Schema bzw. XML als Basis höherwertiger Dienste im Kontext SOA

XML-Schema

XML

BPELWSDL SOAP

„You cannot make a move within an SOA without involving XML“Thomas Erl (2004)

Page 6: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

6Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 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

<tag>Text

Text

XML

HTML

Page 7: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

7Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

1.1 Was ist XML?

Die eXtensible Markup Language erlaubt im Gegensatz zu HTML…

<Ebene 1><Ebene 1a></Ebene 1a>

</Ebene 1>…

…die Speicherung hierarchisch strukturierter

Daten

…den Datenaustausch zwischen unabhängigen

Computersystemen

…die Nutzung von eigenen Tags

Grundsätzlich alles möglich, solange

wohlgeformt

<Buch><Titel>…</Titel><Autor>…</Autor><ISBN>…</ISBN>

</Buch>

• genau ein Wurzelelement• Beginn- und End-Tag <tag></tag>

Page 8: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

8Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

1.1 Was ist XML Schema? (Next generation DTD)

„Sprache“ zur Beschreibung und Beschränkung von XML Inhalten

WIE sollen WO und in WELCHER FORM Elemente in einer XML-Datei enthalten sein?

“Grammatik” von XML zur unabhängigen Definition von Datentypen

Abgrenzung XML Schema - Document Type Definition (DTD):

<xs:schema><xs:element></xs:element></xs:schema>

XML-Syntax zur Erstellungdes Schemas

A

B

Anwendung von Namespaces

String

Integer

Verschiedene Datentypen

meinBuch

Bestellung

Definition von eigenen Datentypen

Page 9: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

9Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

1.2 XML-Schema in der Praxis

XML-Parser

XML-Dokument

Schema-Dokument

Wohl-geformt

Valide

Page 10: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

10Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

1.3 Ein einfaches Beispiel

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="Materialname" type="xs:string"/>

</xs:schema>

<?xml version="1.0" encoding="UTF-8"?>

<Materialname>Bestellung</Materialname>

</xml>

Page 11: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

1 Einführung

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

Geschäftsobjekten

Page 12: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

12Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

2.1 Atomare Datentypen

Grundlage für komplexe Datentypen

„kleiner geht nicht“

Es gibt insgesamt 19 Datentypen, u.a.:

BooleanWahr / falsch

String„Dies ist ein Text“

Float“12.78e-2”

Date2008-10-24 (US)

Time13:20:00-05:00

Decimal-2,44

<xs:element name="Produkt" type="xs:string"/>

Page 13: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

13Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

2.2 SimpleType

Datentyp zur Restriktion von Inhalten und Ableitung von vorhandenen atomaren Datentypen

Wichtige Methoden von SimpleType:

RestrictionEingeschränkter

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“

Page 14: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

14Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

2.2 SimpleType – Beispiel Restriction

[…]

<xs:element name="Menge">

<xs:simpleType>

<xs:restriction base="xs:integer">

<xsd:minInclusive value="1"/>

<xsd:maxInclusive value="99"/>

</xs:restriction>

</xs:simpleType>

</xs:element>

[…] <?xml version="1.0"…?>

<Menge>3</Menge>

<Menge>301</Menge>

</xml>

Page 15: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

15Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 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

Page 16: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

16Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 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 müssen (Reihenfolge unwichtig)

Eine Menge von Elementen von denen einesgewählt werden muss

Page 17: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

17Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

2.3 ComplexType – Beispiel

[…]

<xs:element name="material">

<xs:complexType>

<xs:sequence>

<xs:element name="name" type="xs:string"/>

<xs:element name="firma" type="xs:string"/>

</xs:sequence>

</xs:complexType>

</xs:element>

[…]

<material>

<name>…</name>

<firma>…</firma>

</material>

<material>

<firma>…</firma>

<name>…</name>

</material>

Page 18: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

18Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

2.4 Elemente und Attribute

Element

<buch><titel>SOA in der Praxis</titel>

</buch>

Attribut

<buch titel=“SOA in der Praxis”>…

</buch>

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 können andere Elemente aufnehmen Strukturierung, flexibler

Attribute sinnvoll als „erklärende“ Beschreibung der Daten bzw. Maßeinheiten:<Geschwindigkeit einheit="km">37</Geschwindigkeit>

Page 19: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

19Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

Pause

Page 20: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

1 Einführung

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

Geschäftsobjekten

Page 21: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

21Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

3.1 Eigene Datentypen – Fallbeispiel

Inhaltliche Sicht

Informations-Sicht

(was muss man wissen)

Geschäftsobjekt-Sicht

Kunde bestellt ein Produkt

KundeninfoName

Adresse…

ProduktinfoName

Nummer…

BestellinfoDatumMenge

Kundenobjekt Produktobjekt Bestellobjekt

Page 22: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

22Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

3.1 Fallbeispiel – Die XML-Datei

<?xml version="1.0" encoding="utf-8"?>

<Bestellung bestellnummer="DTH-456789-3" bestelldatum="2008-10-23">

<Kunde>

*…+

</Kunde>

<Bestellposition>

<Produkt>

<Produktnummer>1118799</Produktnummer>

<Produktbezeichnung>Schrauben</Produktbezeichnung>

<Produktpreis>23.99</Produktpreis>

<InklMwst>19</InklMwst>

</Produkt>

<Bestellmenge>1</Bestellmenge>

</Bestellposition>

</Bestellung>

Kunde

Bestellung(Kerndaten)

Produkt

Page 23: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

23Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

3.2 Der Rahmen der Schema

<?xml version="1.0" encoding="utf-8"?>

*…+

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs= "http://www.w3.org/2001/XMLSchema" >

*…+

</xs:schema>

Definition eines Namespaces

Page 24: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

24Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

3.2 Das Bestellobjekt

<Bestellung bestellnummer="DTH-456789-3" bestelldatum="2008-10-23"></Bestellung>

<xs:element name="Bestellung" type="BestellungTyp"/>

<xs:complexType name="BestellungTyp">

<xs:attribute name="bestellnummer" type="xs:string" />

<xs:attribute name="bestelldatum" type="xs:date" />

</xs:complexType>

Problem: xs:string erlaubt jeden textuellen Inhalt.

Page 25: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

25Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

3.2 Das Bestellobjekt

Einschränkung der erlaubten Inhalte durch Regular Expressions:

<xs:complexType name="BestellungTyp">

<xs:attribute name="bestellnummer" type="xs:string" />

<xs:simpleType>

<xs:restriction base="xs:string">

<xs:pattern value="[A-Z]{3} - [0-9]{6} - [1-5]{1}" />

</xs:restriction>

</xs:simpleType>

</xs:attribute>

<xs:attribute name="bestelldatum" type="xs:date"/>

</xs:complexType>

Drei Buchstaben Eine Ziffer

Sechs Ziffern

Falsch

Page 26: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

26Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

3.2 Das Bestellobjekt

<Bestellung bestellnummer="DTH-456789-3" bestelldatum="2008-10-23">

<Kunde></Kunde>

<Bestellposition>…</Bestellposition>

</Bestellung>

Anforderungen für die Schema:

• Die Bestellung enthält: Kunde und Bestellposition

• Festgelegte Reihenfolge: Kunde, Bestellposition

• Der Kunde muss genau einmal, die Bestellpositionen mindestens einmal vorkommen

Page 27: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

27Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

3.2 Das Bestellobjekt

Aus den Anforderungen ergibt sich folgendes Schema:

<xs:complexType name="BestellungTyp">

<xs:sequence>

<xs:element name="Kunde" type="KundeTyp" minOccurs="1" maxOccurs="1"/>

<xs:element name="Bestellposition" type="BestellpositionTyp" minOccurs="1" maxOccurs="unbounded"/>

</xs:sequence>

<xs:attribute name="bestellnummer">

<xs:simpleType>

[…]

Genau einmal

Mindestens einmal

Page 28: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

28Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

3.3 Die Bestellposition

Die Bestellposition in der XML:

<Bestellposition>

<Produkt>

<Produktnummer>1118799</Produktnummer>

<Produktbezeichnung>Schrauben</Produktbezeichnung>

<Produktpreis>23.99</Produktpreis>

<InklMwst>19</InklMwst>

</Produkt>

<Bestellmenge>1</Bestellmenge>

</Bestellposition>

Page 29: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

29Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

3.3 Die Bestellposition

Wir erinnern uns:

die Bestellposition wurde bereits definiert mit:<xs:element name="Bestellposition" type="BestellpositionTyp" minOccurs="1" maxOccurs="unbounded"/>

die Bestellposition (Produkt und Bestellmenge) wird als eigenständiges Objekt vom Typ ComplexType hinzugefügt,

sie wird nicht direkt mit der Bestellung verschachtelt

Page 30: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

30Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

3.3 Die Bestellposition

Die Bestellposition in der XML-Schema: <Bestellposition>

<Produkt>

<Produktnummer>1118799</Produktnummer>

<Produktbez>Schrauben</Produktbez>

<Produktpreis>23.99</Produktpreis>

<InklMwst>19</InklMwst>

</Produkt>

<Bestellmenge>1</Bestellmenge>

</Bestellposition>

<xs:complexType name="BestellpositionTyp">

<xs:sequence>

<xs:element name="Produkt" minOccurs="1" maxOccurs="1">

*…+

</xs: element>

<xs:element name="Bestellmenge" minOccurs="1" maxOccurs="1">

*…+

</xs: element>

</xs:sequence>

Page 31: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

31Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

3.3 Die Bestellposition

Die Bestellposition in der XML-Schema: <Bestellposition>

<Produkt>

<Produktnummer>1118799</Produktnummer>

<Produktbez>Schrauben</Produktbez>

<Produktpreis>23.99</Produktpreis>

<InklMwst>19</InklMwst>

</Produkt>

<Bestellmenge>1</Bestellmenge>

</Bestellposition>

<xs:element name="Produkt" minOccurs="1" maxOccurs="1">

<xs:complexType>

<xs:element name="Produktnummer" type="xs:integer"/>

<xs:element name="Produktbezeichnung" type="xs:string"/>

<xs:element name="Produktpreis" type="xs:decimal"/>

<xs:element name="InklMwst" type="xs:decimal"/>

</xs:complexType>

</xs: element>

<xs:sequence>

</xs:sequence>

<xs:????????>

<xs:????????>

Page 32: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

32Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

3.3 Die Bestellposition

Die Bestellposition in der XML-Schema: <Bestellposition>

<Produkt>

<Produktnummer>1118799</Produktnummer>

<Produktbez>Schrauben</Produktbez>

<Produktpreis>23.99</Produktpreis>

<InklMwst>19</InklMwst>

</Produkt>

<Bestellmenge>1</Bestellmenge>

</Bestellposition>

<xs:element name="Bestellmenge" minOccurs="1" maxOccurs="1">

<xs:simpleType>

<xs:restriction base="xs:integer">

<xs:minInclusive value="1"/>

<xs:maxInclusive value="10"/>

</xs:restriction>

</xs:simpleType>

</xs:element>

Page 33: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

33Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

3.4 Die XML-Schema

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="Bestellung" type="BestellungTyp"/>

<xs:complexType name="BestellungTyp">

<xs:sequence>

<xs:element name="Kunde" type="KundeTyp" minOccurs="1" maxOccurs="1"/>

<xs:element name="Bestellposition" type="BestellpositionTyp" minOccurs="1" maxOccurs="unbounded"/>

</xs:sequence>

<xs:attribute name="bestellnummer">

<xs:simpleType>

<xs:restriction base="xs:string">

<xs:pattern value="[A-Z]{3}-[0-9]{6}-[1-5]{1}"/>

</xs:restriction>

</xs:simpleType>

</xs:attribute>

<xs:attribute name="bestelldatum" type="xs:date"/>

</xs:complexType>

[…]

<xs:complexType name="BestellpositionTyp">

<xs:sequence>

<xs:element name="Produkt" minOccurs="1" maxOccurs="1">

<xs:complexType>

<xs:sequence>

<xs:element name="Produktnummer" type="xs:integer"/>

<xs:element name="Produktbezeichnung" type="xs:string"/>

<xs:element name="Produktpreis" type="xs:decimal"/>

<xs:element name="InklMwst" type="xs:decimal"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:element name="Bestellmenge" minOccurs="1" maxOccurs="1">

<xs:simpleType>

<xs:restriction base="xs:integer">

<xs:minInclusive value="1"/>

<xs:maxInclusive value="10"/>

</xs:restriction>

</xs:simpleType>

</xs:element>

</xs:sequence>

</xs:complexType>

</xs:schema>

Page 34: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

34Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 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

Page 35: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

1 Einführung

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

Geschäftsobjekten

Page 36: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

36Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 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

<Alt>

<Alt>

Schema 1

Schema 1a

und damit dem…

Page 37: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

37Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

4.2 Anpassung der XML und XML-Schema

<Bestellung bestellnummer="DTH-456789-3" bestelldatum="2008-10-23">

<Bestellung xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://xml.netbeans.org/schema/Bestellung Bestellung.xsd" xmlns="http://xml.netbeans.org/schema/Bestellung"

bestellnummer="ABC-123456-1" bestelldatum="2008-10-23">

<xs:schemaxmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:schemaxmlns:xs="http://www.w3.org/2001/XMLSchema"targetNamespace="http://xml.netbeans.org/schema/Bestellung"xmlns="http://xml.netbeans.org/schema/Bestellung"elementFormDefault="qualified">

XML Schema:

XML:

Page 38: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

38Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

4.3 Die Verknüpfungen in der Strukturansicht

XML-Datei XML-Schema Bestellung

Namespace Bestellungbenutzt beschreibt

benutzt

NamespaceXML-Schema

NamespaceXML-Schema-

Instance

benutzt

Page 39: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

39Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

4.4 Anforderung

Globale Wiederverwendbarkeit der

definierten Elemente

1. Herauslösen der Definitionen in jeweils eigene Schemata2. Import dieser Schemata in Bestellung.xsd

Page 40: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

1 Einführung

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

Geschäftsobjekten

Page 41: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

41Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

Import = Wiederverwendung von Schema-Bestandteilen aus unterschiedlichen

Namensräumen

5.1 Was ist ein Import?

Bestellung.xsd

Kunde.xsdBestellposition.xsd

Evtl. weitere Typen eines

Schemas

Page 42: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

42Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

5.3 Import am Beispiel Kunde

<xs:schema[…]xmlns:k="http://xml.netbeans.org/schema/Kunde"[…]>

<xs:import namespace="http://xml.netbeans.org/schema/Kunde" schemaLocation="Kunde.xsd"/>

[…]<xs:element name="Kunde" type= "k:KundeTyp"...

XML Schema der Bestellung:

<Bestellung […] xmlns:k="http://xml.netbeans.org/schema/Kunde"[…]>

<Kunde>

<k:Kundennummer>…</k:Kundennummer><k:Name>

<k:Vorname>…</k:Vorname><k:Nachname>…</k:Nachname>

[…]

XML der Bestellung mit Prefix:

Anmerkung: In der Praxis sollten Namespaces so verwendet werden, dass diese nicht vom Nutzer explizit angegeben werden müssen. Prefix dient hier lediglich zur Hervorhebung.

Page 43: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

43Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 12. 2008

Fragen?Kenntnisse werden im praktischen Teil benötigt…

Page 44: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

44Gunther Heinrich, Tobias Steimer | Information Systems and Services Master | Hochschule der Medien

04. 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)

Page 45: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

Vielen Dank für die

Aufmerksamkeit

Service Oriented Architecture:

XML Schema zur Definition von

Geschäftsobjekten

10 Minuten Pause

Page 46: XML-Schema - web-inspiration.de · Einführung in die Thematik XML und XML-Schema Kennenlernen der technischen Grundlagen von XML-Schema Wie wird ein XML-Schema Schritt für Schritt

1 Einführung

2 Datentypen

3 Eigene Datentypen

4 Namespaces

5 Import von Schemata

6 Praxisteil

Service Oriented Architecture:

XML Schema zur Definition von

Geschäftsobjekten