+ All Categories
Home > Documents > XML – Grundlagen und Anwendungen

XML – Grundlagen und Anwendungen

Date post: 19-Jan-2016
Category:
Upload: skyler
View: 34 times
Download: 1 times
Share this document with a friend
Description:
XML – Grundlagen und Anwendungen. Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover. Motivation. Internet verändert sich vom Hypertext (WWW) für den menschlichen Betrachter zur Informationsinfrastruktur für IT-Services (SOA). - PowerPoint PPT Presentation
21
XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover
Transcript
Page 1: XML – Grundlagen und Anwendungen

XML – Grundlagen und Anwendungen

Teil 4: Modellierung von Datenmodellen mit XML-Schema

Prof. Dr. Michael Löwe, FHDW Hannover

Page 2: XML – Grundlagen und Anwendungen

XML Grundlagen und Anwendungen

2

MotivationInternet verändert sich

vom Hypertext (WWW) für den menschlichen Betrachter

zur Informationsinfrastruktur für IT-Services (SOA).

Die Kommunikationsinhalte verändern sichvon Dokumenten (Texte mit Reihenfolge und Gliederung)

zu Datenstrukturen (Daten, Objekte und Referenzen).

HTTP, HTML und XML sindweniger sichtbarer Selbstzweck und

mehr Mittel zum Zweck im Hintergrund (RPC, etc.).

Abbildung der objektorientierten Modelle muss möglich sein.

Page 3: XML – Grundlagen und Anwendungen

XML Grundlagen und Anwendungen

3

Kritik an DTDsNur Objekte keine Typen

Zu wenig Basistypen (kein string, integer etc.)

Nur Komposition keine Spezialisierung

Nur globale Referenzen (ID, IDREF)

Kein Konzept für Namensräume

Selbst nicht XML.

Page 4: XML – Grundlagen und Anwendungen

XML Grundlagen und Anwendungen

4

InhaltXML-Schema verbessert DTDs durch:

Reichhaltige Basistypen Built-in‘s

Trennung von Element und Typ Klassen

Differenzierte Schlüssel Assoziationen

Typerweiterung Spezialisierung

Ersetzungsgruppen „Polymorphie“

Page 5: XML – Grundlagen und Anwendungen

XML Grundlagen und Anwendungen

5

BasisdatentypendateTime

boolean

float

string

integer

byte

NMTOKENS

Page 6: XML – Grundlagen und Anwendungen

XML Grundlagen und Anwendungen

6

Definition von BasistypenAufzählung

Längenbeschränkungen

Wertbegrenzungen (untere / obere Schranken)

White-Space-Eliminierung

Reguläre Ausdrücke

Vereinigung

Listen

Page 7: XML – Grundlagen und Anwendungen

XML Grundlagen und Anwendungen

7

Klassen als Elemente<!ELEMENT Person EMPTY><!ATTLIST Person

name CDATA #REQUIREDvorname CDATA #REQUIREDgeburtstag CDATA #REQUIRED>

Komposition:<!ELEMENT LebensVersicherungsVertrag

(Person, Person, …) >

Spezialisierung<!ELEMENT Frau (Person)>

Personname: stringvorname: stringgeburtstag: date

Page 8: XML – Grundlagen und Anwendungen

XML Grundlagen und Anwendungen

8

Klassen als Schema-Elemente<element name=„Person“>

<complexType><attribute name=„name“ type=„string“ use=„Required“/><attribute name=„vorname“ type=„string“ use=„Required“/><attribute name=„geburtstag“ type=„date“ use=„Required“/>

</complexType></element>

Komposition:<element name=„LebensVersicherungsVertrag“>

<complexType> <sequence> <element ref=„Person“>

<element ref=„Person“>…..

</sequence></complexType>

</element>

Page 9: XML – Grundlagen und Anwendungen

XML Grundlagen und Anwendungen

9

Klassen als Schema-Typen<element name=„Person“>

<complexType><attribute> name=„name“ type=„string“ use=„Required“/><attribute> name=„vorname“ type=„string“ use=„Required“/><attribute> name=„geburtstag“ type=„date“ use=„Required“/>

</complexType></element>

Komposition:<element name=„LebensVersicherungsVertrag“>

<complexType> <sequence> <element ref=„Person“>

<element ref=„Person“>…..

</sequence></complexType>

</element>

<element name=„person“ type=„Person><complexType name=„Person“>

<attribute> name=„name“ type=„string“ use=„Required“/><attribute> name=„vorname“ type=„string“ use=„Required“/><attribute> name=„geburtstag“ type=„date“ use=„Required“/>

</complexType>

Komposition:<element name=„LebensVersicherungsVertrag“>

<complexType> <sequence> <element ref=„person“>

<element ref=„person“>…..

</sequence></complexType>

</element>

<complexType name=„Person“><attribute> name=„name“ type=„string“ use=„Required“/><attribute> name=„vorname“ type=„string“ use=„Required“/><attribute> name=„geburtstag“ type=„date“ use=„Required“/>

</complexType>

Komposition:<element name=„LebensVersicherungsVertrag“>

<complexType> <sequence> <element name=„versicherungsnehmer“ type=„Person“>

<element name=„versichertePerson“ type=„Person“>…..

</sequence></complexType>

</element>

LebenVertrag

Personname: stringvorname: stringgeburtstag: dateV

ersNehm

er Ver

sPer

son

Page 10: XML – Grundlagen und Anwendungen

XML Grundlagen und Anwendungen

10

Komposition vs. Assoziation<complexType name=„Person“>

<attribute> name=„name“ type=„string“ use=„Required“/><attribute> name=„vorname“ type=„string“ use=„Required“/><attribute> name=„geburtstag“ type=„date“ use=„Required“/>

</complexType>

Komposition:<element name=„LebensVersicherungsVertrag“>

<complexType> <sequence> <element name=„versicherungsnehmer“ type=„Person“>

<element name=„versichertePerson“ type=„Person“>…..

</sequence></complexType>

</element>

LebenVertrag

Personname: stringvorname: stringgeburtstag: dateV

ersNehm

er Ver

sPer

son

<complexType name=„Person“><attribute> name=„id“ type=„ID“ use=„Required“/><attribute> name=„name“ type=„string“ use=„Required“/><attribute> name=„vorname“ type=„string“ use=„Required“/><attribute> name=„geburtstag“ type=„date“ use=„Required“/>

</complexType>

Assoziation:<element name=„LebensVersicherungsVertrag“> <complexType> <attribute> name=„versNehmer“ type=„IDREF“ use=„Required“/>

<attribute> name=„versPerson“ type=„IDREF“ use=„Required“/> </complexType></element>

<complexType name=„Person“><attribute> name=„id“ type=„int“ use=„Required“/>……

</complexType>

<complexType name=„LVVertrag“> <attribute> name=„versNehmer“ type=„int“ use=„Required“/> <attribute> name=„versPerson“ type=„int“ use=„Required“/></complexType>

<element name=„System“> <complexType> <choice maxOccurs=„unbounded“>

<element name=„person“ type=„Person“/> <element name=„vertrag“ type=„LVVertrag“/> </choice>

</complexType></element>

<complexType name=„Person“><attribute> name=„id“ type=„int“ use=„Required“/>……

</complexType>

<complexType name=„LVVertrag“> <attribute> name=„versNehmer“ type=„int“ use=„Required“/> <attribute> name=„versPerson“ type=„int“ use=„Required“/></complexType>

<element name=„System“> <complexType> <element name=„person“… </complexType> <key name=„personKey“> <selector xpath=„person“/> <field xpath=„@id“/> </key></element>

<complexType name=„Person“><attribute> name=„id“ type=„int“ use=„Required“/>

</complexType>

<complexType name=„LVVertrag“> <attribute> name=„versNehmer“ type=„int“ use=„Required“/> <attribute> name=„versPerson“ type=„int“ use=„Required“/></complexType>

<element name=„System“> <complexType> <element name=„vertrag“….</complexType> <key name=„personKey“>…..</key> <keyref name=„versNehmerRef“ refer=„personKey“> <selector xpath=„vertrag“/> <field xpath=„@versNehmer“/> </keyref></element>

Page 11: XML – Grundlagen und Anwendungen

XML Grundlagen und Anwendungen

11

Typen und System<complexType name=„T1“> ….. </complexType><complexType name=„T2“> ….. </complexType> …..<complexType name=„System“>

<choice maxOccurrs=„unbounded“> <element name=„topElement“ type=„topT1“/> <element name=„topElement“ type=„topT2“/>…….</choice>

</complexType><element name=„system“ type=„System“>

<key name=„K1“….<key name=„K2“….<keyref name=„KR1“….<keyref name=„KR2“….

</element>

Page 12: XML – Grundlagen und Anwendungen

XML Grundlagen und Anwendungen

12

Mengen-wertige Relationen<complexType name=„Person“>

<sequence> <element name=„vertrag“ minOccurs=„0“ maxOccurs=„unbounded“> <complexType> <attribute name=„ref“ type=„int“/> </complexType> </element> <element name=„adresse“ maxOccurs=„unbounded“>

….. </element> </sequence>

</complexType>

Page 13: XML – Grundlagen und Anwendungen

XML Grundlagen und Anwendungen

13

Vererbung auf Typen<complexType name=„Adresse“ abstract=„true“>

<attribute name=„PLZ“ type=„string“/><attribute name=„ort“ type=„string“/>

</complexType>

<complexType name=„PostfachAdresse“><complexContent> <extension base=„Adresse“>

<attribute name=„postFachNr“ type=„int“/> </extension></complexContent>

</complexType>

<complexType name=„StrassenAdresse“> …..

Adresse

StrassenAdresse

PostfachAdresse

Page 14: XML – Grundlagen und Anwendungen

XML Grundlagen und Anwendungen

14

Vererbung auf Elementen<complexType name=„Adresse“ abstract=„true“> ….

</complexType>

<complexType name=„PostfachAdresse“>

<complexContent> <extension base=„Adresse“>….

</complexType>

<complexType name=„StrassenAdresse“>

<complexContent> <extension base=„Adresse“>….

</complexType>

<element name=„adresse“ type=„Adresse“ abstract=„true“/>

<element name=„pfAdresse“ type=„PostfachAdresse“ substitutionGroup=„adresse“/>

<element name=„stAdresse“ type=„StrassenAdresse“substitutionGroup=„adresse“/>

Adresse

StrassenAdresse

PostfachAdresse

Page 15: XML – Grundlagen und Anwendungen

XML Grundlagen und Anwendungen

15

ÜberblickElementdefinition:

<element name=„…“ type=„…“/>Name eines öffentlichen Typs muss angegeben werden

<element name=„…“/>

<complexType>

Hier muss der private Typ definiert werden

</complexType>

</element>

Page 16: XML – Grundlagen und Anwendungen

XML Grundlagen und Anwendungen

16

ÜberblickTypedefinition:<complexType …ggf. Namensangabe..>

<complexContent> <extension base=„…“> Inhaltsspezikation mit <sequence> und <choice>

Elemente in den Sequenzen und Auswahlen Kardinalität durch Attribute minOccurs und maxOccurs (Standardwert 1)

Attributeliste: <attribute name=„..“ type=„..“ use=„..“/> </extension></complexContent>

</complexType>

Page 17: XML – Grundlagen und Anwendungen

XML Grundlagen und Anwendungen

17

ÜberblickSchlüsseldefinitionen am Ende von Elementen:

(Lokal zum Element, in dem die Definition steht)

<key name=„…“><selector xpath =„…“/><field xpath = „…“/>

</key><keyref name=„…“ refer=„Schlüsselname“>

<selector xpath =„…“/><field xpath = „…“/>

</keyref>

Page 18: XML – Grundlagen und Anwendungen

XML Grundlagen und Anwendungen

18

Namensräume (Sketch)Im Schema definierte Objekte sind Namensräumen zugeordnet.

Konfliktlösung bei gleichen Elementnamen in verschiedenen Schemata

Zuordnung durch Attribut targetNamespace von Element schematargetNamespace="http://xml.netbeans.org/examples/targetNS"

Namen von Namensräumen sind URI‘s<element name=„xxx“…/> definiert "http://xml.netbeans.org/examples/targetNS":xxx

Abkürzung von Namensraumnamen durch Prefixvereinbarungen:xmlns:ns = "http://xml.netbeans.org/examples/targetNS„Danach ns:xxx statt "http://xml.netbeans.org/examples/targetNS":xxx

Unsere Namensräume:Schemaobjekte: xmlns:xsd="http://www.w3.org/2001/XMLSchema„Typunterscheidung: xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance‚

StyleSheet-Objekte: xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

Page 19: XML – Grundlagen und Anwendungen

XML Grundlagen und Anwendungen

19

ZusammenfassungXML-Schema

ist XML-Dialekt,

geht weit über DTD hinaus,

vereinheitlicht Werte für Inhalte und Attribute

kann UML-Klassenmodelle 1:1 abbilden,

verfügt über komfortable built-in-Datentypen,

unterstützt die Wiederverwendung (Name Spaces),

ist erste Wahl zur Definition vom XML-Protokollen

Page 20: XML – Grundlagen und Anwendungen

XML Grundlagen und Anwendungen

20

Übung 6Erweitern Sie das Schema für das Modell unten um:

• Zusätzliches Attribut: Länderkennzeichen

• Bankverbindungen für Personen

• Juristische und Natürliche Personen

• Lieferungen von Strasse nach Strasse

Testen Sie Ihre Lösungen durch Erweiterung der Instanz!

Person Adresse

System

Postfach Strasse

** *

Page 21: XML – Grundlagen und Anwendungen

XML Grundlagen und Anwendungen

21

Übung 7

Schreiben Sie ein Schema für Schemata!


Recommended